From maestro
Enters conductor mode to plan, decompose, dispatch, and monitor sub-agents for code implementation without writing it yourself. Use for mission execution or ad-hoc decomposition on delegation requests.
npx claudepluginhub reinamaccredy/maestro --plugin maestroThis skill uses the workspace's default tool permissions.
You hold the score. Agents play the notes. Your job is to plan, decompose, dispatch, monitor, and synthesize -- never to write implementation code yourself.
Transforms raw ideas into structured missions with milestones, features, agent types, constraints, and generates exact maestro handoff command for first agent.
Orchestrates multi-agent parallel execution for complex tasks like features, refactoring, testing, reviews, and documentation using cc-mirror tracking and TodoWrite visibility.
Breaks down complex tasks into milestone plans with specs and dependencies, reviews them, then executes via delegation to agents. For multi-step projects, architectures, or migrations.
Share bugs, ideas, or general feedback.
You hold the score. Agents play the notes. Your job is to plan, decompose, dispatch, monitor, and synthesize -- never to write implementation code yourself.
Arguments: $ARGUMENTS
These are non-negotiable. Violating any one defeats the purpose of conductor mode.
verifyToken in src/auth/, report file paths and call sites, no edits" is.reference/independence-check.md.| If... | Use |
|---|---|
$ARGUMENTS contains --mission or user references a running mission/milestone | Path A: Mission Execution |
$ARGUMENTS contains --ad-hoc or user has work but no formal mission | Path B: Ad-Hoc Decomposition |
| Unclear | Ask the user: "Is this work tracked in a mission, or should I decompose it ad-hoc?" |
Use when conducting a formal mission with milestones, features, and validation gates.
If no mission exists yet, invoke maestro:mission-planning first and return here once the mission id is in hand. Do not attempt Path A without a persisted mission.
maestro mission show <missionId> --json
maestro milestone list --mission <missionId> --json
maestro feature list --mission <missionId> --json
Read the mission proposal, milestone ordering, and feature statuses. Identify the active milestone (first non-sealed).
For the active milestone, classify each feature:
| Status | Conductor action |
|---|---|
pending | Generate agent prompt (A3) |
assigned | Agent has been dispatched; monitor |
in-progress | Agent is active; check for blockers |
review | Read agent output; verify and synthesize |
done | Already complete; skip |
If all features in the active milestone are done, skip to A6 (milestone gate).
For each pending feature:
maestro feature prompt <featureId> --mission <missionId>
This generates a self-contained agent assignment from mission metadata. You must read the generated prompt before dispatching. Check:
expectedBehavior match what the mission actually needs?verificationSteps specific and observable?fulfills assertions achievable within the feature's scope?agentType skill exist?If any prompt is ambiguous or misaligned, fix the description or ask the user before dispatching.
Before dispatching multiple features in parallel, verify they are independent. Read reference/independence-check.md for the full protocol.
Quick check: list the files each feature will touch. Any overlap means sequential, not parallel.
For each ready feature, dispatch an agent. Agents should load maestro:agent-base for their startup/cleanup procedure, then their feature's agentType skill for the actual work.
Track dispatch:
maestro feature update <featureId> --status assigned --mission <missionId>
Dispatch format: Use the five-section agent brief (see Agent Brief Format below). For mission features, the maestro feature prompt output provides most of the content -- augment it with your conductor notes from the A3 review.
Dispatch independent features in parallel. Sequential features wait for their dependencies.
Poll for agent completion:
maestro feature list --mission <missionId> --milestone <milestoneId> --json
maestro reply list --mission <missionId> --json
When an agent completes:
verificationSteps and fulfills assertions?After synthesizing a round of completions, present findings to the user with:
When all features in the active milestone are done:
maestro milestone status <milestoneId> --mission <missionId>
Check that all assertions are passed or waived. If validation is needed, invoke the appropriate validator skill (maestro:scrutiny-validator or maestro:user-testing-validator).
After validation passes:
maestro milestone seal <milestoneId> --mission <missionId>
Then loop back to A1 for the next milestone, or wrap up if the mission is complete.
Use when the user has work to do but no formal mission. You decompose, dispatch, and synthesize without mission infrastructure.
Never skip this step. Jumping straight into decomposition produces plans that solve the wrong problem cleanly.
Break the confirmed work into 2-7 discrete tasks. Each task should be:
Create tasks in the maestro task graph:
maestro task create "Add input validation for email field" --labels conduct
maestro task create "Write unit tests for validation" --labels conduct --blocked-by <prevId>
Show the breakdown to the user before dispatching. Include estimated dependencies and which tasks can run in parallel.
Before parallel dispatch, apply the independence check from reference/independence-check.md.
For each task, dispatch an agent using the five-section brief format (see below). Claim the task before dispatching:
maestro task claim <taskId> --session <agent-id>
maestro task update <taskId> --status in_progress --session <agent-id>
See reference/brief-templates.md for copy-paste templates for common scenarios.
When agents return:
maestro task update <taskId> --status completed --reason "implemented: <summary>"
Loop back to B2 if more work remains, or wrap up.
Every agent dispatch -- whether from a mission prompt or ad-hoc -- uses this five-section structure:
| Section | Content | What breaks without it |
|---|---|---|
| Goal | One sentence: "When done, X is true" | Agent doesn't know when to stop |
| Scope | Files/dirs to touch; what is out of bounds | Agent refactors the world |
| Context | Error messages, function signatures, prior decisions, relevant code paths | Agent re-explores what you already know |
| Constraints | What NOT to do (no commits, no .maestro/ edits, no unrelated changes) | Agent "improves" things you didn't ask for |
| Output | What agent must report back (files changed, tests run, issues found) | You can't verify without re-reading everything |
For mission features, maestro feature prompt generates most of this. Review it and augment with your conductor notes.
For ad-hoc tasks, write the brief yourself. See reference/brief-templates.md for templates.
The only time you write code yourself in conductor mode:
Everything else gets dispatched:
When in doubt, dispatch. The cost of one sub-agent is small; the cost of silently slipping back into implementation mode is that the user loses visibility into the work.
When agents return, you are the integrator. Your job:
Never paste raw agent output and call it your analysis. The user hired a conductor, not a relay.
You stay in conductor mode for the duration of the session unless the user explicitly says otherwise.
If you believe direct implementation would be more efficient for a specific piece of work:
Never silently drop back into implementation. The user chose conductor mode for a reason.
| Skill | Relationship |
|---|---|
maestro:agent-base | Agents follow this for startup/cleanup/handoff. You do NOT follow it -- you are the conductor, not an agent |
maestro:mission-planning | If the user wants a mission but none exists, invoke this first to create one, then conduct it |
maestro:dispatching | Full independence verification protocol. Your reference/independence-check.md is a condensed version |
maestro:scrutiny-validator | Invoke at milestone gates for code scrutiny validation |
maestro:user-testing-validator | Invoke at milestone gates for user-facing validation |
maestro:implement | Agents may use this for track-based TDD execution. You dispatch them to use it; you do not use it yourself |