표준
리뷰어들은 동일한 규칙을 수작업으로 코멘트를 달아 강제합니다. 이 스킬은 그러한 코멘트를 채굴하여 문서화된 표준으로 만들고, diff를 그 표준과 대조하여 검사합니다. 각 표준은 에이전트가 코드를 작성할 때 따르는 규칙과 리뷰어가 diff에 적용하는 렌즈를 짝지어 줍니다. 번호가 매겨진 각 §는 그 뒤에 있는 리뷰 코멘트를 인용하므로, 누구나 규칙을 강제한 리뷰어까지 추적할 수 있습니다.
핵심 원칙
- 증거 우선. §가 되려면 최소 3개의 서로 다른 변경사항과 2명의 서로 다른 리뷰어로부터 리뷰 코멘트가 필요합니다. 하나의 변경사항이나 한 사람이 작성한 여러 코멘트는 단일 리뷰어의 취향일 뿐이기 때문입니다.
- 모든 규칙은 그 이유를 담습니다. 규칙 주변의 코드가 변경된 후에도 이유는 에이전트를 계속 안내합니다.
- 하나의 규칙은 한 곳에. 두 개의 복사본은 서로 달라지며, 에이전트는 먼저 읽은 쪽을 따릅니다.
- 체크가 §보다 낫습니다. 린터, 타입 또는 테스트가 잡아낼 수 있는 규칙은 해당 도구에 속합니다. 체크는 매번 실행되기 때문입니다.
- 에이전트가 이미 하는 것을 삭제합니다. 묻지 않고 따르는 규칙은 로드할 때마다 컨텍스트를 소모하고 아무것도 바꾸지 않습니다.
- 스크립트는 단축키입니다. 각 출력 파일에는
references/schemas/에 스키마가 있으므로, 스크립트가 없거나 실패할 때는 동일한 파일을 수동으로 작성합니다. git이 유일한 하드 의존성입니다.gh나glab과 같은 포지의 CLI는 리뷰 코멘트를 추가하고, 그것 없이도git log로 대체할 수 있습니다.
명령어
| 명령어 | 기능 | 출력 | 참조 |
|---|---|---|---|
mine | 리뷰 코멘트를 가져와 규칙별로 레이블링하고, 빈도와 심각도를 곱해 클러스터 순위를 매깁니다. | .standards/clusters.json | references/mine.md |
write | 순위가 매겨진 클러스터를 저장소 내 표준 스킬로 변환합니다. 각 §는 이유와 증거를 포함합니다. | 표준 스킬 | references/write.md |
review | diff가 트리거하는 모든 렌즈를 적용하고 §를 인용하여 결과를 보고합니다. | 응답 내 결과 | references/review.md |
prune | 각 규칙을 하네스에서 A/B 테스트하고 에이전트가 묻지 않고 따르는 규칙을 삭제합니다. | prune.json | references/prune.md |
doctor | 드리프트를 플래그합니다: 일치하는 항목이 없는 글로브, 사라진 인용 파일, 한 번도 실행되지 않은 렌즈, 오래된 정리 데이터 | .standards/doctor.json | references/doctor.md |
라우팅
standards [명령어] [범위] 형식으로 호출합니다. 범위는 경로나 글로브, 생성된 인덱스의 영역 슬러그, 또는 § 번호(§2, §2.3)입니다. 자세한 해결 방법은 references/scope.md를 참조하세요. mine은 경로만 받습니다. 영역은 write 이후에만 존재하기 때문입니다.
- 인수 없음. 아래 메뉴를 표시하고 선택을 기다립니다. 각 명령어는 기록을 읽거나, 저장소를 편집하거나, 여러 번의 에이전트 실행이 필요하므로 절대 자동 실행하지 마세요.
- 명령어 없는 범위. 질문 없이 해당 범위에 대해
review를 실행합니다.review는 읽기만 수행하기 때문입니다. - 명시적이거나 명확히 암시된 명령어. 해당 참조를 로드하고 단계별로 따릅니다.
- 두 명령어가 모두 적합한 경우. 한 번만 질문하고, 두 명령어의 이름과 각각이 수행할 작업을 명시한 후 답변을 따릅니다.
- 아무것도 없는 상태에서 표준 시작.
mine부터 시작합니다.write는clusters.json이 필요하기 때문입니다.mine이 완료되면write를 제안합니다. - 스킬 자체에 대한 질문. 명령어를 실행하지 않고 이 파일에서 답변합니다.
메뉴
standards: 무엇을 할까요?
mine 리뷰 코멘트를 채굴하여 순위가 매겨진 규칙으로 만듭니다
write 순위가 매겨진 규칙에서 표준을 작성합니다
review diff를 표준과 대조하여 검토합니다
prune 각 규칙을 테스트하고 에이전트가 이미 따르는 규칙을 삭제합니다
doctor 표준에 드리프트가 있는지 확인합니다
모든 명령어는 선택적 범위(경로, 영역 또는 §)를 받습니다.
생성된 표준이 있으면 메뉴 아래에 해당 영역을 § 번호와 슬러그로 나열합니다.
파이프라인
mine은 write에 입력을 제공하고, write는 review가 적용할 결과를 생성합니다. prune과 doctor는 그 이후 표준을 유지 관리합니다.
작업 파일은 대상 저장소의 루트에 있는 .standards/에 위치합니다. 리뷰 코멘트가 코드와 사람을 인용할 수 있으므로 해당 폴더를 버전 관리에서 제외하세요. prune.json은 예외입니다. 생성된 표준 옆에 위치하며, doctor가 그곳에서 읽기 때문입니다.
참조에서 <skill-dir>는 이 파일이 있는 폴더입니다. <skill-dir>/scripts/의 스크립트는 mine 속도를 높이며, JavaScript 런타임의 표준 라이브러리만 필요로 합니다.
판단 모델
mine, prune, doctor는 많은 작은 유형의 질문을 합니다. 판단 모델은 유형이 지정된 질문(집합 중 하나 선택, 예/아니오 확률, 점수)에 보정된 확률로 답변하는 빠른 모델입니다. 환경에서 판단 모델을 제공하면 해당 모델로 질문 파일에 답변하고, 그렇지 않으면 직접 답변하세요. 환경 자체의 지침이 어떤 모델인지 결정합니다.
생성된 표준
- 기본 출력은 각 § 파일을 링크하는 한 줄 요약 인덱스가 있는 하나의 스킬입니다. 템플릿: 인덱스 및 섹션.
- 영역당 하나의 스킬은 옵션이며, references/write.md의 형태 실험을 통해 저장소별로 결정됩니다.
- 생성된 표준은 이 스킬과 동일한 규칙을 따릅니다: 스펙 프론트매터만, URL 없음, 날짜 없음, 모든 규칙에 이유 포함.