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

# 체크리스트: task-2370

**task**: task-2370

---

## Phase 1 — 설계 (다그다)

- [x] A. 의존성(2364, 2367) 산출물 확인 + 미팅 합의 파악
- [x] B. 3문서 작성 (plan/context-notes/checklist) + 3 Step Why
- [x] C. Codex G1 사전 검증 PASS (critical/high/medium 6건 모두 설계 반영)
- [x] D. Sanitize 게이트 PASS (Codex 자체에서 PII 마스킹 3건 자동 처리)

## Phase 2 — 구현 (루 백엔드)

- [x] A. `scripts/anu_confirm_bot/__init__.py` (빈 모듈)
- [x] A2. `scripts/anu_confirm_bot/config.py` (env: BOT_TOKEN/CHAT_ID/SECRET/TRIGGER_MARKER/TTL)
- [x] A3. `scripts/anu_confirm_bot/signer.py` (HMAC-SHA256 sign/verify)
- [x] A4. `scripts/anu_confirm_bot/main.py` (Flask /webhook + /healthz + send_approval_card)
- [x] A5. `scripts/anu_confirm_bot/systemd/anu-confirm-bot.service`
- [x] B. `scripts/daily_digest.py` (audit log 파싱 + 10% 샘플링 + 카드)
- [x] C. `scripts/scope_violation_alert.py` (별도 채널 helper)
- [x] D. `scripts/auto_merge.py` 통합 hook (Tier 2 + scope violation, 최소 수정)

## Phase 3 — 테스트 (모리건)

- [x] A. `tests/dev3/test_anu_confirm_bot.py` (callback 서명/TTL/위조)
- [x] B. `tests/dev3/test_daily_digest.py` (audit log 파싱/샘플링)
- [x] C. `tests/dev3/test_signer.py` (HMAC 라운드트립)
- [x] D. `tests/dev3/test_scope_violation_alert.py`
- [x] E. P0/P1 회귀 0건 확인 (test_scope_guard 12/12, test_tier_classifier 9/9 등)

## Phase 4 — 검증 (다그다)

- [x] A. pytest 전체 PASS (62/62)
- [x] B. py_compile 모든 신규 파일
- [x] C. L1: webhook 기동 + curl healthz 200 + signed callback POST 200
- [x] D. L1: daily_digest.py 직접 실행 + graceful fallback (audit log empty → 0건 카드)
- [x] E. classify_tier(task-2370) → tier3 자가 검증 (self-bypass 방어)
- [ ] F. Gemini PR 리뷰 대응 (PR 생성 후 진행)
- [ ] G. G3 독립 검증 PASS (보고서 작성 후 진행)

## 검증 (Phase 5)

- [x] 7가지 검증 시나리오 매트릭스 작성
- [x] SCQA 보고서 작성
- [ ] G3 게이트 PASS
- [ ] finish-task.sh 실행
