How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-crew:crew-planThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
crew-interview가 생성한 spec.md를 입력으로 받아 **HOW(어떻게 만드는가)**를 결정하고 `contract.md`를 생성한다.
crew-interview가 생성한 spec.md를 입력으로 받아 **HOW(어떻게 만드는가)**를 결정하고 contract.md를 생성한다.
contract.md가 생성되어야 crew-dev가 시작할 수 있다.
에이전트 간 소통은 파일 산출물과 중앙 crew-agent-runner 스킬의 dispatch 계약을 통해서만 이루어진다. 에이전트의 추론 과정은 다른 에이전트에게 전달되지 않는다.
git worktree add를 직접 실행하지 않는다. 워크트리는 EnterWorktree 도구만 사용한다..crew/plans/{task-id}/
brief.md # crew-interview: 유저 원본 요청
spec.md # crew-interview: 인터뷰 완료 후 결정화된 스펙
analysis.md # TechLead: 사전 분석 결과
plan.md # Planner: 구현 계획 (항상 최신)
review.md # PlanEvaluator: 검증 결과 (항상 최신)
plan-{n}.md # 실패한 계획 아카이브
review-{n}.md # 실패한 리뷰 아카이브
contract.md # 최종 계약 (PASS 시만 생성)
.loop_count # 계획 루프 카운터
각 에이전트 단계는 중앙 crew-agent-runner 스킬의 dispatch 절차로 실행한다. 이 문서는 역할, 입력, 기대 산출물, 검증 기준만 정의하며 실행 방식은 runner 계약을 따른다.
crew-plan의 모든 에이전트 실행은 역할이나 step과 무관하게 아래 인터페이스만 사용한다.
오케스트레이터는 techlead, planner, plan-evaluator, 후속 요청 role을 실행할 때마다 이 순서를 반복한다.
{ role, taskId, inputs, instruction, successGate, failureHandling } 형태의 request-file을 작성한다.node "$CLAUDE_PLUGIN_ROOT/scripts/crew-agent-runner.mjs" prepare --role <role> --request-file <request-file> --json을 실행한다.action == dispatch이면 prepare가 반환한 command에 --no-checkpoint를 추가하여 실행하고 AgentResult를 처리한다. crew-plan은 다단계 워크플로우이므로 dispatch 자동 체크포인트를 사용하지 않고 워크플로우 완료 시 한 번만 checkpoint한다.action == agent이면 prepare가 반환한 subagent_type, model, prompt로 runner 계약의 Claude 경로를 실행하고 AgentResult로 정규화한다.이 순서를 생략하고 직접 하위 에이전트를 호출하지 않는다. provider 선택, 런타임 선택, AgentResult 반환 형식, 후속 입력 주입, retry/fallback/escalate 판단은 모두 중앙 runner 계약을 따른다.
role: orchestrator
inputs:
role instructions:
crew/{task-id} Claude 워크트리 안인지 확인한다..claude/worktrees/crew/{task-id} 경로의 워크트리가 존재하는지 확인한다.EnterWorktree(path: ".claude/worktrees/crew/{task-id}")로 기존 워크트리에 진입한다.EnterWorktree(name: "crew/{task-id}")로 새로 생성한다.success gate:
crew/{task-id} Claude 워크트리 안에서 동작 중이다.failure handling:
role: orchestrator
inputs:
.crew/plans/{task-id}/spec.mdoutput:
role instructions:
success gate:
failure handling:
중앙 crew-agent-runner 스킬의 dispatch 절차로 실행한다.
role: techlead
inputs:
.crew/plans/{task-id}/spec.mdoutput:
.crew/plans/{task-id}/analysis.mdrole instructions:
success gate:
failure handling:
role: orchestrator
inputs:
.crew/plans/{task-id}/analysis.mdoutput:
.crew/plans/{task-id}/analysis.md의 ## 테스트 전략 섹션role instructions:
## 테스트 전략 섹션으로 기록한다.success gate:
failure handling:
중앙 crew-agent-runner 스킬의 dispatch 절차로 실행한다.
role: planner
inputs:
.crew/plans/{task-id}/spec.md.crew/plans/{task-id}/analysis.md.crew/plans/{task-id}/review-{n}.mdoutput:
.crew/plans/{task-id}/plan.mdrole instructions:
## 테스트 전략 섹션을 두고 analysis.md의 결정을 반영한다.success gate:
## 테스트 전략, 위험 요소, 검증 시나리오, 실행 검증 섹션이 있다.failure handling:
중앙 crew-agent-runner 스킬의 dispatch 절차로 실행한다.
role: plan-evaluator
inputs:
.crew/plans/{task-id}/spec.md.crew/plans/{task-id}/analysis.md.crew/plans/{task-id}/plan.mdoutput:
.crew/plans/{task-id}/review.mdrole instructions:
success gate:
failure handling:
role: orchestrator
inputs:
.crew/plans/{task-id}/spec.md.crew/plans/{task-id}/analysis.md.crew/plans/{task-id}/plan.md.crew/plans/{task-id}/review.mdoutput:
.crew/plans/{task-id}/contract.mdrole instructions:
crew/{task-id})으로 관리되므로 contract.md에 포함하지 않는다..loop_count가 있으면 정리한다.success gate:
failure handling:
완료 반환:
{
"status": "COMPLETE",
"task_id": "{task-id}",
"contract_path": ".crew/plans/{task-id}/contract.md"
}
role: orchestrator
inputs:
.crew/plans/{task-id}/plan.md.crew/plans/{task-id}/review.md.crew/plans/{task-id}/.loop_countoutput:
.crew/plans/{task-id}/plan-{n}.md, .crew/plans/{task-id}/review-{n}.md.crew/plans/{task-id}/.loop_countrole instructions:
success gate:
failure handling:
| 이벤트 | 동작 |
|---|---|
| 첫 번째 진입 | 파일 없음 (카운터 = 0) |
| 첫 번째 FAIL 처리 후 | 파일 생성, 내용: 1 |
| n번째 FAIL 처리 후 | 파일 갱신, 내용: n |
| PASS | 파일 삭제 |
| 에스컬레이션 | 파일 삭제 |
Planner + PlanEvaluator 사이클은 최대 5회 (초기 1회 + retry 최대 4회).
중앙 crew-agent-runner 스킬의 dispatch 절차를 단일 실행 경로로 사용한다. crew-plan은 실행 방식, 런타임 선택, 후속 요청 처리, 사용자 질문 처리의 세부 절차를 정의하지 않는다.
| 단계 | role | 입력 | 차단할 입력 | 기대 산출물 |
|---|---|---|---|---|
| Step 2 | techlead | spec.md | — | analysis.md |
| Step 3 | planner | spec.md + analysis.md | brief.md | plan.md |
| Step 3 retry | planner | spec.md + analysis.md + review-{n}.md | brief.md | plan.md |
| Step 4 | plan-evaluator | spec.md + analysis.md + plan.md | brief.md | review.md |
후속 탐색, 외부 조사, 사용자 질문, 재개 흐름은 runner가 정의한 상태 처리와 followup 계약을 따른다. 각 역할은 complete 상태의 artifact로 산출물 본문을 반환해야 한다.
오케스트레이터가 COMPLETE 또는 ESCALATE를 반환하기 직전에, 워크플로우 중 생성된 모든 산출물(analysis.md, plan.md, review.md, contract.md, request-file 등)을 checkpoint 커밋한다.
node "$CLAUDE_PLUGIN_ROOT/scripts/crew-agent-runner.mjs" checkpoint --message "chore(crew-plan): {task-id} complete"
COMPLETE:
{
"status": "COMPLETE",
"task_id": "{task-id}",
"contract_path": ".crew/plans/{task-id}/contract.md"
}
ESCALATE:
{
"status": "ESCALATE",
"phase": "spec-gate | techlead-fail | planner-fail | evaluator-spec-defect | loop-overflow",
"reason": "자유형 텍스트"
}
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub jjlabsio/claude-crew --plugin claude-crew