3.0 KiB
브랜치 노트 1개가 코딩 착수해도 되묻지 않을 만큼 깊은지 점검합니다.
(기준: rules/branch-depth-gate.md / 결정론 검사: .claude/hooks/wiki_structure_lint.py)
브랜치 이름: {{arguments}}
작업 절차
-
인자 검증 — 비어 있으면 브랜치 이름 요청.
raw/branch-notes/<name>.md로 해석(.md·feature-누락은 관대히 보정). -
파일 존재 확인 — 없으면 경로만 안내하고 종료(생성은
/branch의 일). -
결정론 구조 검사 (1차 — 싸고 빠른 게이트) — 다음을 실행하고 결과(PASS/FAIL + 사유)를 그대로 보고:
python3 .claude/hooks/wiki_structure_lint.py --file raw/branch-notes/<name>.md- 구조 FAIL(템플릿 누락 섹션 / 백틱 링크 / 깨진 링크 / 빈 선택조건 셀 등)이면 그것부터 고치도록 안내. (본 명령은 read-only — 수정은 사용자 또는
/branch-spec의 몫.)
- 구조 FAIL(템플릿 누락 섹션 / 백틱 링크 / 깨진 링크 / 빈 선택조건 셀 등)이면 그것부터 고치도록 안내. (본 명령은 read-only — 수정은 사용자 또는
-
의미 깊이 판정 (2차 — R1~R4) — 1차가 통과(또는 구조 이슈를 사용자가 인지)하면
branch-depth-auditor서브에이전트를 디스패치하고 입력으로 브랜치 노트 경로를 전달.- 감사기는 소스를 실제로 읽어 조사 깊이(L0/L1), 결정 조건의 진위, 구현 detail 충분성, 암시된 의존을 의미로 판정한다.
- 감사기 리포트(Verdict + Findings 표 + 다음 행동)를 그대로 출력.
- 1차가 구조 FAIL 인데도 2차를 돌릴지: 구조가 심하게 깨졌으면(섹션 다수 누락 등) 먼저 구조부터 고치도록 권하고 2차는 보류. 경미하면 1차 보고 + 2차 동시 진행.
-
종합 판정 — 1차(구조) + 2차(의미) 를 합쳐
Ready/Not ready. 둘 다 Blocking 0 이어야 Ready. -
루프 — 사유를 고친 뒤
/depth <name>재실행 → Ready 까지.
규칙
- 검출·판정만(read-only — frontmatter
disallowed-tools로 강제). 1차 린터도 2차 감사기도 노트를 편집하지 않는다. - 멱등: 같은 노트에 몇 번 돌려도 안전.
- 자동 조사·자동 수정 금지 — R1 조사 얕음 갭은
wiki-decision-researcher권고만(사용자 옵트인). wiki/log.md기록 안 함.
Proof Artifact Contract (HARD)
finding/인용 draft는 exact UTF-8 quote 전부를 포함한 proof-request/v1 JSON으로 조립한다. controller는 python3 harness/runtime/proof_runner.py <proof-request.json> --repo-root . --output <report-dir>/proof-manifest.json을 실행한다. exit 0, schema_version: proof-runner-result/v1, status: PASS, manifest schema_version: proof-manifest/v1 확인 전에는 workflow 완료를 선언하지 않는다.
보고서에는 manifest_path, manifest_sha256, proof_count, pass_count, fail_count를 기록한다. 실패 proof와 라인 정정은 전부, PASS proof는 대표 1~3개만 펼치고 나머지는 manifest를 참조한다. fail_count != 0 또는 count 불일치면 완료 판정을 차단한다.