# .done 알림 시스템 재설계 — 미팅 결과 재검토 (3사이클)

## 배경
아누 세션이 비활성 상태일 때 팀 작업 완료를 제이회장님께 보고하지 못하는 문제가 **3회 연속 실패**했다.
에이전트 미팅을 진행하여 합의에 도달했으나, **새로운 시각이 있는지** 1팀이 3사이클에 걸쳐 재검토한다.

## 미팅 기록 (필독)
`/home/jay/workspace/memory/meetings/2026-03-14-done-notification-direct-telegram.md`

## 현재 미팅 합의 요약
1. Telegram Bot API 직접 호출 (cokacdir --cron 제거, requests.post로 즉시 전송)
2. 전송 후 선점 (전송 성공 → .done.clear 생성 순서)
3. done-watcher도 동일하게 직접 API 호출
4. 봇 토큰: .env.keys에 ANU_BOT_TOKEN 추가
5. E2E 테스트 필수 (아누 세션 종료 상태에서 .done → Telegram 수신 × 3회)
6. 중복 알림 허용 (누락 > 중복)

## 현재 관련 코드 (반드시 읽을 것)
- `/home/jay/workspace/scripts/notify-completion.py` — 현재 알림 로직
- `/home/jay/workspace/scripts/finish-task.sh` — 작업 완료 스크립트
- `/home/jay/workspace/scripts/done-watcher.sh` — systemd timer fallback
- `/home/jay/.claude/hooks/user-prompt-submit.sh` — Hook (L2)
- `/home/jay/workspace/prompts/DIRECT-WORKFLOW.md` — 팀장 워크플로우

## 작업: 3사이클 재검토

### 사이클 1: 아키텍처 검증
- 미팅 합의안을 실제 코드와 대조하여 실현 가능성 검증
- 봇 토큰 경로 확인: `.env.keys`에 어떤 토큰들이 있고, Telegram Bot API에 사용할 수 있는 토큰이 실제로 존재하는지
- `cokacdir` CLI의 동작 방식을 역추적: 새 세션이 만드는 것이 AI 응답인지, Telegram 메시지인지
- **질문**: 미팅 합의안에 놓친 점은 없는가? 더 단순한 방법은?

### 사이클 2: 엣지케이스 + 보안
- Telegram Bot API rate limit (동시 3팀 완료 시)
- 봇 토큰 노출 방지 (스크립트에 하드코딩 금지)
- 서버 재부팅 시 미전송 .done 파일 처리
- 네트워크 단절 시 retry 로직
- **질문**: 선점-실패 버그 외에 또 다른 race condition은?

### 사이클 3: 구현 계획 + 테스트 설계
- 구체적 코드 변경 범위 (파일별 수정 내용)
- E2E 테스트 시나리오 상세화
- rollback 계획 (실패 시 기존 방식으로 복원)
- **질문**: 이 설계가 6개월 후에도 유지 가능한가?

## 산출물 (필수)
1. `/home/jay/workspace/memory/reports/task-561.1.md` — 3사이클 검토 보고서
2. 미팅 합의안에 대한 **찬성/수정/반대** 판정 + 근거
3. 수정 제안이 있으면 구체적 코드 스케치 포함
4. 최종 구현 지시서 (dispatch 가능한 수준의 상세도)

## 주의사항
- 직접 코드를 수정하지 말 것! 검토와 설계만 수행
- "모든 것이 좋습니다" 같은 형식적 동의 금지. 실질적 비판 필수
- 새로운 시각/대안이 있으면 반드시 제시