# task-418 보고서: task-timer.py task_id 형식 문제 분석 + 개선방안

**팀**: dev2-team (오딘)
**작업일**: 2026-03-10
**유형**: 리서치/분석 (코드 수정 없음)

## 작업 내용

task-timer.py의 task_id 형식 검증이 엄격하여 팀장들이 `task-timer.py end`를 호출할 때 반복 에러가 발생하는 문제를 분석하고 개선방안을 설계했다.

## 핵심 발견

1. **이중 체계 존재**: dispatch.py가 `task-N.N` (예: task-417.1)을 생성하지만, 프롬프트에는 `task-N` (예: task-417)이 전달되어 형식 불일치 발생
2. **task-timer.py 검증이 과도**: `^task-\d+\.\d+$` regex가 `task-N` 형식을 거부
3. **dispatch.py의 timer start 실패 무시**: 실패해도 warning만 로깅하고 작업 위임 계속 → 팀장이 end 호출 시 동일 에러
4. **중복 데이터 발생**: task-417의 경우 3개 timer 엔트리 + 3개 .done 파일 생성
5. **현재 task-418도 동일 문제**: timer에 `task-418.1`(running), 프롬프트에 `task-418` → 동일 에러 예상

## 통계

- task-timers.json 내 `task-N` 형식: 10건 / `task-N.N` 형식: 352건
- `.N` 접미사는 항상 `.1`이며, 서브태스크 분할은 미사용

## 권장 개선방안: 하이브리드 (방안 D)

1. **task-timer.py regex 완화**: `^task-\d+(\.\d+)?$` — task-N도 허용
2. **fuzzy match end**: `task-N`으로 end 호출 시 `task-N.*` 중 running 항목 자동 매칭
3. **dispatch.py 재시도**: timer start 실패 시 `.0` 붙여서 재시도
4. **멱등성 강화**: 어디서 end가 호출되든 안전하게 동작

상세 분석은 `/home/jay/workspace/memory/research/task-timer-format-analysis.md` 참조.

## 생성/수정 파일

- 생성: `/home/jay/workspace/memory/research/task-timer-format-analysis.md` (분석 문서)
- 생성: `/home/jay/workspace/memory/reports/task-418.md` (본 보고서)

## 테스트 결과

코드 수정 없는 분석 작업이므로 테스트 해당 없음.

## 버그 유무

- 없음 (분석/설계만 수행)

## 비고

- task-418 자체도 동일 문제 영향권: 프롬프트의 task_id=task-418 vs timer의 task-418.1
- 개선 구현 시 dispatch.py, task-timer.py, DIRECT-WORKFLOW.md, completion-handler-instructions.md 수정 필요
