From compound-engineering
This skill should be used before implementing features, building components, or making changes. It guides exploring user intent, approaches, and design decisions before planning. Triggers on "let's brainstorm", "help me think through", "what should we build", "explore approaches", ambiguous feature requests, or when the user's request has multiple valid interpretations that need clarification.
How this skill is triggered — by the user, by Claude, or both
Slash command
/compound-engineering:brainstormingclaude-sonnet-5The summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill provides detailed process knowledge for effective brainstorming sessions that establish **WHY** we're building something, clarify **WHAT** to build, and map **WHERE** it lives in the system -- before diving into **HOW** to build it.
This skill provides detailed process knowledge for effective brainstorming sessions that establish WHY we're building something, clarify WHAT to build, and map WHERE it lives in the system -- before diving into HOW to build it.
The brainstorm produces three lynchpin artifacts that anchor all downstream phases:
Brainstorming is valuable when:
Brainstorming can be skipped when:
Before diving into questions, assess whether brainstorming is needed.
Signals that requirements are clear:
Signals that brainstorming is needed:
If requirements are clear, suggest: "Your requirements seem clear. Consider proceeding directly to planning or implementation."
If the user has not chosen a concrete feature yet, handle ideation in this workflow before collaborative questioning:
Do not route through a separate /workflows:ideate track and do not write a default docs/ideation/ artifact.
Ask questions one at a time to understand the user's problem space and the people affected. The goal is not just to understand WHAT they want but WHY they need it.
Question Techniques:
Start with the problem, not the solution
Prefer multiple choice when natural options exist
Probe for stakes and impact
Validate assumptions explicitly
Ask about success criteria early and tie them to outcomes
Key Topics to Explore:
| Topic | Example Questions | Purpose |
|---|---|---|
| Problem | What pain exists? What triggers it? What's the workaround? | Establishes the WHY |
| People | Who experiences this? What's their context and skill level? | Defines the persona |
| Stakes | What's the cost of not solving this? What's the business impact? | Validates priority |
| Success | How will users know it's working? What outcome matters? | Defines done |
| Boundaries | What's explicitly out of scope? What adjacent problems exist? | Prevents scope creep |
| Constraints | Technical limitations? Timeline? Dependencies? Compliance? | Grounds the approach |
| Existing Patterns | Are there similar features in the codebase to follow? | Informs architecture |
Exit Condition: Continue until you can articulate the problem, the people, and the desired outcome clearly -- OR user says "proceed" or "let's move on."
This is the critical synthesis step. After the Q&A, the orchestrator constructs two artifacts from everything learned.
Problem Narrative (2-4 sentences): Clearly state: who has the problem, what triggers it, what the impact is, and why now is the right time to solve it. This is the WHY that every downstream phase traces back to.
Example: "Support agents currently spend 20+ minutes per ticket manually cross-referencing customer data across three systems. This leads to longer resolution times and frequent errors in billing adjustments. The upcoming Q3 volume spike will make this unsustainable."
User Story (structured format):
As a [persona with relevant context],
I need to [action/capability]
so that [desired outcome/value],
because currently [pain point or gap]
which causes [concrete negative impact].
Example:
As a support agent handling billing disputes,
I need to see all customer data consolidated in one view
so that I can resolve tickets in under 5 minutes,
because currently I have to switch between three systems
which causes 20+ minute resolution times and frequent billing errors.
Validation: Present both artifacts to the user and ask for confirmation. This is the most important step. If the problem narrative and user story are wrong, everything downstream will be misaligned.
After understanding the problem, propose 2-3 concrete approaches.
Critically: evaluate each approach against the problem narrative and user story.
Structure for Each Approach:
### Approach A: [Name]
[2-3 sentence description]
**How it addresses the user story:**
[Direct connection to the problem and desired outcome]
**Pros:**
- [Benefit 1]
- [Benefit 2]
**Cons:**
- [Drawback 1]
- [Drawback 2]
**Best when:** [Circumstances where this approach shines]
**Risk:** [What could go wrong, specific to the user's context]
Guidelines:
After the approach is chosen, construct a lightweight architectural context map. This is NOT implementation design (no file paths, no class names, no code). This is structural understanding.
What to map:
| Aspect | Question | Example |
|---|---|---|
| System Placement | Where does this feature live? | "New endpoint in the Billing API service" |
| Boundary Interactions | What does it talk to? | "Reads from CustomerDB, calls Payment Gateway, emits events to Notification service" |
| User Touchpoints | How do users interact with it? | "Support agents access via the admin dashboard" |
| Data Considerations | What data does it create/read/update? | "Creates consolidated views from three data sources, caches in Redis" |
| Dependency Direction | What depends on what? | "Depends on Customer service and Payment service; Notification service will consume its events" |
Output: A concise prose description (5-10 sentences). Think of it as explaining to a new team member where this feature sits and what it touches. Avoid code-level details.
Present to the user for validation. This context map flows into:
{{ARCHITECTURAL_CONTEXT}} block in /workflows:work/workflows:plan/workflows:reviewThe design is captured as a self-contained .html brainstorm artifact, composed by the html-artifact-composer skill and dispatched as a fresh subagent -- mirroring how /workflows:brainstorm dispatches it at its own write-step (skills/html-artifact-composer/SKILL.md -> "Invocation"). Do not hand-author a .md document: assemble the payload below and hand it to the composer, which is the single writer of the artifact.
Content Structure (composer payload):
The payload must carry every fact below -- it maps to the brainstorm-kind island's Tier-2 contract core (structured facts) and Tier-3 prose (rendered narrative):
# <Topic Title>
## Problem Narrative
[2-4 sentences: who has the problem, what triggers it, what the impact is, why now.]
## User Story
As a [persona],
I need to [action]
so that [outcome],
because currently [pain point]
which causes [impact].
## Success Criteria
- [Measurable outcome tied to the user story]
- [Observable behavior that proves the problem is solved]
## Architectural Context
- **Lives in:** [service/module/layer]
- **Interacts with:** [neighboring systems]
- **User entry point:** [UI/API/CLI/event]
- **Data:** [what data flows, where it lives]
- **Dependencies:** [depends on X; Y may depend on this]
## Chosen Approach
[What we're building and WHY this approach -- tied to the problem narrative]
## Key Decisions
- [Decision 1]: [Rationale tied to problem/user story]
- [Decision 2]: [Rationale tied to problem/user story]
## Approaches Considered
[Alternatives and why they were not chosen, relative to the user story]
## Stakeholder Impact
- **End users:** [experience change]
- **Developers:** [codebase/maintenance impact]
- **Operations:** [deployment/monitoring impact]
- **Business:** [revenue/cost/compliance impact]
## Open Questions
- [Unresolved questions for the planning phase]
## Resolved Questions
- [Questions resolved during brainstorming, with answers]
## Next Steps
-> `/workflows:plan` for implementation details
Frontmatter-equivalent fields (date, topic, status, and handoff.{problem_narrative,user_story,architectural_context,success_criteria}) are no longer hand-authored YAML -- they are carried in the payload's Tier-1 envelope, which the composer projects into the artifact's #artifact-data island.
Output Location: docs/brainstorms/YYYY-MM-DD-<topic>-brainstorm.html
Handoff Contract: The handoff fields signal to downstream phases which lynchpin sections are present. All four should be true before handing off to /workflows:plan.
Present clear options for what to do next:
/workflows:plan (will auto-detect and consume this brainstorm's lynchpin artifacts)During brainstorming, YAGNI applies to building scope, not understanding scope:
Keep sections short -- 200-300 words maximum. After each section of output, pause to validate understanding:
This prevents wasted effort on misaligned designs.
| Anti-Pattern | Better Approach |
|---|---|
| Asking 5 questions at once | Ask one at a time |
| Jumping to solutions before understanding the problem | Establish WHY before exploring WHAT |
| Evaluating approaches in a vacuum | Evaluate against the user story |
| Proposing overly complex solutions | Start simple, add complexity only if needed |
| Ignoring existing codebase patterns | Research what exists first |
| Making assumptions without validating | State assumptions explicitly and confirm |
| Creating lengthy design documents | Keep it concise -- details go in the plan |
| Skipping architectural context | Map where it lives before handing to plan |
| Treating the doc as disposable prose | It's a contract consumed by downstream phases |
The brainstorm document is the feature-level spec and handoff contract for downstream work. The project constitution, when present, remains the repo-wide governing artifact:
/workflows:plan consumes:
/deepen-plan consumes:
/workflows:work consumes:
{{ARCHITECTURAL_CONTEXT}} for every execution agent/workflows:review consumes:
npx claudepluginhub the-rabak/compound-engineering-plugin --plugin compound-engineeringCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.