---
task_id: task-2367
type: checklist
scope: task
created: 2026-05-02
updated: 2026-05-02
status: completed
---

# 체크리스트: task-2367

**task**: task-2367 — Tiered Auto-Merge + Audit Log + Health Probe + Auto Revert

---

## Phase 0 — 사전 준비

- [x] A. main 동기화 (P0 산출물 fast-forward)
- [x] B. 워크트리 생성 `.worktrees/task-2367-dev7`
- [x] C. 3문서 업데이트 (plan/checklist/context-notes)
- [x] D. Codex 사전 검증 — critical 3건 설계 반영 (git revert / Tier 3 사전 차단 / 멱등 마크)

## Phase 1 — Tier Classifier + Audit Log (쿠쿨칸 / 백엔드)

- [x] A. `scripts/auto_merge.py` — `classify_tier()` 추가 (3-tier 분류)
- [x] B. `scripts/auto_merge.py` — capability snapshot 로드 헬퍼 (`_load_capability_snapshot`)
- [x] C. `scripts/auto_merge.py` — `run()` 안에 tier 분기 삽입
- [x] D. `memory/audit/auto-merge.log` JSONL append-only 헬퍼 (`_append_audit`, fcntl.flock)
- [x] E. `memory/audit/.gitkeep` + 디렉토리 생성

## Phase 2 — Health Probe + Auto Revert + Circuit Breaker (쿠쿨칸 / 백엔드)

- [x] A. `scripts/post_merge_probe.py` 신규 (delay 5분, build/test 재검증, audit 기록, FAIL 시 auto_revert 트리거)
- [x] B. `scripts/auto_revert.py` 신규 (★ `git revert -m 1` PR 생성, `git reset --hard` 0건)
- [x] C. `dispatch.py` — `_check_circuit_breaker(bot_id)` + `_record_violation` 추가 (line 2292/2339)
- [x] D. `memory/audit/violation-count.json` 빈 객체 초기화

## Phase 3 — Integration (쿠쿨칸 / 백엔드)

- [x] A. `scripts/finish-task.sh` — `.merge-done` 직후 5분 background probe 트리거 (line 440)
- [x] B. self-bypass 방어 검증: 실제 capability snapshot으로 `classify_tier('task-2367', ...)` → `tier3` ✅

## Phase 4 — Test (카마소츠 / 테스터)

- [x] A. `tests/dev7/test_tier_classifier.py` — 9 시나리오 PASS
- [x] B. `tests/dev7/test_post_merge_probe.py` — 3 시나리오 PASS
- [x] C. `tests/dev7/test_auto_revert.py` — 2 시나리오 PASS (`git revert -m 1` 검증)
- [x] D. `tests/dev7/test_circuit_breaker.py` — 4 시나리오 PASS
- [x] E. 회귀 (P0 `test_scope_guard.py`) — 12 PASS (회귀 0)
- [x] F. 6 검증 시나리오 매트릭스 100% PASS (보고서 본문)

## Phase 5 — Report + Gate (이참나 / 팀장)

- [x] A. SCQA 보고서 작성 (`memory/reports/task-2367.md`)
- [x] B. context-notes.md 결정 근거 + Codex 반영 기록
- [x] C. plan.md status → completed
- [ ] D. G3 독립 검증 PASS (finish-task.sh가 자동 수행)
- [ ] E. PR 생성 (Tier 3 / 회장 명시 승인 대기)

## 검증

- [x] pytest 30/30 PASS
- [x] py_compile 0 error
- [x] 6 시나리오 매트릭스 100% PASS
- [x] L1 smoke (post_merge_probe.py 실제 실행) PASS
- [ ] QC 자동 검증 (finish-task.sh가 수행)
- [ ] 최종 보고 (notify-completion 자동)
