# .done 자동 감지 메커니즘 설계 — 에이전트 미팅

## 태스크 ID: task-897.1

## 목표
팀 작업 완료 시 생성되는 `.done` 파일을 **토큰 소모 없이 빠른 주기로 자동 감지**하여,
아누에게 즉시 알려주는 메커니즘을 설계한다.

## 배경 (현재 문제)
1. 팀이 작업 완료 → `memory/events/<task_id>.done` 파일 생성
2. 아누는 **제이회장님이 말을 걸어야만** `.done`을 확인 (매 대화 시작 시 `ls *.done`)
3. 그 사이 팀이 유휴 상태로 대기 → 리소스 낭비 (예: dev8이 11시간째 유휴)
4. **병목**: 아누 세션 = 싱글스레드, .done 감지가 수동

## 설계 요구사항

### 필수 조건
1. **토큰 미사용**: Claude API/세션을 소비하지 않는 감지 방식
2. **빠른 주기**: 최소 1~5분 이내 감지
3. **기존 시스템과 충돌 없음**:
   - 기존 `.done` → `.done.clear` 프로토콜과 호환
   - cokacdir 봇 시스템과 충돌 없음
   - dispatch.py / task-timer.py와 충돌 없음
4. **레이스 컨디션 방지**: 여러 팀이 동시 완료 시에도 안전해야 함
5. **"먼저 채가는 문제" 방지**: 여러 프로세스가 같은 .done을 처리하려는 경쟁 방지

### 검토할 접근 방식 (제한 없음, 자유롭게 추가 가능)
- **A. 파일 워처 데몬** (inotifywait): `memory/events/` 감시 → .done 생성 시 알림
- **B. 크론 폴링**: 경량 스크립트가 N분마다 .done 검사 → Telegram 알림
- **C. 팀 완료 시 직접 통보**: dispatch 워크플로우에서 .done 생성과 동시에 cokacdir --cron으로 아누 알림
- **D. Systemd path unit**: systemd의 PathChanged 트리거 활용
- **E. 기타**: 미팅에서 자유롭게 제안

### 검토 관점 (반드시 포함)
1. **구현 난이도**: 얼마나 빨리 안정적으로 만들 수 있나
2. **장애 복구**: 데몬이 죽으면? 서버 재부팅하면?
3. **토큰 비용**: 정말로 토큰 0인가, 아니면 숨은 비용이 있나
4. **기존 코드 변경 범위**: dispatch.py, team_prompts.py, DIRECT-WORKFLOW.md 등 얼마나 건드려야 하나
5. **확장성**: 팀 8개 → 16개로 늘어도 문제없나
6. **보안**: 외부 노출 없이 내부 통신으로 완결되나

## 에이전트 미팅 규칙

### 참석자 (필수)
- **헤르메스 (1팀장)** — 미팅 주관, 설계 판단
- **로키 (보안팀장)** — DA(Devil's Advocate), 모든 제안에 반론/리스크 제기
- **펜리르 (보안팀원)** — DA 보조, 침투/경쟁 시나리오 제기
- 필요 시 추가 참석자 소집 가능 (야누스/DevOps, 불칸/백엔드 등)

### 미팅 사이클 (무제한)
1. 1차: 각 방안 제안 + 장단점 분석
2. 2차: 로키/펜리르 반론 + 리스크 시나리오
3. 3차: 반론 반영 수정안
4. N차: **만장일치 합의**될 때까지 반복 (최대 사이클 제한 없음)
5. 합의 후: 최종 설계 문서 작성

### 산출물
- 미팅 기록: `memory/meetings/task-897.1-done-polling.md`
- 최종 설계서: `memory/specs/done-polling-spec.md`
- 보고서: `memory/reports/task-897.1.md`

## 작업 후 처리
- task-timer end: `python3 /home/jay/workspace/memory/task-timer.py end task-897.1`
- .done: `touch /home/jay/workspace/memory/events/task-897.1.done`
