🧬 프로젝트가 무엇인지 Lagune에 알려 주면, 그 설명을 보안 규칙으로 바꿉니다(설명이 없으면 프로젝트만 보고 규칙을 도출합니다).
charter는 모든 단계를 규율하는 계층으로, 이후 단계가 빠짐없이 지켜야 하는 보안 우선 원칙의 모음입니다. 프로젝트 보안 태세를 위한 컴파일 타임 검사라고 보면 됩니다.
사용법
- 직접 설명하기
- Lagune의 제안 받기
/lagune-charter 내 프로젝트는 비디오 게임을 파는 온라인 스토어야. 고객은 상품을 장바구니에 담고 신용카드나 무통장 입금으로 결제해. 고객은 자기 주문과 각 주문의 상태를 볼 수 있어.
/lagune-charter
결제 라이브러리, 로그인 설정, 고객과 연결된 주문 모델이 있습니다. 무언가를 판매하는 온라인 스토어 같습니다. 고객이 결제하고 자기 주문을 추적합니다... ☁️
도출하는 내용
Lagune은 설명이나 PRD를 방향으로 삼아 보안 측면에서 어떤 의미가 있는지 도출한 뒤, 프로젝트를 읽어 설명한 범위보다 더 깊이 살핍니다. 예를 들면 다음과 같습니다.
- 주문을 담는 장바구니가 있다는 것은 데이터베이스가 있다는 뜻입니다.
- 예:
"데이터는 어디에 저장되나요?","누가 접근할 수 있나요?","데이터가 유출되지는 않나요?".
- 예:
- 고객이 자기 주문을 볼 수 있다는 것은 어떤 형태로든 로그인이나 접근 통제가 있다는 뜻입니다.
- 예:
"한 고객이 다른 고객의 주문에 접근할 수 있나요?","세션은 보호되고 있나요?".
- 예:
- 카드와 무통장 입금으로 결제를 받는다는 것은 돈과 민감한 데이터가 오간다는 뜻입니다.
- 예:
"카드 정보가 저장되나요?","결제를 검증하고 있나요?".
- 예:
설명과 프로젝트는 서로를 보완합니다. 설명이 의도를 정하고, 의존성과 README, 설정을 읽으면 설명에서 언급하지 않은 부분이 드러납니다. 그래도 중요한 점이 분명하지 않으면 Lagune은 추측하지 않고 짧고 쉬운 질문을 합니다.
이를 바탕으로 Lagune은 프로젝트에 맞춘 보안 규칙을 만들며, 이 규칙은 필요할 때 언제든 검토하고 조정할 수 있습니다.
- 프로젝트에 맞는 보안 규칙을 직접 정의할 수도 있습니다.
- 관련 정보를 자세히 알려 줄수록 최종 보고서가 좋아집니다.
- 프로젝트가 무엇인지, 어떻게 작동하는지, 내부에서 무슨 일이 일어나는지 설명하세요.
- 최종 사용자는 누구인가요? 사용자가 할 수 있는 일과 할 수 없는 일은 무엇인가요?
- 동작에 관한 정보는 기술적인 정보만큼 가치가 있습니다.
- charter 기록은
.lagune/memory/charter.md파일에 있습니다.
기록하는 카테고리
전문 지식은 이후 단계가 필요할 때만 불러오는 보안 지식으로, 프로젝트의 카탈로그에 카테고리 단위로 추가됩니다. 프로젝트에 기록된 카테고리가 없는 동안에는 charter가 프로젝트를 읽어 근거가 확인된 카테고리(프로젝트의 언어, LLM 호출, 컨테이너 등)를 각각 기록하고, 요약에서 그 이름을 알려 줍니다.
카테고리가 기록된 뒤에는 charter가 이를 그대로 두고, 프로젝트에서 아직 쓰지 않는 카테고리가 있으면 그 이름만 알려 줍니다. 카테고리는 언제든 직접 바꿀 수 있습니다.
npx lagune write add --categories python
npx lagune write remove --categories python
다음 단계
규칙을 정했다면 /lagune-detect 명령어로 시스템이 실제로 무엇을 하는지 파악하세요.
자주 묻는 질문
charter는 Lagune에서 모든 단계를 규율하는 계층으로, 이후 단계가 빠짐없이 지켜야 하는 보안 우선 원칙의 모음입니다. 프로젝트 보안 태세를 위한 컴파일 타임 검사라고 보면 됩니다.
.lagune/memory/charter.md 파일에 저장됩니다.
네. Lagune은 설명과 코드를 바탕으로 규칙을 제안하고, 사용자는 그 규칙을 고쳐 쓰거나, 빼거나, 새로 추가하거나, 적용 범위를 좁힐 수 있습니다.
기록된 카테고리가 없을 때만 그렇습니다. 그 경우 프로젝트를 읽어 근거가 확인된 카테고리(사용하는 언어나 LLM 호출 등)를 각각 기록합니다. 카테고리가 한번 기록되면 다시는 바꾸지 않습니다.
