brainstorm
Brainstorm
Transform ideas into fully-formed designs and specs through natural collaborative dialogue.
When to Use
- User has an idea that needs refinement ("I want to add...")
- Feature requires design exploration before implementation
- Multiple valid approaches exist and trade-offs need evaluation
- Requirements are unclear or partially defined
- User explicitly asks to brainstorm, design, or spec out a feature
The Process
Phase 1: Context Gathering
Before asking questions, understand the current state:
1. Check project structure (Glob key directories)
2. Review recent commits (git log --oneline -10)
3. Read relevant existing code/docs
4. Identify patterns and conventions already in use
Phase 2: Idea Refinement
Core Principle: One question at a time.
Ask questions to understand the idea. Prefer multiple-choice when possible:
Use AskUserQuestion with:
- 2-4 options per question
- Clear, mutually exclusive choices
- Your recommended option first (with reasoning)
Question Categories:
| Category | Example Questions |
|---|---|
| Purpose | What problem does this solve? Who benefits? |
| Constraints | Must integrate with X? Budget/time limits? |
| Success | How do we know it worked? Key metrics? |
| Scope | What's explicitly NOT included? |
| Prior Art | Seen similar elsewhere? What worked/didn't? |
Exit Criteria: Stop asking when purpose, constraints, and success criteria are clear.
Phase 3: Approach Exploration
Present 2-3 approaches with trade-offs:
## Approach A: [Name] (Recommended)
- **Pros**: ...
- **Cons**: ...
- **Best when**: ...
## Approach B: [Name]
- **Pros**: ...
- **Cons**: ...
- **Best when**: ...
Lead with recommendation and explain why. Ask user to confirm or discuss.
Phase 4: Incremental Design Presentation
Once approach is selected, present the design in sections:
CRITICAL: Each section must be 200-300 words max.
After each section, ask:
"Does this section look right so far? Any adjustments needed?"
Section Order:
- Overview - Goal, scope, success metrics
- Architecture - Components, data flow, boundaries
- Data Model - Schema, relationships (if applicable)
- Error Handling - Failure modes, recovery strategies
- Testing Strategy - What to test, how to test
Only proceed to next section after user confirms current section.
Be flexible: If something doesn't make sense, go back and clarify. The process is not rigid.
Phase 5: Documentation
After all sections validated:
- Compile into single design document
- Use
elements-of-styleskill for clarity - Write to
docs/plans/YYYY-MM-DD-<topic>-design.md - Commit the design document to git
Phase 6: Implementation Setup (Optional)
After documentation is complete, ask:
"Ready to set up for implementation?"
If yes:
- Use
using-git-worktreesto create isolated workspace - Use
/plan-featurecommand to create detailed implementation plan with TDD tasks
Question Patterns
Good Questions (Multiple Choice)
AskUserQuestion:
question: "How should we handle failed API calls?"
options:
- label: "Retry with backoff (Recommended)"
description: "Automatic retry 3x with exponential backoff. Best for transient failures."
- label: "Fail immediately"
description: "Return error to user right away. Simpler but less resilient."
- label: "Queue for later"
description: "Store and retry in background. Good for non-critical operations."
Good Questions (Open-ended)
Use when options aren't clear-cut:
- "What existing functionality should this integrate with?"
- "Are there any similar features in other products you'd like to emulate?"
- "What's the worst-case failure scenario we need to handle?"
YAGNI Ruthlessly
During design, actively remove unnecessary features:
| Red Flag | Question to Ask |
|---|---|
| "It might be useful to..." | "Do we need this for MVP?" |
| "We could also add..." | "Is this solving the stated problem?" |
| "Just in case..." | "What's the likelihood this is needed?" |
| "This would be nice..." | "Is this a requirement or a want?" |
Default answer: Remove it. Can always add later.
Design Document Template
# Feature: [Name]
Date: YYYY-MM-DD
## 1. Overview
**Goal**: [One sentence]
**Success Metrics**: [How we measure success]
**In Scope**: [What we're building]
**Out of Scope**: [What we're NOT building]
## 2. Architecture
[Diagram or description of components]
### Data Flow
[Step-by-step flow]
## 3. Data Model (if applicable)
[Schema changes, relationships]
## 4. Error Handling
| Scenario | Response |
|----------|----------|
| ... | ... |
## 5. Testing Strategy
| Type | Coverage | Focus |
|------|----------|-------|
| Unit | ... | ... |
| Integration | ... | ... |
| E2E | ... | ... |
## 6. Open Questions
[Any unresolved decisions]
Anti-Patterns
| Don't | Do Instead |
|---|---|
| Ask 5 questions at once | One question per message |
| Present design all at once | 200-300 word sections, validate each |
| Skip context gathering | Always check project state first |
| Present only one approach | Always show 2-3 with trade-offs |
| Assume requirements | Ask until crystal clear |
| Over-engineer MVP | YAGNI - remove the unnecessary |
| Write design without validation | Get user confirmation at each step |
Execution Flow
CONTEXT → REFINE → EXPLORE → PRESENT → DOCUMENT → IMPLEMENT
│ │ │ │ │ │
Git/Files 1 Q at 2-3 opts 200-300 docs/plans/ git-worktrees
a time w/recs sections + commit + /plan-feature
Integration
Pairs with:
gemini-cli- Get alternative perspectives during approach exploration (Phase 3)elements-of-style- Apply when writing design documents (Phase 5)using-git-worktrees- Create isolated workspace for implementation (Phase 6)/plan-featurecommand - Create detailed TDD implementation plans (Phase 6)
More from georgekhananaev/claude-skills-vault
system-architect
System architecture skill for designing scalable, maintainable software systems. Covers microservices/monolith decisions, API design, DB selection, caching, security, and scalability planning.
21skill-creator
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
12code-quality
Multi-language code quality standards and review for TypeScript, Python, Go, and Rust. Enforces type safety, security, performance, and maintainability. Use when writing, reviewing, or refactoring code. Includes review process, checklist, and Python PEP 8 deep-dive.
12token-optimizer
Reduce token count in prompts, docs, and prose. Covers prompt compression (40-60% savings), doc formatting, TOON data serialization, and Strunk's prose clarity rules. Use when compressing prompts, optimizing docs for LLM context, or writing clear technical prose.
12file-converter
Convert & transform files - images (resize, format, HEIC), markdown (PDF/HTML), data (CSV/JSON/YAML/TOML/XML), SVG, base64, text encoding. Cross-platform, single & batch mode. This skill should be used when converting file formats, resizing images, generating PDFs from markdown, or transforming data between formats.
12nextjs-senior-dev
Senior Next.js 15+/16 Engineer skill for App Router. Use when scaffolding production apps, enforcing RSC patterns, auditing codebases, or optimizing performance.
11