---
task_id: task-2454
type: checklist
scope: task
created: 2026-05-05
updated: 2026-05-05
status: in-progress
---

# 체크리스트: task-2454

**task**: task-2454

---

## Phase 1 — 설계/검증 (비슈누)

- [x] §0 fresh worktree 생성 + 위치 검증
- [x] Codex G1 사전 검증 1차 실행 (PASS=false → 권고 반영하여 설계 보강)
- [x] 3문서 작성 (plan.md, context-notes.md, checklist.md)
- [x] 3 Step Why 자문 완료 (context-notes.md)

## Phase 2 — 구현 (병렬 위임)

### 카르티케야 (백엔드)
- [ ] A. `scripts/start_task_guard.py` 8개 검증 구현
- [ ] B. lock JSON 생성 + heartbeat 필드
- [ ] C. evidence JSON 저장 (`memory/events/<task>.start-guard.json`)
- [ ] D. `--check-mixed` 모드 + freeze 마커
- [ ] E. `--cleanup-stale` 모드
- [ ] F. `--update-heartbeat` 모드
- [ ] G. `--takeover-from` 옵션 (handoff 부재 검증)

### 사라스바티 (프론트)
- [ ] A. `memory/specs/handoff-schema.json` (Draft 2020-12)
- [ ] B. `memory/specs/handoff-schema.md` (필드 의미 + 사용 패턴)
- [ ] C. `scripts/create_handoff.py` (4000자 제한 + path 분리)
- [ ] D. self-validation (jsonschema)

### 락슈미 (UX/UI)
- [ ] A. `memory/specs/start-guard-spec.md` (호출 강제 설계)
- [ ] B. dispatch.py STEP 0 cron prompt 템플릿
- [ ] C. Phase 2 통합 계획 (session-watchdog 통합 절차 포함)

## Phase 3 — 테스트 (하누만)

- [ ] A. `tests/start_guard/test_validations.py` 8개 검증 항목 단위 테스트
- [ ] B. `tests/start_guard/test_lock.py` lock JSON + heartbeat
- [ ] C. `tests/start_guard/test_mixed_commit.py` freeze 동작
- [ ] D. `tests/start_guard/test_cleanup_stale.py`
- [ ] E. `tests/handoff/test_create.py` create_handoff
- [ ] F. `tests/handoff/test_schema.py` schema validation
- [ ] G. §6.1~6.5 라이브 시나리오 raw 로그 캡처

## 검증/통합 (비슈누)

- [ ] pytest 전체 PASS (start_guard + handoff)
- [ ] §6.1 정상 흐름 라이브 PASS
- [ ] §6.2 차단 6 케이스 모두 FAIL 받음
- [ ] §6.3 mixed commit freeze PASS
- [ ] §6.4 handoff schema valid PASS
- [ ] §6.5 cleanup-stale PASS
- [ ] Codex G1 재검증 PASS
- [ ] Gemini G2 PASS (PR 리뷰)
- [ ] G3 독립 검증 PASS
- [ ] 셀프 QC 8항목
- [ ] L1 스모크테스트 (실제 CLI 실행 + raw 로그)
- [ ] 보고서 작성 (memory/reports/task-2454.md)
- [ ] PR 생성 → 자동 머지
