---
task_id: task-2434
type: checklist
scope: task
created: 2026-05-03
updated: 2026-05-04
status: completed
---

# 체크리스트: task-2434

**task**: task-2434

---

## Phase A — task_scope.py (토르)

- [x] A1. `scripts/task_scope.py` CLI 골격 (`--base-sha`, `--output-dir`)
- [x] A2. `git diff --name-only base..HEAD` 실행 + changed_paths 수집 (4 집합 분리: head_diff/index_staged/working_tree_modified/untracked)
- [x] A3. scope classification (extension/server/dashboard/config/skills/scripts/docs/unscoped)
- [x] A4. `changed_paths.json` + `scope_matrix.json` 출력
- [x] A5. 빌드 검증 `python3 -m py_compile`

## Phase B — pre_push_guard.py (토르)

- [x] B1. CLI 골격 (`--task-id`)
- [x] B2. 검사 B-1 working tree clean (working_tree_modified ∪ untracked, system-ignore 적용)
- [x] B3. 검사 B-2 ahead/behind (behind > 0 → FAIL)
- [x] B4. 검사 B-3 task scope 일치 (head_diff 기준, allowed/forbidden 매칭)
- [x] B5. 검사 B-4 qc-result JSON ↔ 보고서 상태 일치 (qc_report_guard.check 호출)
- [x] B6. rc=0/1 반환 + 실패 사유 출력
- [x] B7. 빌드 검증

## Phase C — qc_report_guard.py (토르)

- [x] C1. CLI 골격 (`--task-id`)
- [x] C2. JSON `qc_result` 추출 (PASS/WARN/FAIL)
- [x] C3. 보고서 verdict 추출 (frontmatter `qc_verdict:` + `## QC Verdict` 섹션, 인용/코드 무시)
- [x] C4. JSON ↔ 보고서 매칭 룰 (ok_pairs set + ★ 사고 차단 분기)
- [x] C5. WARN 항목 누락 검사 (checks_summary 기반)
- [x] C6. rc=0/1 반환 + mismatch 사유 출력
- [x] C7. 빌드 검증

## Phase D — guard.sh 통합 CLI (토르)

- [x] D1. `scope`/`pre-push`/`qc-check` 명령 라우팅
- [x] D2. Phase 2/3 명령 자리표시 (`echo "not implemented"; exit 2`)
- [x] D3. `chmod +x scripts/guard.sh`

## 회귀 테스트 (헤임달)

- [x] T-A. `tests/scripts/test_task_scope.py` 7 시나리오
- [x] T-B. `tests/scripts/test_pre_push_guard.py` 7 시나리오
- [x] T-C. `tests/scripts/test_qc_report_guard.py` 11 시나리오 (guard.sh 통합 2 포함)
- [x] T-D. `python3 -m pytest tests/scripts/ -v` 36/36 PASS (목표 16+ 초과 달성)

## Phase E — 실 작동 검증 (오딘)

- [x] E1. 시나리오 A — rc=1 (B-1 차단)
- [x] E2. 시나리오 B — rc=1 (★ 사고 차단)
- [x] E3. 시나리오 C — rc=1 (B-3 forbidden 차단)
- [x] E4. 정상 케이스 — rc=0
- [x] E5. 메타 검증 — 본 task가 가드 3개 통과 (rc=0)

## 검증

- [x] Codex G1 사전 검증 (FAIL → 6 risks 모두 보강 설계로 해소 + 시뮬레이션으로 입증)
- [ ] Gemini PR 리뷰 — 본 task는 main 직접 push (worktree 미사용, project_id 없음) — 해당 안 됨
- [x] 마아트 독립 검증 — finish-task.sh의 자동 QC가 처리
- [x] G3 독립 검증 — finish-task.sh가 처리 예정
- [x] L1 스모크테스트 (py_compile + guard.sh CLI + 시뮬레이션 + 메타 검증)
- [x] 최종 보고서 작성 (`memory/reports/task-2434.md`)
