---
task_id: task-2511
type: checklist
scope: task
created: 2026-05-09
updated: 2026-05-09
status: completed
---

# 체크리스트: task-2511

**task**: task-2511 — auto_gemini_triage

---

## Phase 1 — 설계 + Codex 사전 검증

- [x] A. 3문서 채우기 (plan / context-notes / checklist)
- [x] B. 3 Step Why A-B-C 답변 일관성 검증
- [x] C. Codex 사전 검증 PASS (3차 시도, --workspace-root worktree 지정 후 PASS)
- [x] D. 보안: sanitize 게이트 (PII 0건 — 회귀 fixture만 합성)

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

- [x] A. `utils/auto_gemini_triage.py` 신규 작성
  - [x] A1. TriageVerdict Enum (7 종)
  - [x] A2. ThreadTriageOutcome dataclass
  - [x] A3. `classify_thread()` — 7-state classifier (8단계 우선순위)
  - [x] A4. `build_resolve_thread_args()` — gh api graphql resolveReviewThread args
  - [x] A5. `auto_resolve_threads()` — 5종 자동 처리 + apply 실패 반영
  - [x] A6. `detect_scope_expansion()` — Critical #1/#3 EscalationPacket
  - [x] A7. `triage_pr()` — orchestration → TriageReport
  - [x] A8. CLI `--pr / --dry-run / --apply / --task-file / --fixture`
  - [x] A9. `_fetch_pr_threads()` — 실제 GraphQL fetch (실패 시 보수적 unresolved)
  - [x] A10. `to_legacy_gemini_state()` — task-2514 wiring 호환
  - [x] A11. micro-commit (3건)

## Phase 3 — 회귀 테스트 (루 + 다그다)

- [x] A. `tests/regression/test_auto_gemini_triage_2511.py` 신규 작성 (19건 — 16 + Codex 권고 3)
  - [x] T1~T16: 회장 명시 16건 회귀
  - [x] T17: hardcoded path direct false-positive (Codex G1 권고)
  - [x] T18: review_gate_passed unresolved 잔여 시 False (Codex G1 권고)
  - [x] T19: benign comment + path mention → critical escalate 방지 (Codex G1 권고)
- [x] B. micro-commit

## Phase 4 — L1 스모크 + QC

- [x] A. `python3 utils/auto_gemini_triage.py --pr 61 --dry-run --fixture <path>` 실행 (offline 가상 fixture) — exit 0
- [x] B. `pytest tests/regression/test_auto_gemini_triage_2511.py -q` 19/19 PASS
- [x] C. effective diff = 정확히 2 파일 검증
- [x] D. forbidden path 0건 확인
- [ ] E. G3 독립 검증 PASS (finish-task.sh에서 자동 실행)

## 검증

- [x] 테스트 통과 확인 (pytest 19/19)
- [ ] QC 검증 완료 (qc_verify.py / finish-task.sh)
- [ ] PR 생성 + Gemini 리뷰 대응 (Lv.3 worktree --action pr)
- [ ] 최종 보고서 작성 + finish-task.sh
