Create implementation plans using native Plan mode with multi-agent orchestration
Generates comprehensive implementation plans using parallel research agents and iterative refinement.
/plugin marketplace add settlemint/agent-marketplace/plugin install crew@settlemint[feature description]Create feature branch. Enter Plan mode. Research with parallel agents. Write draft plan with open_questions. Exit plan mode ONLY when complete. Output: .claude/plans/<slug>.yaml
const slug = slugify(feature); // kebab-case, max 30 chars
Skill({ skill: "crew:git:branch:new", args: `${slug} --type feat` });
EnterPlanMode();
// Icons: ○ ready, ● blocked, ✓ complete
TodoWrite([
{
content: "#1 ○ Codebase analysis",
status: "pending",
activeForm: "Analyzing codebase",
},
{
content: "#2 ○ Docs research",
status: "pending",
activeForm: "Researching docs",
},
{
content: "#3 ○ Architecture design",
status: "pending",
activeForm: "Designing architecture",
},
{
content: "#4 ○ Quality analysis",
status: "pending",
activeForm: "Analyzing quality",
},
{
content: "#5 ● Draft plan ⚠ blocked by #1-4",
status: "pending",
activeForm: "Writing draft",
},
{
content: "#6 ● Review ⚠ blocked by #5",
status: "pending",
activeForm: "Reviewing",
},
]);
// All 4 research agents in parallel using haiku (fast information gathering)
// Per n-skills:orchestration - haiku for parallel research, sonnet for implementation
Task({
subagent_type: "crew:design:codebase-analyst",
prompt: `Feature: ${feature}. Find: key files, patterns, anti-patterns. List open_questions: ambiguities, unclear integration points.`,
description: "codebase",
model: "haiku",
run_in_background: true,
});
Task({
subagent_type: "crew:design:docs-researcher",
prompt: `Feature: ${feature}. Find: best practices, examples, gotchas. List open_questions: multiple valid approaches needing decision.`,
description: "docs",
model: "haiku",
run_in_background: true,
});
Task({
subagent_type: "crew:design:architecture-analyst",
prompt: `Feature: ${feature}. Design: components, interfaces, data flow. List open_questions: trade-offs needing user input.`,
description: "architecture",
model: "haiku",
run_in_background: true,
});
Task({
subagent_type: "crew:design:quality-analyst",
prompt: `Feature: ${feature}. Analyze: performance, security (STRIDE), UX. List open_questions: unspecified requirements, scale unknowns.`,
description: "quality",
model: "haiku",
run_in_background: true,
});
for (const agent of agents) {
research[agent.type] = TaskOutput({ task_id: agent.id, block: true });
}
// TodoWrite: #1-4 ✓, #5 in_progress
Read({
file_path: `${CLAUDE_PLUGIN_ROOT}/skills/todo-tracking/templates/plan-template-llm.yaml`,
});
Write({ file_path: `.claude/plans/${slug}.yaml`, content: populatedTemplate });
// TodoWrite: #1-5 ✓
open_questions: Generate comprehensive questions covering:
Mark blocking: true for questions that must be resolved before implementation.
// Reviews plan, adds open_questions, updates file - still in plan mode
Skill({ skill: "crew:plan:review", args: `.claude/plans/${slug}.yaml` });
// Reload plan to check for open_questions
const plan = Read({ file_path: `.claude/plans/${slug}.yaml` });
// TodoWrite: #1-5 ✓, #6 in_progress
// If open questions exist, refine is required (not optional)
// Stay in plan mode throughout refinement
while (plan.open_questions?.length > 0) {
// Resolve current questions
Skill({ skill: "crew:plan:refine", args: `.claude/plans/${slug}.yaml` });
// Review may find new questions
Skill({ skill: "crew:plan:review", args: `.claude/plans/${slug}.yaml` });
// Reload to check if still questions
plan = Read({ file_path: `.claude/plans/${slug}.yaml` });
}
// TodoWrite: #1-6 ✓
// ONLY exit after all refinement complete - this prompts user for approval
ExitPlanMode();
// After user approves plan, immediately start work - no additional prompt needed
Skill({ skill: "crew:work", args: slug });
</workflow>
<constraints>
.yaml file at .claude/plans/<slug>.yaml<success_criteria>
Orchestration:
Workflow:
Output:
.claude/plans/<slug>.yamlid, priority, status, mvpgiven/when/then</success_criteria>