brainstorming
Collaborative design refinement through Socratic dialogue. Use when exploring ideas, designing features, or planning architecture. Not for mechanical implementation tasks.
git clone --depth 1 https://github.com/majiayu000/spellbook /tmp/brainstorming && cp -r /tmp/brainstorming/skills/brainstorming. ~/.claude/skills/brainstormingbrainstorming.SKILL.md
# Brainstorming
> From [obra/superpowers](https://github.com/obra/superpowers)
## Purpose
Turn rough ideas into fully-formed designs through collaborative dialogue, NOT immediate implementation.
**Use for:** Exploring ideas, designing features, architecture decisions
**NOT for:** Clear mechanical processes with obvious implementation
## The Three Phases
### Phase 1: Understanding the Idea
1. **Review existing context**
- Read relevant project files
- Understand current architecture
- Note constraints and requirements
2. **Ask clarifying questions**
- ONE question at a time
- Prefer multiple choice when possible
- Open-ended questions are fine too
- Wait for answer before next question
```
Good: "Should this feature support offline mode?
A) Yes, full offline support
B) Yes, limited offline (read-only)
C) No, online only"
Bad: "What about offline support? And caching?
Also, how should errors be handled?"
```
### Phase 2: Exploring Approaches
1. **Present 2-3 different solutions**
- Each with clear trade-offs
- Lead with recommended option
- Explain reasoning
```markdown
## Approach A: Event-Driven (Recommended)
- Pros: Decoupled, scalable, easy to extend
- Cons: More complex debugging, eventual consistency
- Best for: Systems needing flexibility
## Approach B: Direct Integration
- Pros: Simple, immediate consistency
- Cons: Tight coupling, harder to scale
- Best for: Small, stable systems
## Approach C: Hybrid
- Pros: Balance of both
- Cons: Complexity of managing two patterns
- Best for: Gradual migration scenarios
```
2. **Discuss trade-offs**
- Performance vs simplicity
- Flexibility vs maintainability
- Short-term vs long-term
### Phase 3: Presenting the Design
1. **Present in sections** (200-300 words each)
- Architecture overview
- Key components
- Data flow
- Error handling
- Testing strategy
2. **Validate incrementally**
- Get confirmation after each section
- Adjust based on feedback
- Don't dump everything at once
## Key Principles
### Ask Questions Sequentially
```
❌ Wrong:
"What's the expected load? How many users?
What about mobile? Should it work offline?
What's the budget? Timeline?"
✅ Right:
"What's the expected user load?
A) <100 concurrent users
B) 100-1000 concurrent users
C) 1000+ concurrent users"
[Wait for answer]
"Given that load, should we prioritize...?"
```
### YAGNI Ruthlessly
Remove unnecessary features from ALL designs:
- Don't add "just in case" features
- Don't over-engineer for hypothetical scale
- Don't add flexibility that isn't needed yet
### Explore Before Deciding
Never jump to first solution:
- Consider at least 2-3 approaches
- Understand trade-offs of each
- Make informed recommendation
### Present Incrementally
Don't dump full design at once:
- Section by section
- Validate understanding
- Adjust as needed
## Follow-up Actions
After design is validated:
1. **Document the design**
- Create design doc or ADR
- Include key decisions and rationale
2. **Commit to version control**
- Design docs belong in repo
- Track changes over time
3. **Move to implementation planning**
- Break into tasks
- Estimate effort
- Identify dependencies
## Example Session
```
User: "I want to add notifications to the app"Senior backend TypeScript architect specializing in Bun/Node.js runtime, API design, database optimization, and scalable server architecture.
Expert at exploring and understanding legacy and unfamiliar codebases. Maps dependencies, identifies patterns, and creates documentation for complex systems.
Kubernetes architect specializing in cluster design, manifests, Helm charts, GitOps workflows, security policies, and production operations.
Systematic open source contributor that analyzes projects, finds suitable issues, implements fixes, and creates high-quality PRs with high acceptance probability.
Application security expert specializing in SAST, vulnerability assessment, OWASP Top 10, compliance auditing, and security architecture review.
Fullstack code reviewer with 15+ years experience analyzing code for security vulnerabilities, performance bottlenecks, architectural decisions, and best practices.
Senior technical lead who analyzes complex projects and coordinates multi-step development tasks. Delegates to specialized agents and ensures quality delivery.
Use when the user explicitly asks to stage all current changes, create a commit, and push to the remote after safety checks.