---
task_id: task-2405
type: plan
scope: task
created: 2026-05-03
updated: 2026-05-03
status: completed
---

# 계획서: task-2405 — Watchdog 회장 정의 재정의 (TRUE positive 전용)

**task**: task-2405
**목표**: session-watchdog.sh를 회장 정의(TRUE positive only)에 정합되도록 4개 fix(A/B/C/D) 보강 → false alert 0건 운영
**승인**: 제이회장 2026-05-03 명시
**근거**: `/home/jay/workspace/memory/tasks/task-2405.md` (회장 명시 정의 + 4 위반 진단)

---

## 목표

1. **Fix A**: `should_skip_for_escalate()` 의미 반전 — `.escalate` 또는 `.escalate.acked` 어느 하나라도 있으면 skip
2. **Fix B**: `.done`/`.done.acked`/`.done.notified` 존재 시 자동 status=escalated 박제 + skip
3. **Fix C**: `<task>.superseded_by` 마커 또는 후속 task md의 원본 task ID 언급 → 원본 자동 박제
4. **Fix D**: 진행 마커 화이트리스트(이미 5종 적용) 유지 + 회장 정의 명시 주석
5. **회귀 테스트 15+**: 회장 정의 5 OK/NG 매트릭스 모두 PASS
6. **L1 30분 실 운영**: 현 escalated task 7건(2389/2390/2391/2392/2394/2396/2399) → false alert 0건 검증

## 범위

### 포함
- `scripts/session-watchdog.sh` 수정 (1개 파일)
- `tests/test_watchdog_chairman_definition.py` 신규 (15+ 시나리오)
- 회장 정의 매트릭스 보고서

### 제외 (다음 페이즈 이후)
- `dispatch.py`, `done-watcher.py`, `finish-task.sh` 등 (forbidden)
- 다른 watchdog 파일 (orphan-watchdog, bot-status-watchdog 등)
- `memory/events/**` (90일 미만 이벤트 보존)

## 위임 계획

- **Phase 1 (설계)**: 오딘 — 4 fix 설계 + Codex 사전 검증 + 3 Step Why
- **Phase 2 (구현)**: 토르(Sonnet) — session-watchdog.sh Fix A/B/C 적용 + Fix D 주석 보강
- **Phase 3 (테스트)**: 헤임달(Sonnet) — test_watchdog_chairman_definition.py 작성 (15+ 시나리오)
- **Phase 4 (L1)**: 오딘 — DRY_RUN 30분 실 운영 + false alert 0건 확인
- **Phase 5 (검증)**: 마아트 독립 검증 + Gemini PR 리뷰 + G3 게이트

## 검증 기준

- pytest: `pytest tests/test_watchdog_chairman_definition.py -v` → 15+/PASS
- shellcheck: `shellcheck scripts/session-watchdog.sh` → 0 issue
- 기존 회귀: `pytest tests/test_watchdog_noise_elimination.py -v` → 14/PASS 유지
- L1 운영: `WATCHDOG_DRY_RUN=1 bash scripts/session-watchdog.sh` 1회 실행 → 회장 정의 NG 5케이스 모두 0 알람
