Agent skill

maestro:brainstorming

Use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.

Stars 26
Forks 4

Install this agent skill to your Project

npx add-skill https://github.com/ReinaMacCredy/maestro/tree/main/skills/built-in/maestro:brainstorming

SKILL.md

Brainstorming Ideas Into Designs

Overview

Help turn ideas into fully formed designs and specs through natural collaborative dialogue.

Start by understanding the current project context, then run the structured interview in reference/interview-guide.md to refine the idea. Once you understand what you're building, present the design in small sections (200-300 words), checking after each section whether it looks right so far.

The Process

Phase 1: Understanding the Idea

  • Check out the current project state first (files, docs, recent commits)
  • Read reference/interview-guide.md and follow its question sequence
  • Skip questions the user already answered in their initial request
  • Offer multiple-choice options where the guide provides them
  • Only one question per message (two max if closely related)
  • Summarize your understanding before moving to approaches

Phase 2: Exploring Approaches

  • Propose 2-3 different approaches with trade-offs
  • Present options conversationally with your recommendation and reasoning
  • Lead with your recommended option and explain why
  • For each approach, cover: complexity, risk, time estimate, extensibility
  • Let the user pick or combine approaches before proceeding

Phase 3: Presenting the Design

  • Once you believe you understand what you're building, present the design
  • Break it into sections of 200-300 words
  • Ask after each section whether it looks right so far
  • Cover: architecture, components, data flow, error handling, testing
  • Be ready to go back and clarify if something doesn't make sense

Phase 4: Validating and Recording

  • Once design is validated, persist discoveries before they are lost
  • Save findings to maestro memory so the planner can reference them
  • Chain into the appropriate next step (see "Chaining Into Maestro" below)

Persisting Discoveries

Brainstorming insights are valuable but volatile -- they exist only in the conversation context. Persist them before moving on.

What to persist:

  • The validated design summary (architecture, components, data flow)
  • Key decisions made during brainstorming and their reasoning
  • Rejected approaches and why they were rejected (prevents re-exploration)
  • Constraints and edge cases surfaced during discussion
  • Non-goals and explicit scope boundaries

How to persist:

# Create the feature first (if it doesn't exist yet)
maestro feature-create --name "<feature-name>" --description "<one-line>" --json

# Save the brainstorming output as feature memory
maestro memory-write --name "brainstorm-summary" --file <summary-path> --feature "<feature-name>" --json

# Save key decisions separately for easy reference
maestro memory-write --name "design-decisions" --file <decisions-path> --feature "<feature-name>" --json

When to persist: After the user validates the design in Phase 3, before chaining into planning. Do not wait until the end of the conversation -- persist as soon as the design stabilizes.

Chaining Into Maestro

Brainstorming produces understanding, not documents. The validated design feeds directly into the maestro workflow -- never into standalone files under docs/.

When the design is validated, chain forward:

  1. Create the feature (if not already done): maestro feature-create -- registers the feature in the maestro tracker
  2. Save discovery context: maestro memory-write with the brainstorming output -- persists where the planner can reference it
  3. Choose the planning path based on complexity:
    • Simple/well-understood: maestro plan-write -- write the plan directly from the brainstorming output
    • Ambitious/multi-component: Load maestro:design or maestro:new-feature for deeper discovery and structured spec generation

The brainstorming output becomes the ## Discovery section that maestro plan-write requires. Do not write design docs to docs/plans/ -- that bypasses the maestro workflow and leaves the design disconnected from execution.

Decision Tree: What Comes Next?

Is the scope clear and small (1-3 tasks)?
  --> YES: maestro plan-write directly
  --> NO:
    Is a formal spec needed (multiple stakeholders, complex requirements)?
      --> YES: maestro:design (full 16-step process)
      --> NO: maestro:new-feature (interview + spec + plan)

Good vs Bad Brainstorming

Good Output

A good brainstorming session produces:

  • Clear problem statement with "why" articulated
  • 2-3 approaches evaluated with trade-offs
  • One recommended approach with reasoning
  • Explicit scope boundaries (what's in, what's out)
  • Key edge cases and error scenarios identified
  • Technical constraints surfaced and addressed

Example summary:

## Design: Rate Limiting for REST API

**Problem**: No rate limiting means a single abusive client can degrade
service for all users. We had an incident on 2026-03-01 where one client
sent 10K req/sec and caused 503s for everyone.

**Approach**: Sliding window counter with Redis backend.
- Rejected token bucket (harder to implement distributed).
- Rejected fixed window (allows burst at window boundary).

**Scope**: Per-user limits on authenticated endpoints only.
**Non-goals**: IP-based limiting, per-endpoint limits, admin dashboard.

**Key decisions**:
- Fail open (allow request) if Redis is unavailable
- Return Retry-After header with 429 responses
- Default 100 req/min, configurable per user tier

Bad Output

  • "We should add rate limiting" -- no approaches, no scope, no decisions
  • 2000-word essay with no structure -- not scannable by a planner
  • Design that includes implementation details ("use the redis SET NX command") -- that's planning, not designing
  • No non-goals defined -- scope will creep during implementation

Key Principles

  • One question at a time - Don't overwhelm with multiple questions
  • Multiple choice preferred - Easier to answer than open-ended when possible
  • Skip what's known - If the user gave details upfront, acknowledge them and move on
  • YAGNI ruthlessly - Remove unnecessary features from all designs
  • Explore alternatives - Always propose 2-3 approaches before settling
  • Incremental validation - Present design in sections, validate each
  • Be flexible - Go back and clarify when something doesn't make sense
  • Challenge assumptions - Surface fragile assumptions, ask what changes if they fail, offer lean fallback options
  • Persist before chaining - Save brainstorming output to memory before moving to planning
  • Stay in the "what" lane - Brainstorming defines what to build and why. Implementation details (specific libraries, exact file paths, code patterns) belong in the plan, not the brainstorm.

Relationship to Other Commands

  • maestro feature-create -- Create a feature to work on (do this during brainstorming)
  • maestro memory-write -- Persist brainstorming discoveries
  • maestro:brainstorming -- You are here. Explore ideas before planning
  • maestro:design -- Deep discovery for ambitious features (next step for complex work)
  • maestro:new-feature -- Interview + spec + plan (next step for medium complexity)
  • maestro plan-write -- Write the plan directly (next step for simple work)
  • maestro plan-approve -- Approve the plan for execution
  • maestro:implement -- Execute the implementation

Expand your agent's capabilities with these related and highly-rated skills.

ReinaMacCredy/maestro

maestro-skill-author

Create, update, or debug maestro built-in skills. Covers SKILL.md frontmatter, reference directory structure, step-file architecture, build-time embedding, naming conventions, alias management, and registry validation. Use when creating a new maestro built-in skill, modifying an existing SKILL.md, adding reference files, debugging skill loading failures, updating the skills registry, or working on the skills full port. Also use when frontmatter validation fails, skills don't appear in skill-list, or reference files fail to load.

26 4
Explore
ReinaMacCredy/maestro

maestro:brainstorming

Use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.

26 4
Explore
ReinaMacCredy/maestro

mcp-builder

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

26 4
Explore
ReinaMacCredy/maestro

maestro:plan-review-loop

Deep-review any plan (maestro, Codex, Claude Code plan mode, or plain markdown) using iterative subagent review loops with BMAD-inspired adversarial edge-case discovery. Spawns reviewer subagents that find issues using pre-mortem, inversion, and red-team techniques, auto-fixes them with structured fix strategies, and re-reviews until the plan passes with zero actionable issues. Use when the user says 'review the plan', 'deep review', 'check the plan thoroughly', 'review loop', 'validate before approving', or wants rigorous plan validation before execution. Also use proactively before plan-approve when the plan is complex or high-risk.

26 4
Explore
ReinaMacCredy/maestro

maestro:research

Structured research workflow for maestro features. Guides tool selection across three tiers (codebase exploration, Context7 for library docs, NotebookLM for deep analysis), defines research patterns, finding organization via memory_write, and completion criteria. Use during the research pipeline stage after feature_create and before plan_write. Also use when investigating a problem space, comparing technical approaches, gathering context on unfamiliar code, or needing to understand external library APIs before making architectural decisions.

26 4
Explore
ReinaMacCredy/maestro

cli-for-agents

Designs or reviews CLIs so coding agents can run them reliably: non-interactive flags, layered --help with examples, stdin/pipelines, fast actionable errors, idempotency, dry-run, and predictable structure. Use when building a CLI, adding commands, writing --help, or when the user mentions agents, terminals, or automation-friendly CLIs.

26 4
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results