# task-2489 — Phase B 8종 종료 분류 enum + 자동 분류 룰 설계

- 작업 유형: **시스템 청사진 + dry-run classifier**
- 작업 레벨: **Lv.3** (설계 문서 + dry-run 코드)
- 위임팀: **dev6-team (페룬)** — 추천
- 우선순위: **★ medium** (병렬 발사 4)
- Track: **dev_workspace** (격리 / 문서)
- 일시: 2026-05-08

## ⚠️ 본 task의 본질 — 회장 명시

> 시스템 청사진 Phase B 8종 종료 분류 enum 및 자동 분류 룰 설계. **문서 + dry-run classifier까지만**. task-timer.py production 수정 금지. task-2486 머지 후 production 반영 여부 회장 재결정.

## 종료 분류 8종 (이미 정의됨)

| 분류 | merge 상태 | 차단 위치 | 정의 |
|---|---|---|---|
| `DONE` | MERGED | 없음 | 본질 PASS + merge + close 모두 완료 |
| `ESCALATED` | OPEN/MERGED | 본질 단계 | 본질 결함, retry 필요 |
| `DOGFOODING_PENDING` | MERGED | dogfooding layer | 자기검증 외부 의존 |
| `MERGE_PENDING_DEPENDENCY` | OPEN | merge 자체 | 후속 task 머지 의존 |
| `MERGED_CLOSE_BLOCKED_EXTERNAL` | MERGED | post-merge close | 외부 workspace dirty |
| `BLOCKED_BY_EXTERNAL_DEPENDENCY` | OPEN | 본질 진행 | 외부 시스템 차단 |
| `FAILED_PREEXISTING` | OPEN | 본질 진행 | 기존 결함 |
| `WAITING_FOR_CHAIR_DECISION` | 다양 | 정책 결정 | 회장 판단 대기 |

## 산출물

### 1. 분류 룰 설계 문서
- `memory/orchestration/phase_b_termination_classifier_spec_260508.md`
- 각 분류별 발동 조건 (boolean expression)
- 우선순위 / 충돌 해결 룰
- 마커 파일 컨벤션 (.done / .escalate / .merge-pending / .close-blocked-external 등)
- 자동 트리거 매트릭스 (어느 분류 → 어느 후속 액션)

### 2. dry-run classifier
- `tools/poc/termination_classifier.py` (격리 경로)
- 입력: task evidence (events/, reports/, PR state, CI rollup, retry_count, followup.txt)
- 출력: 8종 분류 enum + 신뢰도 + 후속 조건 list
- production 미반영 (격리)

### 3. 회귀 fixtures
- task-2466 (DONE)
- task-2481 (DOGFOODING_PENDING)
- task-2472+1 (MERGE_PENDING_DEPENDENCY)
- task-2483 (MERGED_CLOSE_BLOCKED_EXTERNAL)
- task-2485 (CODE_PASS / MERGE_PENDING_DEPENDENCY)
- 각 fixture에 대해 classifier가 정확한 분류 출력

### 4. task-timer.py `--reason` 옵션 명세 (문서만, 코드 X)
- Phase B 진입 시 적용할 옵션 사양
- 분류별 .done 자동 발행 skip 조건

## allowed_resources

```yaml
allowed_resources:
  paths:
    - "memory/orchestration/phase_b_termination_classifier_spec*.md"
    - "memory/orchestration/phase_b_integration_items_260507.md"  # 보강 가능
    - "tools/poc/termination_classifier**/*.py"
    - "tools/poc/termination_classifier/**/*.md"
    - "tests/poc/test_termination_classifier*.py"
    - "memory/poc/termination_classifier/fixtures/**"
    - "memory/tasks/task-2489*"
    - "memory/reports/task-2489*"
    - "memory/plans/tasks/task-2489/**"
    - "memory/events/task-2489*"
  forbidden_paths:
    - "memory/task-timer.py"  # ★ production 수정 금지
    - "scripts/dispatch.py"
    - "scripts/taskctl.py"
    - "scripts/finish-task.sh"
    - "scripts/refresh_bot_token.py"
    - "utils/task_id_parser.py"
    - "utils/state_repair.py"
    - "utils/g3_fail_classifier.py"
    - "teams/**"
    - ".github/workflows/**"
    - ".secrets/**"
    - "memory/events/task-2472*"
    - "memory/events/task-2479*"
    - "memory/events/task-2481*"
    - "memory/events/task-2483*"
    - "memory/events/task-2484*"
    - "memory/events/task-2485*"
    - "memory/events/task-2486*"
  forbidden_actions:
    - task_timer_production_modification  # ★ 회장 명시
    - real_classification_dispatch
    - production_marker_creation
    - admin_override
```

## 합격 조건

1. ✅ phase_b_termination_classifier_spec_260508.md 작성
2. ✅ tools/poc/termination_classifier.py 작성
3. ✅ 회귀 fixtures 5개 (task-2466 / 2481 / 2472+1 / 2483 / 2485) PASS
4. ✅ task-timer.py production 0 변경
5. ✅ task-2486 머지 후 production 반영 결정 명시 (회장 재결정 영역)
6. ✅ PR MERGED (격리 경로)
7. ✅ .done 생성

## 금지

- ❌ task-timer.py production 수정
- ❌ 실제 분류 dispatch / production marker 생성
- ❌ admin override

## 시스템 3문서 참조

- Phase B 통합 항목: `memory/orchestration/phase_b_integration_items_260507.md`
- 분류 3종 박제: 
  - `memory/feedback/feedback_dogfooding_pending_classification_260507.md`
  - `memory/feedback/feedback_merge_pending_dependency_classification_260507.md`
  - `memory/feedback/feedback_merged_close_blocked_external_classification_260507.md`
- 시스템 청사진 v3: `/home/jay/.claude/projects/-home-jay--cokacdir-workspace-autoset/memory/system_bot_orchestration_blueprint_260506.md`

## 보고

- SCQA 4섹션
- 헤르메스/아누 통합 요약 경유, 회장 직접 장문 보고 X