---
name: feedback-watchdog-owner-decision-terminal-state-bug-260528
description: session-watchdog.sh가 OWNER_DECISION_REQUIRED 마커를 terminal state로 인식 못하고, escalate=no alert-only가 회장 chat에 노출되는 2중 버그. 수정은 메타 1차 종료선 후속 보류 항목(회장 verbatim 2026-05-28).
metadata:
  type: feedback
---

# WATCHDOG_OWNER_DECISION_TERMINAL_STATE_BUG (★ 회장 verbatim 2026-05-28 기록 · 즉시 수정 금지·보류)

## 사실

`scripts/session-watchdog.sh`(매 2분 cron)가 task-2702 를 6회+ 회장 chat 6937032012 에 `[Watchdog] ⚠️ stalled 1건` 으로 발사. 실제로는 dev2 봇이 10:22 `OWNER_DECISION_REQUIRED` 분기로 정상 종결(read-only 진단 완료 + 회장 결정 대기).

## 2중 버그

### 버그 1 — `OWNER_DECISION_REQUIRED` 마커 미인식 (terminal state classifier gap)

- `list_active_markers()` 가 인식하는 `PROGRESS_MARKERS` 배열에 `owner-decision-required` 미등재
- `memory/events/task-<id>.owner-decision-required.json` = 봇이 추정 패치 금지 분기 정상 종결 시그니처
- `markers=none → stalled` 오판
- task-timers.json status 도 `running` 그대로 유지(봇 finish-task 미실행 = OWNER_DECISION_REQUIRED 분기 정상)

### 버그 2 — `escalate=no` alert-only 가 회장 chat 노출 ([[feedback_followup_cron_policy_260509]] 위반)

- `add_stalled` → telegram sendMessage chat_id=6937032012 무조건 발사
- `escalate=no` 인 alert-only(`stalled-alert-only` reason)도 회장 chat 직접 노출
- 회장 정책: "Scheduled 알림 회장 chat 노출 X / Critical 7종·stuck 시에만 보고"
- escalate=yes 또는 Critical 7 식별 시에만 회장 chat 발사해야 함

## ★ Why 이번에만 노출되었나

`OWNER_DECISION_REQUIRED` 분기 = read-only 진단의 정상 종결 경로. 봇은 finish-task 미실행이 정책상 옳음. 그러나 watchdog 시각에선 .done 없음 + task-timers running + PROGRESS_MARKERS 없음 = stalled. 본 분기가 정상화된 이번이 처음 광범위 노출.

## ★ How to apply

**현재 (회장 verbatim 2026-05-28 OPT1 결정)**: 즉시 수정 금지. **메타 1차 종료선 후속 보류 항목**으로만 기록. 운영 우회는 `.escalate` + `.escalate.acked` 사용(회장 task-2405 fix#A 메커니즘) + task-timers status 종결.

**향후 수정 트리거(셋 중 하나)**: Critical 7 재현 / 실제 사업 작업 차단 / 명시적 생산성 병목.

**수정 방향 (보류 — 코드화 시 참고)**:
1. `PROGRESS_MARKERS` 배열에 `owner-decision-required` 추가 → `markers=owner-decision-required` 로 alive 판정
2. `add_stalled` chat sendMessage 발사를 escalate=yes 또는 Critical 7 분류 시에만 (alert-only 는 로그만)
3. 또는 OWNER_DECISION_REQUIRED 인지 시 task-timers status 를 `escalated_to_chair` 로 자동 갱신 (RUNNING_TASKS 제외)
4. 직전 PROGRESS_MARKERS 확장이 false-alive 위험 0(봇이 정상 분기에서만 생성)이라 1번이 최소 변경

## 박제 evidence

- 회장 chat 사진(2026-05-28 11:49/11:51/11:53/11:55/11:57/11:59 6회 alert) — `task-2702(team=dev2-team, reason=stalled-alert-only, taskfile=yes, escalate=no, hb_age=-1s, ev_age=5360~5842s, markers=none)`
- ANU 즉시 우회: `memory/events/task-2702.escalate` + `.escalate.acked` 생성 + task-timers status → `completed_owner_decision_accepted`
- 회장 OPT1 verdict #3·#4: "watchdog 버그 별도 기록 · 즉시 새 메타 task 확장 금지 · 메타 1차 종료선 체크리스트 후속 보류 항목"

## 관련

- [[feedback_followup_cron_policy_260509]] — Scheduled 알림 회장 chat 노출 X 정책의 위반 사례
- [[feedback_no_speculation_as_fact]] — 같은 task-2702 사건에서 ANU 의 mtime 추측이 회장 verdict로 오진단 박제
