---
task_id: task-2700
type: checklist
scope: task
created: 2026-05-27
updated: 2026-05-27
status: completed
---

# 체크리스트: task-2700

**task**: task-2700

---

## Phase 0 — 설계/게이트 (페룬)

- [x] A. 3문서 작성 (plan/context/checklist)
- [x] B. 3 Step Why 자문 기록
- [x] C. Codex G1 사전 검증 PASS (마아트 폴백 통과)

## Phase 1 — utils 모듈 3종 (스바로그)

- [x] A. utils/divergence_guard.py — measure_divergence + should_hold(fail-closed) + CLI (요구 1,2,14)
- [x] B. utils/dirty_registry.py — collect/JSONL/owner추정 + classify_blocker + separate (요구 6,7,8,10,11)
- [x] C. utils/callback_cause_classifier.py — 원인 구분 + finish profile 4종 (요구 9,12)

## Phase 2 — 인프라 확장 (스바로그)

- [x] A. worktree_manager.cmd_create origin/main SHA base 강제 + base SHA marker (요구 3,4)
- [x] B. worktree_manager.verify_spawn_base spawn 검증 (요구 15)
- [x] C. finish-task.sh merge-base 검증 + dirty 분리 진단 마커 (요구 5,8,10,11, additive)

## Phase 3 — 테스트 (벨레스)

- [x] A. 8 검증 시나리오 작성 (divergence/clean/base-SHA/external-dirty/own-dirty/callback/registry)
- [x] B. task-2699 fixture (ahead/behind + dirty 재현) (요구 13)
- [x] C. divergence HOLD 테스트 (요구 14)

## Phase 4 — G2 remediation (페룬)

- [x] A. --fail-open bypass flag 제거 (bypass 금지 doctrine)
- [x] B. pre_dispatch_divergence_guard.sh pre-flight 훅 추가 (dispatch 전 진입점, dispatch.py 미변경)
- [x] C. CLI bypass/HOLD 테스트 2건 추가

## 검증

- [x] 전체 pytest 통과 확인 (14 시나리오, 기존 worktree/finish-task 21 회귀 0)
- [x] G2: 마아트 독립 검증 PASS (High 0). Gemini PR 리뷰: stale-base PR 안티패턴 회피로 PR 미생성(회장 결재)
- [x] G3: g3_independent_verifier 실행 (보고 직후 기재)
- [x] QC 검증 (critical) — finish-task.sh 자동 수행
- [x] dispatch.py 핵심 변경 0건 확인
- [x] 최종 보고 (SCQA) — memory/reports/task-2700.md
