From maestro
Generates structured .md plans and visual HTML blueprints for Maestro project features. Explores codebase, identifies critical files, design decisions, and phases with tasks and acceptance criteria.
npx claudepluginhub reinamaccredy/maestro --plugin maestroThis skill uses the workspace's default tool permissions.
Generate two artifacts for every blueprint in the maestro project:
Generates step-by-step implementation plans from design specs for multi-step tasks, verifying APIs and dependencies exist before coding, detailing files, code, tests, commits.
Use when the user needs to plan and architect a new feature before implementation begins. This includes analyzing requirements, asking clarifying questions, and creating a detailed implementation plan aligned with the project's architecture. Invoke BEFORE any coding work starts.
Generates persistent implementation blueprint with per-file specs: classifies work, scans code graph, confirms scope, analyzes impact, evaluates approaches. Use before features or refactors.
Share bugs, ideas, or general feedback.
Generate two artifacts for every blueprint in the maestro project:
.md) -- maestro-format plan saved to .maestro/plans/{feature-name}.md.html) -- interactive HTML presentation saved to ~/.agent/diagrams/{feature-name}-blueprint.htmlThe .md plan follows maestro conventions and integrates with tracks, missions, and the existing planning workflow. The .html is the visual version of the same content.
Before generating anything, understand the affected codebase areas. Launch parallel explore subagents.
Maestro-specific areas to check:
src/features/<name>/ -- feature-scoped code; each feature is a bounded context with its own commands/, usecases/, domain/, ports/, adapters/, services.ts, and index.ts public surfacesrc/infra/ -- plumbing that isn't a feature (init, doctor, status, install, update, uninstall, mission-control commands; config and git ports/adapters)src/shared/ -- generic utilities with no domain knowledge (lib/ for fs, yaml, shell, output; domain/ for IDs, UI config; top-level errors.ts, version.ts)src/tui/ -- TUI rendering if the change affects Mission Controlskills/built-in/ -- if the change affects built-in skills.maestro/context/ -- read product.md and tech-stack.md for project context.maestro/tracks/ -- check for related existing trackstests/ -- existing test patternsWhat to look for:
@/features/<name> (the feature's index.ts); deep paths into another feature are forbidden and enforced by bun run check:boundaries.maestro/After subagents report back, synthesize findings. Determine depth level:
| Level | When | Sections |
|---|---|---|
| Light | 1-2 files, obvious change | Context, File Changes, Verification |
| Standard | Feature spanning several files | Context, Critical Files, Phases, Verification |
| Full | Architectural change, new command/tool, cross-cutting | All sections including Design Decisions, Risks |
If a structural fork exists (e.g., "should this be a port+adapter or a direct implementation?"), ask the user after exploration. Reference specific code you found.
Save to .maestro/plans/{feature-name}.md. Follow the maestro plan format:
# Blueprint: Feature Name
> One-line summary.
## Context
What exists today, what's broken/missing, what the world looks like after.
Include motivation -- why this change matters for maestro.
## Critical Files
| File | Role | Change |
|------|------|--------|
| `src/features/<name>/commands/foo.command.ts` | CLI command | New |
| `src/features/<name>/usecases/foo.usecase.ts` | Business logic | New |
| `src/features/<name>/ports/foo.port.ts` | Port interface | New |
| `src/features/<name>/adapters/foo.adapter.ts` | Adapter | New |
| `src/features/<name>/services.ts` | Feature composition | Wire new adapter |
| `src/features/<name>/index.ts` | Public surface | Export new command/types |
| `src/services.ts` | Composition root | Wire feature services (if new feature) |
| `src/index.ts` | CLI root | Add command registration |
## Design Decisions
**Decision 1: Why X over Y**
- Considered: approach A, approach B
- Chose: approach A because [reason]
- Trade-off: [what we give up]
## Phases
### Phase 1: Phase Name (~duration)
**Delivers:** What this phase produces that can be verified.
#### Tasks
1. **Task 1.1: Task name**
- Files: `src/path/file.ts`
- Description: What to do
- _Acceptance: what proves this works_
2. **Task 1.2: Task name**
- Files: `src/path/file.ts`
- Description: What to do
- _Acceptance: criteria_
- _Depends on: Task 1.1_
#### Test Plan
- Unit: `bun test tests/unit/foo/`
- Integration: what to test
### Phase 2: ...
## Dependencies
\`\`\`mermaid
graph TD
T1.1 --> T1.2
T1.2 --> T2.1
\`\`\`
## Risks
| Risk | Impact | Likelihood | Mitigation |
|------|--------|------------|------------|
| Specific risk | High/Med/Low | High/Med/Low | What to do |
## Verification
- [ ] Build: `bun run build && ./dist/maestro --version`
- [ ] Tests: `bun test`
- [ ] TUI (if applicable): `maestro mission-control --render-check --size 120x40`
- [ ] CLI: `maestro <command-under-test>`
- [ ] Release: `bun run release:local && command -v maestro && maestro --version` (if user-facing)
Read the reference template at ./templates/blueprint-full.html before generating. Also read the CSS patterns at ./references/css-patterns.md.
The HTML contains the same content as the .md plan but presented visually with:
For Mermaid theming and libraries, read ./references/libraries.md.
For responsive navigation (4+ sections), read ./references/responsive-nav.md.
For detailed guidance on each section's content, read ./references/sections-guide.md.
Save to ~/.agent/diagrams/{feature-name}-blueprint.html.
Follow the visual-explainer quality bar:
--phase-active, --file-add)prefers-reduced-motion respectedOpen the HTML in the browser and tell the user both paths:
.maestro/plans/{name}.md~/.agent/diagrams/{name}-blueprint.htmlNext step: if the user accepts the plan and wants to track it as a formal mission, invoke maestro:mission-planning with the plan content as input. The blueprint skill produces artifacts; mission-planning turns them into a tracked mission, then maestro:conduct executes it.
Follow these when generating plans:
src/features/<name>/ and follow the hexagonal pattern inside it: port -> adapter -> usecase -> command -> test. Plumbing goes in src/infra/, generic utilities in src/shared/. Cross-feature imports must go through @/features/<other> (the feature's index.ts); enforced by bun run check:boundariesbun run build && ./dist/maestro --version to prove the fresh repo buildbun run release:local && command -v maestro && maestro --version--render-check verification if the change touches TUImaestro; call out ./dist/maestro only when validating the fresh build artifactBefore delivering: