# Agent 미팅: 아누 세션 비활성 시 팀 완료 실시간 보고

**날짜**: 2026-03-14
**소집 이유**: 3-Layer Defense 구축 후에도 팀 완료 보고가 제이회장님에게 전달되지 않는 문제 반복 (3회 연속 실패)
**참여 페르소나**: 헤르메스(1팀장), 야누스(DevOps), 로키(레드팀/DA), 아르고스(테스터)
**미팅 모드**: hybrid
**토론 깊이**: thorough
**총 사이클 수**: 2

---

## 근본 원인

1. 아누 세션 의존 구조: 아누가 깨어있어야만 보고 가능
2. cokacdir --cron은 새 Claude 세션 생성 = Telegram 직접 전송이 아님
3. "선점 후 실패" 버그: notify-completion.py가 .done.clear 먼저 생성 → cokacdir 실패 시 done-watcher 복구 불가
4. 검증 없이 완료 선언 반복

## Cycle 1 (Independent)

### 아누 분석
- 3-Layer Defense 모두 아누 세션 의존
- cokacdir --cron의 새 세션이 실제로 보고를 완료하는지 미검증
- Hook은 제이회장님 메시지 시에만 발동

### 페르소나 의견
**헤르메스**: Telegram Bot API 직접 호출 (requests.post) 권장. 4가지 방안 비교 후 A(직접 API) + D(watcher 수정) 조합 추천.
**야누스**: systemd Path Unit(inotify) + telegram-notifier.py 제안. 4-Layer fail-safe 설계. Path Unit 감지 ~1초.
**로키**: "아누를 거쳐야 보고된다는 구조 자체를 버려야 4번째 실패를 막음." 검증 없이 완료 선언 패턴 비판. E2E 테스트 필수.
**아르고스**: "선점 후 실패" 버그 발견. 22개 테스트 시나리오 설계. "전송 후 선점" 방향 권장. 중복 알림 < 알림 누락.

## Cycle 2 (DA: 헤르메스)

### Devil's Advocate
**지정**: 헤르메스
1. **실패 시나리오**: Telegram API도 실패 가능 → retry 3회 + done-watcher fallback으로 해결
2. **후회 이유**: 아누 판단 없는 알림만 감 → 즉시 사실 전달이 우선, 심층 분석은 다음 세션
3. **더 단순한 대안**: done-watcher.sh에 5줄 추가면 충분 → **수용**: 최소 변경 우선

**판정**: DA 우려 수용 — Path Unit은 Phase 2, 최소 변경 우선

### 비관습적 대안 (아르고스)
**.done 파일 → SQLite 레코드 교체**
- 최강 지지: 파일 기반 구조적 한계 근본 해결
- 최강 반론: 팀장 봇 인터페이스 전면 교체 필요
- **판정**: 기각 — 현재 3팀 규모에서 파일 기반 충분

---

## 최종 합의 사항

1. **Telegram Bot API 직접 호출** — notify-completion.py에서 cokacdir --cron 제거, requests.post()로 즉시 전송
2. **전송 후 선점** — 전송 성공 확인 후 .done.clear 생성 (선점-실패 버그 해소)
3. **done-watcher 동일 적용** — fallback도 직접 API 호출
4. **봇 토큰**: .env.keys에 ANU_BOT_TOKEN 추가 (bot_settings.json 의존 제거)
5. **E2E 테스트 필수**: 아누 세션 종료 상태에서 .done 생성 → Telegram 수신 확인 × 3회
6. **중복 알림 허용**: 누락보다 중복이 나음

## 미해결 항목
- systemd Path Unit (inotify 기반): Phase 2로 보류
- SQLite 마이그레이션: 팀 확장 시 검토
- GROUP_CHAT_BOT_TOKEN vs ANU_BOT_TOKEN 구분 확인 필요

## 다음 단계
1. 합의 내용을 dispatch 파일로 작성하여 팀에 위임
2. 구현 후 E2E 테스트 3회 필수 (아누 세션 종료 상태에서)
3. 테스트 통과 전 "완료" 선언 금지
