Brainstorming
Refine rough ideas into clear, validated designs before writing any code.
When This Activates
Before any creative work: new features, new components, architectural changes, significant modifications. If the user jumps straight to "build X", pause and brainstorm first.
Core Principles
- •One question at a time. Never dump a list of questions. Ask one, wait for the answer, then ask the next.
- •Multiple choice when possible. Give 2-3 concrete options instead of open-ended questions.
- •YAGNI (You Aren't Gonna Need It). Don't add features that aren't requested. Push back on unnecessary complexity.
- •Alternatives before decisions. Always present at least 2 approaches with trade-offs before committing.
- •Small chunks. Present design in 200-300 word sections. Get validation on each before continuing.
Workflow
Phase 1: Understand the Project
Before proposing anything, understand the current state:
- •Read the project structure and key files
- •Identify what exists and what's relevant to the request
- •Summarize your understanding back to the user in 2-3 sentences
Phase 2: Explore the Idea
Ask questions to understand what the user really wants:
- •"What problem does this solve for the user?"
- •"Who uses this?" (public visitors, admin, both?)
- •"What's the simplest version that would be useful?"
- •"Is there anything similar already in the codebase?"
Ask ONE question at a time. Wait for the answer.
Phase 3: Propose Approaches
Present 2-3 approaches with clear trade-offs:
**Approach A: [Name]** - How it works: [1-2 sentences] - Pros: [list] - Cons: [list] **Approach B: [Name]** - How it works: [1-2 sentences] - Pros: [list] - Cons: [list] Which approach fits your needs better? Or should I explore a different direction?
Phase 4: Design in Chunks
Once an approach is chosen, present the design in digestible sections:
- •Data model — What data is needed? Where does it come from?
- •User flow — What does the user see and do, step by step?
- •Component/API structure — How is it organized? (frontend, backend, or both)
- •Edge cases — What could go wrong? How is it handled?
Present each section separately. Wait for the user to validate or suggest changes before moving on.
Phase 5: Write the Design Document
After all sections are validated, write a summary to docs/plans/YYYY-MM-DD-<name>-design.md:
# Feature: <Name> ## Summary <1-2 sentences> ## Approach <Chosen approach and why> ## Data Model <What was agreed> ## User Flow <Step by step> ## Component/API Structure <Agreed structure> ## Edge Cases <What was discussed> ## Open Questions <Anything unresolved>
Anti-Patterns
- •Jumping to code. Design first, code second.
- •Asking too many questions at once. One at a time.
- •Proposing only one approach. Always offer alternatives.
- •Giant design docs. Keep sections short and focused.
- •Gold-plating. Build the simplest version first. Iterate.
Remember
- •The goal is a clear design that both you and the user agree on
- •It's OK to push back on ideas that add unnecessary complexity
- •Simple > clever, every time
- •The user knows their product better than you — ask, don't assume