Prompt file imported from JNU-econovation/auth-common (
.claude/commands/plan.md). Fill in{{arguments}},{{last}}before use. Copyright stays with the author.
Plan — 기능 개발 4종 plan 문서 생성
{{arguments}}로 받은 기능 설명을 분해하여, todo 1개 + 설계 plan 3개를 .claude/plans/ 아래에 생성한다. 각 문서는 전용 agent가 작성한다.
진행 순서
0. 입력 처리
{{arguments}}가 비어 있으면 사용자에게 어떤 기능을 계획할지 물어본다{{arguments}}에서 영문 kebab-case 작업명을 추출한다 (예: "passport 캐싱 기능 추가" →passport-cache)- 추출이 모호하면 사용자에게 한 번 확인한다
0.5. 명확화 게이트
{{arguments}}가 후속 단계(todo 분해, 3개 설계)에 충분히 명확한지 메인이 직접 평가한다. 모호하면 사용자에게 묻고 다듬은 뒤에 후속 단계로 넘긴다.
평가 기준 — 다음 중 하나라도 답할 수 없으면 모호한 것으로 본다:
- 결과물 — 무엇을 만드는가? (기능, 화면, 엔드포인트, 라이브러리 등)
- 사용자 / 소비자 — 누가 쓰는가?
- 트리거 / 입력 — 언제, 어떤 입력으로 동작하는가?
- 결과 / 출력 — 어떤 결과를 반환하는가? (성공/실패 모두)
- 기존 시스템과의 관계 — 새 모듈인가, 기존 모듈에 추가인가?
- 비기능 제약 — 인증/권한, 성능, 호환성, 마이그레이션 등에 단서가 있는가?
평가 결과 처리:
- 모두 명확하다면 → 다음 단계로
- 모호한 항목이 있다면 →
AskUserQuestion으로 사용자에게 질문- 한 번에 너무 많이 묻지 않는다 (최대 3~4개)
- 답변을 통합한 후 다시 평가
- 필요하면 추가 질문 1회 더 (총 1~2 사이클로 끝내는 것이 목표)
확정된 요구사항 — 사용자 답변을 반영한 명확한 기능 설명을 메인 컨텍스트에 정리해 둔다. 이후 모든 agent 호출 시 {{arguments}} 원본 대신 이 확정된 요구사항을 전달한다.
주의 — 명확화는 "구현 가능한 수준의 명확함"을 확보하기 위한 것이다. UI 색상, 변수명, 마이크로 디자인 같은 디테일까지 묻지 않는다. 그건 후속 단계에서 자연스럽게 결정된다.
1. 디렉터리 생성 (순번 접두사 부여) 및 충돌 확인
plan 디렉터리는 생성 순서가 한눈에 보이도록 2자리 순번 접두사를 붙인다: {NN}-{작업명} (예: 10-passport-cache).
# 기존 최대 순번 +1 (2자리 zero-pad, 없으면 01). 10# 으로 8진수 오해 방지.
last=$(ls -d .claude/plans/[0-9]*-*/ 2>/dev/null | sed -E 's#.*/([0-9]+)-.*#\1#' | sort -n | tail -1)
next=$(printf "%02d" $((10#{{last}} + 1)))
echo "다음 순번: $next → 디렉터리: .claude/plans/$next-[작업명]"
ls -d .claude/plans/*-[작업명]/ 2>/dev/null # 같은 작업명 중복 확인 (순번 무관)
- 같은
작업명의 디렉터리가 이미 있고 안에 plan 문서가 있으면 → 사용자에게 덮어쓸지/다른 작업명을 쓸지 물어본다 - 없으면 →
mkdir -p .claude/plans/$next-[작업명]으로 생성한다 (이후 agent들이 그 안에 파일을 쓴다)
이후 단계의 모든
.claude/plans/[작업명]/경로는 이 순번 접두사가 붙은 디렉터리(.claude/plans/{NN}-{작업명}/)를 가리킨다. agent에 경로를 전달할 때도 순번이 포함된 전체 디렉터리명을 넘긴다.
2. todo-planner agent 호출 (단독 실행)
먼저 todo-planner agent를 호출한다. 이 결과가 후속 designer들의 입력이 된다.
전달할 컨텍스트:
- 작업명
- 확정된 요구사항 (0.5 단계의 명확화 게이트를 거친 설명)
기대 결과:
.claude/plans/[작업명]-todo.md작성- 카테고리별 todo 개수 보고
- 명확화 게이트를 거쳤음에도 agent가 추가 모호함을 발견해 물어본 항목이 있다면 사용자에게 전달 후 답변을 다시 agent에 전달 (안전망)
3. 3개 designer agent 병렬 호출
todo 문서가 작성된 후, 다음 3개 agent를 한 메시지에서 병렬로 호출한다:
api-designerimplementation-designerdb-designer
각 agent에 전달할 컨텍스트 (동일):
- 작업명
- todo 문서 경로 (
.claude/plans/[작업명]/todo.md) - 확정된 요구사항 (0.5 단계의 명확화 게이트를 거친 설명)
기대 결과 (각 agent별):
- 자기 담당 plan 문서 작성
- 작성한 파일 경로, 핵심 통계, 미해결 사항 보고
4. 사용자에게 보고
## Plan 문서 생성 완료
작업명: {작업명}
위치: .claude/plans/
생성 파일 (.claude/plans/{작업명}/ 아래):
- todo.md — N개 todo (API X / 구현 Y / DB Z / 기타 W)
- api-design-plan.md — N개 엔드포인트
- implementation-plan.md — N개 모듈, M개 클래스 (신규 A / 변경 B)
- db-design-plan.md — 신규 N개 / 변경 M개 테이블
미해결 사항 (있다면):
- {agent가 보고한 미해결 사항}
다음 단계:
- 문서 검토 후 수정이 필요하면 직접 편집하거나 다시 /plan 실행
- 검토 완료 후 /develop 으로 구현 시작 (예정)
주의
- todo 문서는 반드시 다른 3개보다 먼저 작성되어야 한다 (병렬 금지)
- 3개 designer는 반드시 한 메시지에서 병렬 호출한다 (순차 금지)
- agent가 모호함을 물어보면 임의로 답하지 말고 사용자에게 전달한다
- 각 agent는 자기 plan 파일만 Write한다 — 메인 컨텍스트는 오케스트레이션과 보고만 담당
