# task-1631.1 완료 보고서: dispatch.py PRD 자동 분해 (F10)

**S**: dispatch.py는 팀장에게 작업을 위임하는 핵심 디스패처이나, PRD에서 Phase별 task 파일을 수동으로 작성해야 했다.

**C**: PRD 문서에서 Phase/Sprint 정보를 매번 수작업으로 task 파일에 옮기는 과정이 시간 소요가 크고 오류 가능성이 있었다.

**Q**: PRD 파일을 자동 분해하여 Phase별 task 파일을 자동 생성할 수 있는가?

**A**: dispatch.py에 `--prd` 인자를 추가하여 정규식 파싱(우선) + claude CLI 폴백으로 PRD 자동 분해를 구현했다. fireauto PRD(5개 Phase)와 taste-skill PRD(4개 Phase) 모두 정규식만으로 100% 파싱 성공. 자동 위임 없이 task 파일 생성만 수행한다.

## 구현 내용

### 추가 함수 (3개)
- `_parse_prd_regex(prd_content)`: 정규식으로 `### Sprint/Phase N (duration) — title` 헤더 추출, DoD/Features 파싱
- `_parse_prd_claude(prd_path, prd_content)`: claude CLI (`/home/jay/.local/bin/claude -p`) 폴백, cwd=/tmp, timeout=120s
- `handle_prd(prd_path, team_id)`: PRD 읽기 → 파싱 → `memory/tasks/dispatch-{prd_stem}-phase{N}.md` 파일 생성

### argparse 변경
- `--prd` 인자 추가 (PRD 파일 경로)
- `--prd` 사용 시 `--team` 필수, `--task`/`--task-file` 불필요
- 기존 명령어 하위 호환 유지

### 사용법
```bash
python3 dispatch.py --prd memory/specs/prd-fireauto-integration.md --team dev1-team
```

## 테스트 결과

- 정규식 파싱 (fireauto PRD): 5개 Phase 추출 성공 (Sprint 0 + Phase 1-4)
- 정규식 파싱 (taste-skill PRD): 4개 Phase 추출 성공 (Phase 1-4)
- 통합 테스트: 9개 task 파일 정상 생성 (YAML frontmatter + PRD 참조 + 본문 + DoD)
- 중복 실행: 기존 파일 스킵 (created=0, skipped=5)
- 에러 케이스: 존재하지 않는 PRD 파일 → 적절한 에러 JSON 반환
- 에러 케이스: --team 누락 → parser.error 정상 동작
- 자동 위임 미발생: cokacdir --cron 호출 없음 확인

## 발견 이슈 및 해결

### 자체 해결 (0건)
신규 기능 추가이며 기존 코드 변경이 없어 이슈 없음.

### 범위 외 미해결 (0건)
없음.

## 수정 파일
- `/home/jay/workspace/dispatch.py` (3개 함수 추가 + argparse 인자 + main 분기)

## 모델 사용 기록
- 팀원: 스바로그(백엔드) / 작업 내용: dispatch.py PRD 분해 기능 구현 / 사용 모델: sonnet / 정당성: -

## QC 검증
(아래 qc_verify.py 결과 첨부)

## 세션 통계
- 총 도구 호출: 9회

### 수정 파일 목록
- /home/jay/workspace/dispatch.py: 3회 (Edit)
- bash_cmd: 3회 (Bash)
- /home/jay/workspace/memory/reports/task-1631.1.md: 1회 (Write)
- /home/jay/workspace/memory/tasks/task-1631.1.md: 1회 (dispatch)
- /home/jay/workspace/tests/test_dispatch.py: 1회 (Edit)

### 도구 사용 현황
- Edit: 4회
- Bash: 3회
- Write: 1회
- dispatch: 1회

