--- name: todo-dev description: TODO CLI 개발 작업(명령·기능 추가, 버그 수정, 테스트 작성, 리뷰, 커밋·push)을 개발자·테스터·리뷰어 에이전트 팀으로 진행하는 오케스트레이터. todo CLI, todo.json, todo/cli.py 관련 구현·수정·테스트 요청에 사용한다. 재실행, 수정, 보완, 이전 결과 개선, 테스트만 다시, 리뷰만 다시 요청에도 사용한다. 단순 질문에는 쓰지 않는다. --- # todo-dev 오케스트레이터 **실행 모드:** 서브에이전트 위임 (결과만 한 번 받으면 되고, 에이전트끼리 대화할 필요가 없다. 파일 3개 규모라 워크플로는 과하다.) ## 팀 | 에이전트 | 모델 | 역할 | | --- | --- | --- | | todo-developer | opus | 구현·수정 | | todo-tester | sonnet | 테스트 작성·실행 | | todo-reviewer | opus | 읽기 전용 교차 검증 | ## 0단계: 맥락 확인 - `_workspace/`가 있고 일부만 고쳐 달라는 요청이면 해당 단계만 다시 실행한다. - 새 요청이면 기존 `_workspace/`를 `_workspace_{타임스탬프}/`로 옮긴다. - 없으면 처음부터 진행한다. ## 절차 1. **구현**: `Agent(subagent_type: "todo-developer")`에 요청 내용과 목표 동작을 넘긴다. 2. **테스트와 리뷰(병렬)**: 구현 보고를 받으면 한 메시지에서 `todo-tester`와 `todo-reviewer`를 동시에 호출한다. 두 에이전트에 변경 파일과 구현 보고를 전달한다. 결과는 `_workspace/02_tester_report.md`, `_workspace/02_reviewer_findings.md`에 저장한다. 3. **수정 루프**: 실패한 테스트나 리뷰 지적이 있으면 todo-developer에게 파일 경로와 함께 넘겨 고친 뒤 2단계를 다시 한다. 최대 2회 반복하고, 그래도 남으면 사용자에게 미해결 항목을 보고한다. 4. **마무리**: `python -m pytest tests -q`가 통과하면 커밋한다. `git push`는 사용자가 허용했으므로 자동으로 한다. force push와 브랜치 삭제는 하지 않고 묻는다. ## 권한 정책 사용자가 에이전트의 `todo.json` 실데이터 삭제와 `git push`를 허용했다. `.claude/settings.json`에 해당 허용 규칙이 있다. 허용되었더라도 테스트는 임시 DB를 기본으로 쓰고, 실데이터를 지웠다면 최종 보고에 적는다. ## 오류 처리 - 에이전트 실패는 1회 재시도하고, 또 실패하면 해당 결과 없이 진행하되 최종 보고에 누락을 적는다. - 권한 거부·인증 만료처럼 재시도해도 같은 실패는 재시도하지 않고 사용자에게 보고한다. - push가 거절되면(원격 변경 등) 원인을 보고한다. 강제로 밀지 않는다. ## 테스트 시나리오 - **정상**: "todo에 delete 명령 추가해줘" → developer가 구현 → tester가 정상·범위 밖 번호 테스트 추가 후 통과, reviewer 지적 없음 → 커밋·push → 변경 요약 보고. - **오류**: reviewer가 "저장 중 예외 시 todo.json이 잘림"을 지적 → developer가 수정 → 2단계 재실행 → 통과. 2회 후에도 남으면 미해결로 보고.