MSG-611 chore: 스펙 완료 정의를 check-spec.py 검사로 못 박고 문서 스킬에 선례 표를 둔다 - #291
Merged
Merged
Conversation
scripts/check-spec.py가 스펙 한 건에 기계 검사 10항목(번호 일치, Owner, 정본 PRD 실존·승인 또는 면제 선언, FR ID 실존, AC 형식, 필수 절, 본문 줄표, 각주 고아, 변경 파일 경로, 미종결 질문)을 돌려 항목마다 판정과 증거를 찍고 FAIL이면 exit 1. spec-writer 절차 5(생성 직후)와 7(리뷰 반영 뒤)에 편입하고 FAIL 상태 보고를 금지한다. 사람 판단 항목 H1~H4는 보고에 근거 한 줄. spec-writer·prd-writer에 본으로 삼을 선례 표 추가. 기존 스펙 실측: 현행 규칙 적용분 12건 중 줄표 위반 2건(MSG-608, MSG-538), 각주 고아 2건(MSG-432, MSG-608), 필수 절 누락 1건(MSG-600). 소급 수정은 하지 않는다. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VzV5yGk9MqAR1kZH1ULrjU
|
Claude finished @Ss0Mae's task in 38s —— View job 리뷰 결과확인한 범위: 발견 목록 (상세는 인라인)
|
테스트 커버리지
|
PR #291 리뷰 반영. 부정문(MSG-461·470·538 실측)이 면제로 읽히던 fail-open을 막고, 본문에만 있는 선언은 WARN으로 내린다. 절차 번호는 SKILL.md 기준으로 2행 5, 315행 7. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
테스트 커버리지
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🎫 관련 티켓
작업 내용
스펙 문서가 "다 썼다"로 끝나지 않게, 기계로 확인되는 완료 조건을 스크립트로 만들고 spec-writer 절차에 넣었습니다. 코드 변경은 없고 하네스 파일 4개입니다.
scripts/check-spec.py신설. 스펙 한 건에 검사 10항목을 돌려 항목마다 PASS/FAIL/WARN/INFO와 증거(줄 번호, 실측값)를 찍고 FAIL이 있으면 exit 1. 표준 라이브러리만 쓰고 0.02초에 끝납니다.**Owner**:첫 토큰이 A / B / 공동docs/srs.md표에 실존 (폐기됨이면 WARN)- AC-{티켓}-{NN}:형식, 티켓 번호 일치, 순번 유일spec-writer SKILL.md. 절차 5 "완료 정의 검사"(생성 직후, Codex 전)를 넣고 Codex 리뷰를 6번, 7번 "재검사 후 보고"로.
## 완료의 정의절에서 기계 항목은 스크립트에 위임하고 사람 판단 항목 H1~H4(PRD 범위 일치, 판정 가능성, 계약 변경 노출, 용어)만 체크리스트로 남겼습니다. FAIL이 남은 채로는 보고하지 않고, 첫 실행에 FAIL이 2건 이상이면 원인을 한 줄 진단합니다.spec-writer·prd-writer에 "본으로 삼을 선례" 표. 스펙은 검사 전 항목 PASS인 MSG-594(전용 PRD 기능), MSG-513(Owner 공동), MSG-583(PRD 면제). PRD는 검토됨·줄표 0·8절·각주 3개 이상인 MSG-594, MSG-513, event-submission(공유 PRD).
CLAUDE-changelog.md에 행 추가.🤔 고민한 내용
계기는 외부 글이지만 글의 방식을 그대로 쓰지 않았습니다. 널포인터스튜디오 "AI 위임 루프 플레이북"이 프로세스·툴박스·증명 세 레이어를 권하는데, 우리 레포는 앞의 둘과 사고 기록(CLAUDE-changelog)은 이미 있고 문서 스킬에 "실패할 수 있는 검증 항목"만 없었습니다. 글은 "AI가 항목마다 증거와 함께 보고"하라고 하지만 그건 자가 보고1라 MSG-529에서 hook 로그로 대체한 것과 같은 문제가 있습니다. 그래서 기계로 확인되는 항목은 스크립트 출력을 증거로 쓰고, 사람 판단만 체크리스트로 갈랐습니다.
스크립트를 기존 스펙에 돌려 보니 자가 보고가 새고 있었습니다. 현행 규칙이 적용된 스펙 12건 중 줄표 0건 조항 위반 2건(MSG-608 본문 7줄, MSG-538 4줄), 각주 고아2 2건(MSG-432 3개, MSG-608 1개), 필수 절 누락 1건(MSG-600). 줄표는 작성 때는 지켜졌고 리뷰 반영과 결정 종결 메모에서 들어온 것이라, 검사를 리뷰 뒤에도 한 번 더 돌리게 했습니다. 소급 수정은 MSG-526 때와 같은 원칙으로 하지 않았습니다.
판정은 fail-closed3입니다. PRD 헤더에 상태가 없으면 미승인, PRD 언급도 면제 선언도 없으면 게이트 우회로 봅니다. 면제 선언은 헤더 영역(첫
##전)의 "PRD 면제", "PRD 게이트: 면제", "PRD: 면제"만 인정하고, 뒤에 부정·유보 표현이 붙은 문장은 선언이 아닙니다. 본문에만 적은 선언은 WARN입니다.실행은 에이전트가 아니라 스킬(호출 측)이 합니다.
agents/spec-writer.md에는 Bash가 없어서 오케스트레이터가 돌리고 FAIL 항목과 줄 번호를SendMessage로 넘기는 구조입니다. 에이전트 정의는 손대지 않았습니다.👀 리뷰 포인트
계약 변경관례입니다.python3 scripts/check-spec.py docs/spec/MSG-594.md10항목 PASS exit 0,docs/spec/MSG-608.mdS7·S8 FAIL exit 1,--all요약 표.🤖 Generated with Claude Code
https://claude.ai/code/session_01VzV5yGk9MqAR1kZH1ULrjU
Generated by Claude Code
Footnotes
자가 보고: 에이전트가 "줄표 없음을 확인했다"처럼 스스로 적는 확인. 컨텍스트가 깨지면 확인 자체가 사라질 수 있어, 응답 컨트랙트의 Applied skills를 hook 로그와 대조하게 한 MSG-529와 같은 문제입니다. ↩
각주 고아: 문서 하단에
[^n]:정의는 있는데 본문에[^n]참조가 없는 상태. 본문을 고치면서 참조만 지워지면 생기고, 렌더링에서는 안 보이는 찌꺼기가 남습니다. ↩fail-closed: 판정 재료가 없거나 애매하면 통과가 아니라 실패로 처리하는 방식. 게이트가 "확인 못 함"을 "통과"로 읽어 형식만 남는 것을 막습니다. spec-driven-dev의 PRD 게이트가 쓰는 규칙과 같습니다. ↩