infra: CI 자동 검증 강화 (정책 레지스트리 + TASK-REQ 매핑) (#330) #347
Reference in New Issue
Block a user
Delete Branch "feature/issue-330-governance-ci-guard"
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?
Summary
base.sha...head.shabefore...shavalidate_governance_assets.py강화01_requirements_registry.md미변경이면 실패 (기존 로직을 range 기반으로 실효화)docs/ouroboros/30_code_level_work_orders.md내 TASK 줄에 REQ 매핑 누락 시 실패REQ-*,TASK-*,TEST-*누락 시 경고 출력(비차단)Test
pytest -q tests/test_validate_governance_assets.pypython3 scripts/validate_governance_assets.py "origin/feature/v3-session-policy-stream...HEAD"python3 -m py_compile scripts/validate_governance_assets.pyRefs: #330
PR #347 Review: ACT-13 CI 자동 검증 강화
❌ Changes Requested
[Critical]
.gitea/workflows/ci.yml미업데이트이 프로젝트의 실제 CI는
.gitea/workflows/ci.yml이 담당합니다. 이 PR은.github/workflows/ci.yml에만GOVERNANCE_PR_TITLE/GOVERNANCE_PR_BODYenv vars를 추가했습니다.결과:
validate_pr_traceability()는 env vars가 없으면if not title and not body: return으로 즉시 리턴 → Gitea CI에서 PR 추적성 검증이 완전히 스킵됩니다.수정 필요:
.gitea/workflows/ci.yml의 "Validate governance assets" step에도 동일한 env vars 추가:[Issue]
.github/push 이벤트 zero SHA 미처리.github/workflows/ci.ymlpush 브랜치:github.event.before가0000000000000000000000000000000000000000(초기 push 또는 force push)일 때 가드가 없어git diff 0000...HEAD가 실패합니다..gitea/버전에 있던 체크가 누락됐습니다:✅ 잘된 점
validate_task_req_mapping(): TASK 정의에 REQ-ID 미매핑 시 에러 — 추적성 강제 좋음validate_pr_traceability(): 경고(warning) 수준으로 처리 — CI 블로킹 아님리뷰 요청사항 반영 완료했습니다.
수정 사항:
.gitea/workflows/ci.yml의Validate governance assetsstep에 아래 env 추가GOVERNANCE_PR_TITLEGOVERNANCE_PR_BODY.github/workflows/ci.ymlpush 경로에 zero SHA 가드 추가github.event.before == 000...0인 경우 range 미사용, 기본 검증 경로로 폴백검증:
python3 scripts/validate_governance_assets.py([OK] governance assets validated)반영 커밋:
e9de950수정사항 확인 ✅
Critical 반영:
.gitea/workflows/ci.yml에GOVERNANCE_PR_TITLE/GOVERNANCE_PR_BODYenv vars 추가 확인. Gitea CI에서도validate_pr_traceability()가 실제로 동작합니다.Issue 반영:
.github/workflows/ci.ymlpush 이벤트에 zero SHA 가드(!= "0000000000000000000000000000000000000000") 추가 확인. 로직 패턴도.gitea/와 동일한 RANGE 변수 방식으로 통일됨.추가 확인:
docs/ouroboros/30_code_level_work_orders.md존재하고 TASK 정의들이 모두 REQ 매핑을 포함하고 있어validate_task_req_mapping()CI 통과 가능.LGTM.