원클릭으로
design
// Start interview-driven planning with Prometheus. Asks clarifying questions before generating implementation plan.
// Start interview-driven planning with Prometheus. Asks clarifying questions before generating implementation plan.
| name | design |
| description | Start interview-driven planning with Prometheus. Asks clarifying questions before generating implementation plan. |
| metadata | {"short-description":"Start interview-driven planning with Prometheus"} |
/design ...Use $design ....claude/skills/design (symlink)exec_command + rg/find` for repository reads and searches.spawn_agent, send_input, wait, and close_agent for delegation patterns.request_user_input only for material decisions that block execution.web.search_query, web.open) for up-to-date external docs.Identity: Thin team lead for the Design Phase using Agent Teams Core Principle: Spawn Prometheus in plan mode. Let Prometheus research, interview, and draft the plan. You handle approval, persistence, and cleanup.
You coordinate the design workflow — you do NOT research, interview, or write plans yourself. Prometheus does that work in plan mode (read-only research, structured approval).
$ARGUMENTS
You MUST follow these steps in order. Do NOT skip team creation.
Determine the design mode from $ARGUMENTS:
--quick flag, OR when the request is short and specific enough for streamlined treatment--consensus flag. Extends full mode with dual review (leviathan + critic) and feedback loopPass the detected mode to Prometheus in its prompt so it adjusts its depth accordingly.
See .claude/lib/team-lifecycle.md § Common Errors.
Do this FIRST. You are the team lead.
spawn_agent(
team_name: "design-{topic}",
description: "Planning {topic}"
)
Replace {topic} with a short slug derived from the design request.
apply_patch or exec_command (write) a handoff file to .maestro/handoff/{topic}.json so sessions can recover:
{
"topic": "{topic}",
"status": "designing",
"started": "{ISO timestamp}",
"plan_destination": ".maestro/plans/{topic}.md"
}
Create the `.maestro/handoff/ directory if it doesn't exist.
Follow .claude/lib/team-lifecycle.md § Loading Priority Context to load wisdom files and notepad items. Inject any findings into the Prometheus prompt.
Follow .claude/lib/skill-registry.md to discover skills from project, global, and plugin locations.
Build a skill summary for Prometheus:
## Available Skills
- {name}: {description}
...
If no skills found: Omit the ## Available Skills section entirely (graceful degradation).
Spawn explore and oracle to gather codebase context before Prometheus starts. Explore sends findings to oracle so oracle's analysis is grounded in real codebase data. Their combined findings are passed into the Prometheus prompt.
Before spawning, check if the design request is complex enough to warrant a deep investigation. Count the number of these signals present in the request: "migration", "rewrite", "architecture", "integration", "redesign", "performance", "scalab". If the request contains 3+ signals OR exceeds 300 characters, use the deep investigation protocol (below) instead of the standard explore+oracle prompts.
Standard request (< 3 signals AND <= 300 chars): Use the standard explore and oracle prompts below.
Complex request (>= 3 signals OR > 300 chars): Replace the explore prompt with the /analyze investigation protocol and the oracle prompt with the /analyze structured output format:
Fallback: If complexity detection fires but the request is simple, the deeper prompts produce more thorough results — no harm.
Explore (always spawn — gathers codebase context):
exec_command (read-only) the prompt from .agents/skills/design/reference/explore-prompt.md and use it as the spawn_agent prompt. Replace {topic} and {original $ARGUMENTS} with actual values.
Oracle (full/consensus mode only — strategic pre-analysis, receives explore's findings):
exec_command (read-only) the prompt from .agents/skills/design/reference/oracle-prompt.md and use it as the spawn_agent prompt. Replace {topic} and {original $ARGUMENTS} with actual values.
Wait for explore (and oracle in full/consensus mode) to send their findings via send_input. These messages arrive automatically.
Once received, compile the research into a context block for Prometheus:
## Codebase Research (from explore)
{explore's findings}
## Strategic Analysis (from oracle)
{oracle's analysis — omit this section in quick mode}
Then persist the research to a log file so it survives context compression and is available to leviathan during review:
apply_patch or exec_command (write)(
file_path: ".maestro/drafts/{topic}-research.md",
content: "# Research Log: {topic}\n\n## Initial Research\n\n### Codebase Findings (explore)\n{explore's findings}\n\n### Strategic Analysis (oracle)\n{oracle's analysis — omit this section in quick mode}\n\n## Follow-up Research\n"
)
Prometheus receives both the inline context block (for immediate use without a exec_command (read-only) call) AND the log path (for appending follow-up research during the interview).
Spawn Prometheus as a teammate in plan mode. Include the research context gathered by explore and oracle so Prometheus has full codebase awareness from the start.
exec_command (read-only) the prompt template from .agents/skills/design/reference/prometheus-prompt.md. Replace all standard placeholders ({topic}, {original $ARGUMENTS}, research placeholders) with actual values. Then substitute the mode-specific placeholders using the values from the ## Mode-Specific Blocks appendix:
{mode_line} — mode description (full vs quick){mode_context} — follow-up research instructions and REVISE handling{mode_teammates} — available teammates (explore + oracle in full, explore only in quick)After spawning Prometheus, enter a relay loop. Prometheus sends interview questions to you via send_input — you relay them to the user via request_user_input and send the answers back.
Loop until Prometheus sends PLAN READY:
Wait for a message from Prometheus (arrives automatically via send_input)
Parse the message content:
INTERVIEW QUESTION → relay to user (see below)PLAN READY → exit loop, continue to Step 5Relaying an interview question:
Parse the Question: and Options: from the message content, then call:
request_user_input(
questions: [{
question: "{extracted question text}",
header: "Design",
options: [
{ label: "{option 1 label}", description: "{option 1 description}" },
{ label: "{option 2 label}", description: "{option 2 description}" },
{ label: "{option 3 label}", description: "{option 3 description}" }
],
multiSelect: false
}]
)
Send the user's answer back to Prometheus:
send_input(
type: "message",
recipient: "prometheus",
summary: "Interview answer",
content: "INTERVIEW ANSWER\n{user's response}"
)
Return to step 1 (wait for next message from Prometheus)
When the Plan agent finishes drafting, it sends a PLAN READY message via send_input. The message content includes the full plan markdown (not just a file path). The message arrives automatically — wait for it.
Quick mode: Skip directly to Step 8 (Present Plan to User). Quick mode trusts Prometheus.
Full mode: Use the plan content from Prometheus's PLAN READY message (everything after the first line), then read the prompt from .agents/skills/design/reference/leviathan-prompt.md and use it as the spawn_agent prompt. Replace {topic} and include the plan content in the prompt.
Wait for leviathan's verdict via send_input.
On PASS → Continue to Step 8 (Present Plan to User).
On REVISE → Send feedback to Prometheus:
send_input(
type: "message",
recipient: "prometheus",
summary: "Plan revision needed",
content: "REVISE\nLeviathan review found issues:\n{leviathan's feedback}"
)
Then wait for the next PLAN READY message from Prometheus and repeat from Step 5.
Max 2 review loops. After 2 REVISE cycles, proceed to Step 8 regardless — present the plan to the user with leviathan's remaining concerns noted.
Quick mode or Full mode: Skip to Step 8.
Consensus mode (--consensus): After leviathan approves (or after Step 6 for first pass), read the prompt from .agents/skills/design/reference/critic-prompt.md and spawn critic-reviewer. Replace {topic} and include the plan content inline.
Wait for the critic's verdict:
Both leviathan and critic APPROVE -> Proceed to Step 8.
Either returns REVISE -> Send feedback to Prometheus with combined feedback from both reviewers:
send_input(
type: "message",
recipient: "prometheus",
summary: "Consensus revision needed",
content: "REVISE\nConsensus review found issues:\n{leviathan feedback}\n{critic feedback}"
)
Then wait for the next PLAN READY message and repeat from Step 5.
Max 3 consensus loops. After 3 rounds, proceed to Step 8 with the best version and note unresolved issues from both reviewers.
exec_command (read-only) the plan summary display protocol from .agents/skills/design/reference/plan-summary.md and follow it to present the plan to the user.
Send the approval to Prometheus:
send_input(
type: "message",
recipient: "prometheus",
summary: "Plan approved",
content: "APPROVE"
)
exec_command (read-only) the plan content from Prometheus's PLAN READY message (everything after the first line PLAN READY) and write it to the final destination:
apply_patch or exec_command (write)(file_path: ".maestro/plans/{topic}.md", content: "{plan content from PLAN READY message}")
After saving the plan, auto-append key design decisions to .maestro/notepad.md under ## Working Memory:
## Notes section.maestro/notepad.md:
## Working Memory
- [{ISO date}] [design:{topic}] {decision}
Create .maestro/notepad.md if it doesn't exist. Append under existing ## Working Memory if present.
Update the handoff file status to "complete":
{
"topic": "{topic}",
"status": "complete",
"started": "{original timestamp}",
"completed": "{ISO timestamp}",
"plan_destination": ".maestro/plans/{topic}.md"
}
Follow .claude/lib/team-lifecycle.md § Team Cleanup Pattern. Shutdown all teammates (prometheus, explore, oracle, leviathan, critic-reviewer), then close_agent. Oracle, leviathan, and critic-reviewer may not exist depending on mode — ignore shutdown errors for missing teammates.
Tell the user:
Plan saved to: .maestro/plans/{topic}.md
To begin execution:
Option A (this session): `/work` (Codex: `$work`)
Option B (fresh session): claude "`/work` (Codex: `$work`)"
The `/work` (Codex: `$work`) command will auto-detect this plan and suggest it for execution.
| Teammate | subagent_type | Model | Role |
|---|---|---|---|
prometheus | Plan | sonnet | Interview-driven planner — spawned in plan mode. Sends interview questions to orchestrator via send_input for relay to user. Signals completion via send_input (not ExitPlanMode). |
leviathan | leviathan | sonnet | Deep plan reviewer — validates structural completeness and strategic coherence before user sees the plan. Full mode only. |
explore | Explore | haiku | Codebase search — find patterns, architecture, conventions. Spawned before prometheus so it's ready for research requests. |
oracle | oracle | sonnet | Strategic advisor — evaluate tradeoffs, architecture decisions. Spawned before prometheus so it's ready for research requests. |
Peer-to-peer communication: All agents can message each other directly via send_input:
INTERVIEW QUESTION messages for user relay; sends PLAN READY when done| Anti-Pattern | Do This Instead |
|---|---|
| Researching codebase yourself | Explore and oracle do upfront research; Prometheus messages them for follow-ups |
| Interviewing the user yourself | Prometheus sends questions via send_input; you relay them to the user via request_user_input and return answers |
| Writing the plan yourself | Prometheus drafts, you just save the approved version |
| Skipping team creation | Always spawn_agent(team_name, description) first |
| Forgetting handoff file | Always write `.maestro/handoff/ before spawning agents |
| Forgetting to cleanup team | Always shutdown + cleanup at end |
| Auto-approving without user input | Always present plan to user via request_user_input |
| Skipping leviathan review in full mode | Always spawn leviathan before presenting to user (unless quick mode) |
| Skipping upfront research | Always spawn explore (and oracle in full mode) before prometheus |
| Agents not knowing their peers | Always include ## Your Peers section in spawn prompts so agents know who to message |
UI/UX design intelligence with searchable database
Generate comprehensive implementation plans through systematic discovery, synthesis, verification, and decomposition into beads. Use when asked to plan a feature, create a roadmap, design an implementation approach, or decompose work into trackable issues. Do NOT use for simple one-step tasks, quick fixes, or when the user just wants to execute an existing plan — use the work skill instead.
Execute a plan or direct task with worker delegation and verification.
Deep investigation mode. Gather context, analyze, synthesize recommendations without making code changes.
Fetch up-to-date library documentation via Context7 MCP. Use when working with external libraries, APIs, or frameworks.
Diagnose and fix Maestro installation issues