governance: harden fail-fast checks for traceability and task-test pairing (#372) #379
Reference in New Issue
Block a user
Delete Branch "feature/issue-372-validator-hardening"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Linked Issue
Scope Mapping
REQ-OPS-001,REQ-OPS-002,REQ-OPS-003,REQ-OPS-004TASK-OPS-001,TASK-OPS-003,TASK-OPS-004TEST-ACC-007,TEST-ACC-008,TEST-ACC-009,TEST-ACC-019Summary
#378에서 처리한 comment newline guard 외에, #372의 핵심 fail-fast 강화 항목을 반영했습니다.1) warning-only -> error 승격
REQ/TASK/TEST) 누락을 advisory가 아닌 fail-fast로 전환2) TASK-TEST 동반 강제
docs/ouroboros/30_code_level_work_orders.md의TASK-*정의에TEST-*매핑을 명시3) REQ-OPS-001 fail-fast 규칙 추가
KST/UTC타임존 정책 토큰의 존재를 핵심 거버넌스 문서에서 fail-fast로 검증docs/ouroboros/01_requirements_registry.mddocs/ouroboros/30_code_level_work_orders.mddocs/workflow.mdFiles
scripts/validate_governance_assets.pytests/test_validate_governance_assets.pydocs/ouroboros/30_code_level_work_orders.mddocs/ouroboros/01_requirements_registry.mdValidation
python3 scripts/validate_governance_assets.py origin/feature/v3-session-policy-stream...HEADpython3 scripts/validate_ouroboros_docs.pypython3 scripts/validate_docs_sync.pypytest -q tests/test_validate_governance_assets.py tests/test_validate_ouroboros_docs.pyPR 리뷰 (Claude Code)
전체 판정: ❌ CI 실패 — 원인 확인됨 (수정 간단)
[BLOCK] CI 실패: PR 자체가 새 validator 규칙을 위반
CI 실패 원인을 로컬에서 재현했습니다.
이 PR이 도입한
validate_pr_traceabilitywarning→error 승격이 이 PR 자체에 적용되어 실패하고 있습니다. PR body에REQ-*,TASK-*,TEST-*형식의 참조가 없기 때문입니다.로컬 테스트(
pytest)가 통과하는 이유는GOVERNANCE_PR_TITLE/BODY환경 변수가 없으면 early return하기 때문입니다. CI는 이 변수들을 실제 PR 정보로 주입하므로 실패합니다.수정 방법: PR body에 관련 ID를 추가합니다. 예:
코드 품질: ✅ 양호
CI 실패를 제외하면 변경 내용은 #372의 AC를 충실히 반영합니다.
validate_task_test_pairing: TASK_DEF_LINE 정규식 재사용, happy/unhappy path 테스트 쌍으로 커버validate_timezone_policy_tokens: 3개 문서 대상 KST/UTC 토큰 검사, 같은 테스트에서 happy/unhappy 모두 검증30_code_level_work_orders.md: 모든 TASK에 TEST-* 매핑 추가 — validator 통과 확인됨리뷰 반영했습니다.\n\n- PR 본문에 Scope Mapping(REP/TASK/TEST ID) 추가\n - REQ-OPS-001/002/003/004\n - TASK-OPS-001/003/004\n - TEST-ACC-007/008/009/019\n- CI와 동일하게 GOVERNANCE_PR_TITLE/BODY 환경변수 주입으로 validator 재현 확인\n\n검증:\n- GOVERNANCE_PR_TITLE/BODY 주입 후 [OK] governance assets validated 통과
리뷰 반영했습니다.
GOVERNANCE_PR_TITLE/BODY환경변수 주입으로 validator 재현 확인검증:
GOVERNANCE_PR_TITLE/BODY주입 후python3 scripts/validate_governance_assets.py통과추가 리뷰 (Claude Code)
이전 지적 반영 현황
판정: ✅ LGTM (CI 재트리거 필요)
업데이트된 PR body로 validator를 로컬 재현한 결과:
코드/테스트/문서 모두 이전 리뷰에서 양호 판정이었고, 이번 수정으로 유일한 BLOCK이 해소되었습니다.
CI 재트리거 필요
표시된 CI 실패(
Failing after 5s)는 PR body 업데이트 이전 실행 결과입니다. PR body 업데이트는 Gitea CI를 자동 재트리거하지 않습니다. 빈 커밋을 추가하거나 Gitea에서 CI를 수동 재실행하면 됩니다.