# task-2959 · done-watcher 성공 완료 알림 + 데몬 상시 가동 (봇 완료 감지 대책)

## 배경 (사실)
- 문제: 봇 task 완료 시 회장/ANU가 **실시간 알림을 못 받아** 매번 수동 폴링(task-2952·2953·2955 반복). ANU가 "마커 누락"으로 오진했으나, 실제는 봇 정상 종결(`.done.acked` 존재, finish-task `ok`).
- 진짜 원인 2가지:
  1. **`scripts/done-watcher.py` 데몬이 2026-06-18부터 미가동**(`bot-activity.json` 갱신 정지, systemd/cron 등록 없음).
  2. done-watcher는 설계상 **QC FAIL만 텔레그램 알림**, **성공 완료는 알림 없음**(idle 전환만).
- 즉 완료 감지·알림 채널이 두 달간 죽어 있었고 성공 경로가 애초에 부재.
- 회장 승인 완료(메타인프라 경미 재오픈).

## 작업
### 1. done-watcher 성공 완료 알림 추가
- `scripts/done-watcher.py`: `.done` 감지 시 (지금은 idle 전환 + FAIL만 알림) → **성공 완료(`.failed` 아닌 `.done`)에도 회장 챗(6937032012)에 요약 알림** 추가.
- 알림 내용(간결): `✅ task-XXXX 완료` + 가능하면 `memory/reports/task-XXXX.md` 헤드에서 **PR 번호·1줄 요약** 추출. 없으면 최소 task_id+리포트경로.
- **중복 방지**: `.done.notified` 마커로 이미 알린 건 재알림 금지(task-2952에 이미 이 마커 패턴 존재).
- 텔레그램 전송은 기존 `send_telegram_notification`/`notify-completion.py` 패턴 재사용(ANU_BOT_TOKEN·chat_id).

### 2. 데몬 상시 가동 (재부팅 생존)
- `--daemon`(30초 간격) 재기동 + **재부팅/크래시 자동 복구**: systemd user service 또는 `@reboot` cron 등록(둘 중 이 환경에 맞는 안전한 방식). 실행 시 `unset CLAUDECODE` 주의.
- 현재 미가동 데몬을 기동하고, 생존 확인.

### 3. 검증
- 테스트: 더미 `memory/events/task-TEST.done` 생성 → **회장 챗에 알림 1건 수신 확인**(스크린샷/로그) → `.done.notified` 생성 확인 → 재스캔 시 중복 알림 없음 확인 → 테스트 마커 정리.
- FAIL 알림 기존 동작 회귀 없음 확인.

## 원칙
- Surgical. 기존 FAIL 알림·idle 전환 로직 무변경, 성공 알림 경로만 추가.
- 알림 스팸 금지(.notified 중복가드 필수). 과거 누적 `.done.acked`를 소급 알림하지 말 것(신규 완료분만).

## 완료 조건
- 코드 수정(done-watcher.py) + 데몬 가동 + 생존 등록. 실제 알림 수신 스크린샷.
- `memory/reports/task-2959.md` + `.done` + ANU 콜백.
- ⚠️ 이 task 완료 시 **새 알림 경로로 회장 챗에 완료 알림이 실제로 와야** = 대책 자체 검증.
