# .done 파일 상태 전이 (State Machine)

> 작성일: 2026-04-13 | task-1775 Phase 2-2

## 상태 전이도

```
[봇 작업 완료]
      │
      ▼
   .done  ───────────────────► .done.notified
  (팀장 봇 생성)              (activity-watcher 알림 전송 후)
                                     │
                                     ▼
                              .done.acked
                            (아누 보고서 확인 후 rename)
                                     │
                                     ▼
                              .done.clear
                            (제이회장님 보고 완료 후 rename)
```

## 상태 정의

1. **`.done`** — 팀장 봇이 작업 완료 시 생성 (team_prompts.py / qc_verify.py --gate)
2. **`.done.notified`** — activity-watcher가 텔레그램 알림 전송 후 생성
3. **`.done.acked`** — 아누가 보고서 확인 후 `.done`에서 rename
4. **`.done.clear`** — 아누가 제이회장님께 보고 완료 후 `.acked`에서 rename (히스토리 보존)

## 추가 확장자

- **`.done.escalated`** — 에스컬레이션 처리된 작업
- **`.done.processing`** — 아누가 현재 처리 중인 작업

## 각 컴포넌트별 체크 대상

- **session-watchdog.sh**: `.done`, `.done.clear` 체크 (재위임 방지)
- **activity-watcher.py**: `.done` + 5개 processed 확장자 체크 (중복 알림 방지)
  - processed 확장자: `.acked`, `.clear`, `.notified`, `.escalated`, `.processing`
- **아누(CLAUDE.md)**: `.done` 발견 → 보고 → `.done.acked` rename

## 불변 규칙

- `.done` 파일은 반드시 1번만 생성 (중복 생성 금지)
- 상태 전이는 항상 순방향 (`.done` → `.notified` → `.acked` → `.clear`)
- 역방향 전이 금지 (`.clear` → `.done` 불가)
- `.done` 파일 경로: `{WORKSPACE}/memory/events/{task_id}.done`
