# task-402.1: 완료 통보 시스템 3가지 개선

## 배경
팀 작업 완료 후 아누에게 통보하는 시스템에 3가지 문제가 발견됨.

---

## 문제 1: 완료 통보 프롬프트 토큰 낭비
**현상**: `notify-completion.py`의 `build_prompt()`가 매번 ~600자의 동일한 지시문을 cron 프롬프트에 인라인으로 넣음.
**파일**: `/home/jay/workspace/scripts/notify-completion.py` (12~34줄)

**개선**:
- 지시문 본문을 별도 파일로 분리: `/home/jay/workspace/scripts/completion-handler-instructions.md`
  - 파일 내용: task_id 플레이스홀더를 사용한 지시문 템플릿
- `build_prompt()`는 한 줄로 축소: `"{task_id} 완료 처리. /home/jay/workspace/scripts/completion-handler-instructions.md 읽고 task_id={task_id}로 실행하라."`
- 목표: ~600자 → ~120자 이하 (80% 토큰 절약)

---

## 문제 2: auto_merge.py team_id 매핑 버그
**현상**: 자동 머지 시 워크트리 경로를 잘못 조합하여 대부분 실패.
**증거** (merge-log.json):
- task-395.1: `task-395.1-dev1-team`으로 검색 (실제: `task-395.1-dev1`) → 실패
- task-397.1: `task-397.1-dev1-team`으로 검색 (실제: `task-397.1-dev1`) → 실패
- task-399.1: `task-399.1-dev1`로 검색 (실제: `task-399.1-dev2`, 2팀 작업) → 실패
- task-396.1: 유일하게 성공 (우연히 경로가 맞았음)

**파일**: `/home/jay/workspace/scripts/auto_merge.py`
- `execute_merge()` (244줄): team_id를 worktree_manager에 전달할 때 team_short 변환 안 됨
- `.done` 파일의 team_id (`dev1-team`) → worktree 이름의 team_short (`dev1`) 변환 필요
- 또한 .done 파일에 team_id가 없는 경우, 보고서에서 워크트리 브랜치명을 파싱해서 team_short 추출해야 함

**개선**:
- team_id → team_short 변환 로직 추가 (`dev1-team` → `dev1`, `dev2-team` → `dev2`)
- 보고서의 `merge_worktree` 경로나 `merge_branch`에서 team_short 역추출 로직 보강
- `report_parser.py`의 `merge_worktree` 파싱 결과를 적극 활용

---

## 문제 3: auto_merge.py ↔ notify-completion.py 경합
**현상**: 두 시스템이 동시에 `.done` 파일을 처리하면서 충돌.
- auto_merge.py (crontab 매분): `.done` 발견 → 머지 시도 → `.done.clear` 생성 (또는 `.done` 삭제)
- notify-completion.py (팀장이 1분 후 cron): `.done.clear` 이미 존재 → "이미 처리됨" → 아누에게 보고 안 함
- **결과**: 아누가 작업 완료를 제이회장님께 보고하지 못함

**개선 방향** (에이전트 미팅에서 최적안 결정):
- **옵션 A**: auto_merge.py가 머지 성공 시 아누에게 직접 통보 (notify-completion.py 역할 흡수)
- **옵션 B**: auto_merge.py는 머지만 담당, `.done` 파일은 건드리지 않음. notify-completion.py가 머지 여부 확인 후 처리
- **옵션 C**: 완료 처리를 하나의 스크립트로 통합 (auto_merge + notify-completion → unified completion handler)
- **핵심**: 어떤 방식이든 "아누에게 보고"가 빠지면 안 됨

---

## 요청사항

### Step 1: 에이전트 미팅
- **참석자**: 헤르메스(팀장), 불칸(백엔드), 아르고스(테스터)
- **안건**: 문제 3 (경합 해소)의 최적 방안 결정
- **미팅 기록**: `memory/meetings/2026-03-07-completion-system-fix.md`

### Step 2: 3가지 문제 모두 구현
- 에이전트 미팅 결론을 반영하여 코드 수정
- 파일별 변경 범위 명확히 구분

### Step 3: 테스트
- 기존 테스트 통과 확인
- 새 기능 테스트 추가:
  - notify-completion.py: 파일 기반 프롬프트가 올바르게 생성되는지
  - auto_merge.py: team_id 변환이 정확한지 (dev1-team → dev1, dev2-team → dev2)
  - 경합 해소: 통합 후 아누 통보가 누락 없이 동작하는지
- pyright 에러 0건

## 산출물
- 미팅 기록: `memory/meetings/2026-03-07-completion-system-fix.md`
- 완료 보고서: `memory/reports/task-402.1.md`
- 수정된 코드 파일

## 완료 조건
1. 프롬프트 토큰 80% 이상 절약 확인
2. auto_merge team_id 매핑 버그 수정 및 테스트
3. 경합 해소 — 아누 보고 누락 0건 보장
4. 기존 테스트 + 신규 테스트 전체 PASS
5. pyright 에러 0건
