# task-2691 checklist

## 구현

- [ ] utils/finish_task_timing_logger.py (18 stage enum + JSONL append)
- [ ] utils/main_conflict_preflight.py (4-step + 3-decision)
- [ ] utils/task_mode_classifier.py (6 enum + sha256 immutability)
- [ ] teams/shared/qc_verify.py (task_mode_classifier import minimal)
- [ ] memory/logs/.gitkeep
- [ ] memory/logs/finish-task-timing.jsonl (empty initial)

## 테스트

- [ ] tests/regression/finish_task_timing_logger/test_record_stage_elapsed.py
- [ ] tests/regression/finish_task_timing_logger/test_enum_validation.py
- [ ] tests/regression/main_conflict_preflight/test_check_conflict_likelihood.py
- [ ] tests/regression/main_conflict_preflight/test_four_step_preflight.py
- [ ] tests/regression/task_mode_classifier/test_classify_six_modes.py
- [ ] tests/regression/task_mode_classifier/test_read_only_watcher_pass.py (task-2689 재현)
- [ ] tests/regression/task_mode_classifier/test_sha256_immutability.py

## 게이트

- [ ] G1 설계: allowed_resources 외 수정 0
- [ ] G2 구현: pytest PASS + 셀프 QC 8항목
- [ ] forbidden paths 변경 0 evidence (git diff 확인)
- [ ] L1 스모크: helper 모듈 import + 기본 호출
- [ ] G3 머지: PR 생성 + Gemini 리뷰 대기 (no auto-merge)

## 보고

- [ ] memory/events/task-2691.finish-task-latency-phase-1-result-260526.json
- [ ] memory/reports/task-2691.md (SCQA)
- [ ] memory/events/anu_callback/task-2691-normal-completion.json
