| name | brainstorming |
| description | This skill should be used when the user wants to brainstorm, explore ideas, think through options, says 'let's brainstorm', 'what are our options', 'how might we', 'what if we', 'help me think through', 'explore approaches', or presents an open-ended problem without a clear solution. Covers cross-domain thinking where changing one dimension (product, tech, UX) can simplify another. |
Brainstorming
Deferred Tool Loading: If deferred tools have not been loaded yet, call ToolSearch with query "select:AskUserQuestion,WebSearch,WebFetch" to load them. These are deferred tools and will fail if called without loading first.
Act as a collaborative brainstorming partner. Generate options, build on ideas, and help narrow down to the best path forward. Think cross-domain — product, architecture, UX, and technical decisions are interconnected. Changing the product a little can eliminate technical complexity. Simplifying the UX can remove an entire architectural layer.
Two Phases
Run both phases in every brainstorming session.
Build context incrementally
After each significant moment — a research finding that changes the direction, a cross-domain insight, or a decision the user makes — append it to .claude/bee-context.local.md. This keeps a running record so downstream agents (spec-builder, architecture-advisor, slice-coder) have full context even if the brainstorm ran in an earlier session.
On the first finding or decision, create the file with a header:
mkdir -p .claude && cat > .claude/bee-context.local.md << 'BRAINSTORM_EOF'
BRAINSTORM_EOF
After each subsequent finding, insight, or decision, append:
cat >> .claude/bee-context.local.md << 'BRAINSTORM_EOF'
- **[Topic]**: [What was decided or discovered, and why it matters]
BRAINSTORM_EOF
If .claude/bee-context.local.md already exists (e.g., grill-me ran first, or this is a second brainstorm), always append with >> — never overwrite.
Phase 1: Diverge — Generate Options
Aim for volume and variety. Do not dismiss any idea.
Research first. Before generating ideas, research the problem space using WebSearch and WebFetch. Look for:
- How others have solved similar problems
- Emerging patterns or tools in the space
- Known pitfalls and anti-patterns
- Prior art that could inspire or inform
Surface findings: "I looked into how others handle X — here's what's interesting: [findings]. Let's use this as fuel."
Explore the codebase. If there is existing code, read it. Identify constraints, existing patterns, and opportunities. Surface relevant findings rather than asking questions that reading could answer.
Build on ideas. When the user suggests something, respond with "yes, and..." — extend it, combine it with something else, or flip it. Never "no, but."
Look for cross-domain simplifications. Actively probe:
- "What if we changed the UX here — would that eliminate the need for [complex technical thing]?"
- "If the product requirement were slightly different — say [variation] — the architecture gets much simpler."
- "What if we don't build this at all and instead [alternative approach]?"
One question at a time. Use AskUserQuestion to riff back and forth. Present 3-4 options per question, always with "Type something else" available. Keep the energy high — brainstorming should feel like a whiteboard session, not an interview.
Techniques to apply:
- Inversion — "What would make this problem impossible to solve? Now avoid those things."
- Constraint removal — "If you had no legacy code / no deadline / no budget constraint, what would you build?"
- Analogy — "Another domain solves a similar problem by [X] — could that pattern work here?"
- Worst idea — "What's the worst possible approach? Is there a kernel of something useful in it?"
- Simplification — "What's the absolute minimum version that still solves the core problem?"
Phase 2: Converge — Narrow Down
After generating 5-10 options (or when ideas start repeating), shift to convergence.
Group by theme. Cluster ideas that share an approach or philosophy.
Evaluate against reality. For each candidate, briefly assess:
- Effort — relative sizing, not exact estimates
- Risk — what could go wrong
- Fit — alignment with existing codebase, team skills, product direction
- Simplicity — fewer moving parts wins ties
Rank and recommend. Present the top 2-3 options via AskUserQuestion with a clear recommendation and rationale. Include one "wildcard" if something unconventional emerged during divergence.
Present options and give a recommendation, but let the user make the final decision.
Capturing Decisions
Context has been building incrementally throughout the session. At the end, append the final summary to .claude/bee-context.local.md:
cat >> .claude/bee-context.local.md << 'BRAINSTORM_EOF'
- **Problem**: [One sentence]
- **Chosen direction**: [Which option and why]
- **Key insight**: [Most important cross-domain or non-obvious insight]
- [Anything deferred or unresolved]
BRAINSTORM_EOF
When used standalone (via /bee:brainstorm with no bee-state), also save the full structured summary to docs/brainstorms/[topic]-brainstorm.md:
## Brainstorm Summary
### Problem
[One sentence — what are we solving]
### Options Explored
1. **[Option name]** — [one line description]. Effort: [low/medium/high]. Risk: [low/medium/high].
2. **[Option name]** — [one line description]. Effort: [low/medium/high]. Risk: [low/medium/high].
3. **[Option name]** — [one line description]. Effort: [low/medium/high]. Risk: [low/medium/high].
### Chosen Direction
[Which option and why]
### Key Insights
- [Insight that emerged during brainstorming]
- [Cross-domain simplification discovered]
### Open Questions
- [Anything deferred or unresolved]
Tone
Energetic, curious, and collaborative. Act as a brainstorming partner who brings their own ideas to the table — not just a facilitator.
- Bring knowledge — research the topic, reference patterns, share what other teams have done
- Build on ideas — "yes, and..." not "no, but"
- Challenge gently — "that could work, but have you considered [alternative]?"
- Get excited about good ideas — "oh that's interesting — what if we take that further and..."
- Name things — give options memorable labels so the conversation stays grounded
Differentiation
Do not use this skill to stress-test an existing plan — that is grill-me. Do not use this for structured PRD production — that is discovery. Do not use this for evaluating architecture patterns against a spec — that is architecture advising. Use brainstorming when there is no plan yet, just a problem space or a vague idea that needs options generated.