---
task_id: task-2394
type: checklist
scope: task
created: 2026-05-03
updated: 2026-05-03
status: completed
---

# 체크리스트: task-2394

**task**: task-2394

---

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

- [x] A. task 파일 분석 + 3문서 작성
- [x] B. 3 Step Why 일관성 검증 (context-notes 기록)
- [x] C. Codex G1 사전 검증 (raw 출력 기록, 지적 흡수 명시)

## Phase 2 — 구현 (페룬, 직접 작성)

- [x] A. `scripts/ids_natural_routing.py` 작성
  - [x] A1. IntentClassifier (5 categories + ambiguous)
  - [x] A2. SizeExtractor (인스타/페북/X/스레드/네이버 등 8종)
  - [x] A3. StyleExtractor (브랜드 12종 + 톤 8종)
  - [x] A4. RoutingMatrix (intent → skill, dual version 교차)
  - [x] A5. 외부 API 차단 가드 `block_direct_api_call`
  - [x] A6. SLA tracker + confidence + needs_confirmation
- [x] B. `tests/dev6/test_ids_phase6_natural_routing.py` 작성 (29 tests)
  - [x] B1. intent 분류 (parametrize 6건)
  - [x] B2. 50개 자연어 샘플 정확도 ≥ 90% (실측 100%)
  - [x] B3. SLA P95 ≤ 2000ms (실측 < 1ms)
  - [x] B4. 외부 API mock 차단 (2건)
  - [x] B5. dual version 교차 (satori vs threadauto_render)
  - [x] B6. confidence 임계값 + needs_confirmation
  - [x] B7. ambiguous 폴백 + PII 누출 방지
- [x] C. pytest 29/29 PASS

## Phase 3 — L1 + 검증

- [x] A. L1 스모크: `python3 scripts/ids_natural_routing.py` 5 자연어 샘플 출력
- [x] B. py_compile 통과
- [x] C. mypy/pyright: unused import 1건 정리 후 신규 알림 없음

## 검증

- [x] 테스트 29 PASS, 정확도 100% (50/50)
- [ ] G3 독립 검증 (보고서 작성 후 실행)
- [ ] QC 자동 검증 (finish-task.sh)
- [ ] 보고서 작성 → finish-task.sh
