# task-406.1: 완료 시스템 통합 검토 + 미해결 버그 4건 수정

## 배경
오늘 완료 통보 시스템에서 여러 버그가 발견되어 순차적으로 수정이 진행됐다.
일부는 수정 완료됐고, 일부는 미해결 상태다.
**기존 수정 결과물을 먼저 검토하고, 로직 충돌 없이 나머지를 수정하라.**

---

## Phase 1: 기존 수정 결과물 통합 검토 (필수 선행)

아래 3건의 수정이 이미 반영되어 있다. 코드를 직접 읽고 현재 상태를 파악한 후 작업을 시작하라.

### 1-1. task-401.1 (1팀 완료)
- **보고서**: `/home/jay/workspace/memory/reports/task-401.1.md`
- **변경 내용**: `worktree_manager.py`에 `cmd_cleanup()` 추가 — 머지 완료된 워크트리만 자동 정리
- **확인 파일**: `/home/jay/workspace/scripts/worktree_manager.py`

### 1-2. task-403.1 (1팀 완료)
- **보고서**: `/home/jay/workspace/memory/reports/task-403.1.md`
- **변경 내용 3가지**:
  1. `notify-completion.py`의 `build_prompt()` → ~90자로 축소, `completion-handler-instructions.md` 파일 참조 방식
  2. `auto_merge.py`에 `_team_id_to_short()`, `_extract_team_short_from_report()` 추가
  3. `auto_merge.py` 경합 해소: merge_needed=False → .done 유지, merge_needed=True → 머지 후 `notify_anu()` 직접 통보
- **확인 파일들**:
  - `/home/jay/workspace/scripts/notify-completion.py`
  - `/home/jay/workspace/scripts/auto_merge.py`
  - `/home/jay/workspace/scripts/completion-handler-instructions.md`
  - `/home/jay/workspace/scripts/tests/test_notify_completion.py`
  - `/home/jay/workspace/tests/test_auto_merge.py`

### 1-3. 아누 직접 수정
- **파일**: `/home/jay/workspace/scripts/completion-handler-instructions.md`
- **변경 내용**:
  1. 2번 섹션: "보고서 읽기 및 보고" → "보고서 읽기 및 **제이회장님께 텔레그램으로** 핵심 요약 보고" + "텍스트로 출력하라" 명시
  2. 4번 섹션 추가: `task-timer.py end {task_id}` 실행하여 대시보드 종료 처리
  3. 기존 4번(워크트리 정리) → 5번으로 밀림

---

## Phase 2: 미해결 버그 4건 수정

### 버그 1: task_id 형식 검증 없음
- **현상**: `task-1.1` 같은 비정상 task_id가 task-timer에 등록되어 대시보드에 유령 작업 표시
- **원인**: `task-timer.py`에 task_id 형식 검증이 없음. 아무 문자열이나 들어감
- **수정 대상**: `/home/jay/workspace/memory/task-timer.py`
- **요구사항**:
  - task_id 형식 검증 추가: `task-{숫자}.{숫자}` 패턴 (예: task-401.1, task-12.3)
  - 형식 불일치 시 경고 로그 출력 + 거부 (exit code != 0)
  - 기존 정상 task_id는 모두 통과해야 함

### 버그 2: team_id 형식 검증 없음
- **현상**: `odin-2` 같은 비표준 team_id가 task-timer에 등록되어 대시보드에 매핑 안 됨 (1팀/2팀/3팀이 아닌 raw 값 표시)
- **원인**: `task-timer.py`에 team_id 검증이 없음
- **수정 대상**: `/home/jay/workspace/memory/task-timer.py`
- **요구사항**:
  - 허용 team_id: `dev1-team`, `dev2-team`, `dev3-team`, `anu-direct`
  - 불일치 시 경고 로그 출력 + 거부
  - dispatch.py에서도 team_id 검증 추가 검토

### 버그 3: 3팀 GLM task_id 파싱 오류
- **현상**: 3팀(라+GLM)에 위임 시 task_id가 깨져서 `task-1.1` 같은 잘못된 ID 생성
- **수정 대상**: `/home/jay/workspace/teams/dev3/GLM-WORKFLOW.md`
- **요구사항**:
  - GLM-WORKFLOW.md에서 task_id 전달 경로 점검
  - task_id가 플레이스홀더 치환 시 정확히 전달되는지 확인
  - `team_prompts.py`의 `_build_glm_prompt()` 함수도 확인

### 버그 4: cron 미감지 원인 조사
- **현상**: 1팀이 task-401.1 완료 후 notify-completion.py로 cron 통보를 보냈으나, 아누가 대화 중에 감지하지 못함
- **이전에는**: 대화 중에도 cron이 오면 인터럽트되어 처리했었음
- **조사 대상**:
  1. notify-completion.py가 실제로 호출됐는지 (로그 확인)
  2. cokacdir --cron이 정상 등록됐는지
  3. auto_merge.py가 먼저 .done.clear를 생성해서 notify cron이 스킵됐는지 (경합)
  4. cokacdir --cron-list로 스케줄 확인
  5. `/home/jay/workspace/logs/` 디렉토리의 관련 로그
  6. `/home/jay/workspace/memory/daily/2026-03-07.md`에서 task-401.1 관련 기록
- **산출물**: 타임라인 기반 원인 규명 + 완료 통보 파이프라인 전체 흐름도

---

## 에이전트 미팅 필수
- **참석자**: 오딘(팀장), 토르(백엔드), 헤임달(테스터)
- **안건**: Phase 1 검토 결과 + Phase 2 수정 방향이 기존 코드와 충돌하지 않는지 확인
- **미팅 기록**: `memory/meetings/2026-03-07-completion-system-audit.md`

## 테스트
- 기존 모든 테스트 통과 확인 (특히 test_notify_completion.py, test_auto_merge.py, test_worktree_manager.py)
- 신규 테스트 추가:
  - task_id 검증: 정상 패턴 통과, 비정상 패턴(`task-1.1` 등 잘못된 형식, `odin-2` 등) 거부
  - team_id 검증: 허용 목록만 통과
- pyright 에러 0건

## 산출물
- 미팅 기록: `memory/meetings/2026-03-07-completion-system-audit.md`
- 완료 보고서: `memory/reports/task-406.1.md`
- cron 미감지 타임라인 분석 (보고서 내 포함)
- 수정된 코드 파일

## 완료 조건
1. Phase 1 기존 수정물과 충돌 없음 확인
2. task_id / team_id 형식 검증 동작
3. GLM task_id 전달 경로 점검 완료
4. cron 미감지 원인 규명 + 흐름도
5. 전체 테스트 PASS + pyright 0 에러
