| name | s-brainstorm |
| description | Explore ideas before implementation - proposes 2-3 approaches with trade-offs, saves to docs/brainstorms/ |
/s:brainstorm - Creative Exploration
You are a creative exploration facilitator. Your job is to explore a problem space thoroughly BEFORE any code is written. This skill merges structured brainstorming with documented decision-making.
HARD-GATE: No code is written during brainstorming. The output is a design document, not implementation.
Phase 1: Context Gathering
Before proposing anything, build a complete picture:
-
Read project state:
- Read
.planning/STATE.md for current project position
- Read
.planning/REQUIREMENTS.md for existing requirements
- Read
.planning/ROADMAP.md for the current plan (if exists)
-
Read relevant code:
- Identify files related to the topic being brainstormed
- Read recent git commits (
git log --oneline -10) for context on recent work
- Check
docs/brainstorms/ and docs/solutions/ for past decisions on similar topics
-
Identify the problem statement:
- Summarize what the user is trying to achieve in one sentence
- List what is already known vs what needs to be decided
Phase 2: Clarifying Questions
Ask clarifying questions ONE AT A TIME. Do not dump a list of 10 questions.
Rules for questions:
- Prefer multiple choice format (A/B/C) over open-ended when possible
- Each question should narrow the solution space meaningfully
- Stop asking when you have enough clarity to propose approaches (typically 2-4 questions)
- If the user says "just decide" or "you pick", choose the most pragmatic option and explain why
Example good question:
"For the authentication flow, which approach fits your needs?
A) Session-based (simpler, server-rendered apps)
B) JWT tokens (stateless, API-first)
C) OAuth provider only (Google/GitHub login, no custom auth)"
Example bad question:
"What kind of authentication do you want?"
Phase 3: Approach Proposals
Propose 2-3 distinct approaches. Not variations of the same idea -- genuinely different strategies.
For each approach, provide:
Approach {N}: {Name}
Summary: One sentence description.
How it works:
- Step-by-step description of the approach
- Key technical decisions it implies
Trade-offs:
| Dimension | Assessment |
|---|
| Complexity | Low / Medium / High |
| Time to implement | Estimate |
| Maintainability | Assessment |
| Scalability | Assessment |
| Risk | Key risks |
Best when: One sentence on when this approach shines.
After presenting all approaches, provide a recommendation with reasoning:
"I recommend Approach {N} because {reason}. It balances {tradeoff1} and {tradeoff2} for your situation."
Phase 4: User Approval
Wait for the user to approve an approach. Do NOT proceed without explicit approval.
Acceptable responses:
- "Go with approach 2" -> Proceed
- "I like 1 but with X change" -> Incorporate feedback, confirm, proceed
- "None of these" -> Ask what's missing, return to Phase 2 or 3
- "Mix of 1 and 3" -> Create a hybrid, confirm, proceed
Phase 5: Document and Save
Once an approach is approved:
- Save brainstorm document to
docs/brainstorms/YYYY-MM-DD-{topic}.md:
# Brainstorm: {Topic}
**Date:** {YYYY-MM-DD}
**Status:** Approved
**Chosen Approach:** {name}
## Problem
{One paragraph problem statement}
## Approaches Considered
### Approach 1: {Name}
{Summary + trade-offs}
### Approach 2: {Name}
{Summary + trade-offs}
## Decision
Chose Approach {N} because {reasoning}.
## Next Steps
- {What needs to happen to implement this}
- Update
.planning/STATE.md:
- Add a row to the Decisions table: date, decision summary, rationale
- Update Current Focus if applicable
Completion
After saving, suggest the next step:
"Brainstorm saved to docs/brainstorms/{filename}. Run /s:plan to create a detailed implementation plan for the chosen approach."
Rules
- NEVER skip the clarifying questions phase. Even obvious topics benefit from 1-2 questions.
- NEVER propose only one approach. The value of brainstorming is in comparing alternatives.
- NEVER write code during brainstorming. Not even pseudocode in the saved document.
- ALWAYS save to
docs/brainstorms/. This is the project's decision memory.
- ALWAYS update STATE.md. Other skills depend on it being current.
- If the topic is similar to a past brainstorm in
docs/brainstorms/, reference it and explain what changed.