Brainstorming Session
CHECK EXISTING SESSIONS
Read Brainstorming Sessions to see all existing sessions.
If user asks to list/show their brainstorms, present them:
"Your brainstorming sessions:
- [Topic 1] — [N] ideas, [status] (started [date])
..."
Then wait for their choice.
If user explicitly said "new brainstorm", skip to topic clarification.
MATCH TOPIC TO EXISTING SESSION
If user's topic matches or fuzzy-matches an existing session:
"I found a brainstorm about '[topic]' from [date] with [N] ideas. Continue that, or start fresh?"
If matching session is converged:
"That one was completed. Add more ideas, review selections, or start new?"
If continuing existing: summarize progress and offer to continue, build on ideas, or converge.
If no match or starting fresh: proceed to topic clarification.
CLARIFY THE TOPIC
If genuinely unclear what they want to brainstorm, ask:
"What's the topic or problem you want to brainstorm? Give me a sentence or two."
Once you have a topic, proceed to understand the context.
SHOW WHAT YOU KNOW
Before brainstorming, demonstrate understanding of their topic:
"Here's what I know about [topic]:" — Share 3-5 relevant observations:
- Current state or common approaches
- Key challenges or tensions in this space
- Recent developments or trends (if relevant)
- What typically matters for decisions like this
Keep it brief but substantive. This builds trust and surfaces your knowledge gaps.
CLARIFY INTENT AND CONSTRAINTS
Ask targeted questions to focus the brainstorm:
"Before we dive in, a few quick questions:
- What outcome are you hoping for? (New directions, solutions to a specific problem, creative options, etc.)
- Any constraints I should know about? (Budget, timeline, team size, technical limitations)
- What's already been tried or considered?"
Listen for what success looks like to them. This shapes which techniques will be most useful.
ROUND 1: SELECT AND APPLY TECHNIQUE
Based on what you learned about their topic, goals, and constraints, pick the best starting technique:
- Improving something existing → SCAMPER
- Solving a specific problem → Reversal
- Feeling stuck or blocked → Random Stimulus
- Exploring unfamiliar territory → Analogy Mining
- Need fresh perspectives → Role Play
- Unclear what to ask → Question Storming
- Risk-averse or perfectionist user → Worst Idea First
- Time or resource constrained → Constraint Injection
Apply the technique to generate 5-8 ideas. For each idea:
- Give it a clear title or one-liner
- Add a brief explanation (1-2 sentences)
- Where relevant, connect to their stated constraints or goals
PRESENT ROUND 1 RESULTS
Show the ideas clearly. Then explain the technique WITH rationale:
"Since you're [improving something existing / solving a specific problem / exploring new territory / etc.],
I used [Technique Name] — [brief technique description from the guide's 'Present to user as' text]."
Offer alternatives for the next round:
"Want another angle? I could try:
- [Technique 2] — [brief description]
- [Technique 3] — [brief description]
Or if you have enough ideas, we can evaluate and prioritize what we have."
SAVE SESSION STATE
Write the session to Brainstorming Sessions with filename format:
{topic-slug}-{YYYY-MM-DD}-{HHmm}.md (include time for uniqueness)
Session format:
---
topic: "[Topic]"
started: YYYY-MM-DD
status: exploring
---
# Brainstorm: [Topic]
## Round 1: [Technique Name]
1. **[Idea title]**: [Explanation]
2. **[Idea title]**: [Explanation]
...
---
*Techniques used: [Technique 1]*
*Total ideas: [N]* EXPLORATION LOOP
Based on user response:
If user picks a technique: Apply it to generate 5-8 more ideas. Build on previous ideas where natural — reference and extend them. Present results, explain the technique, offer alternatives again.
If user mentions a specific idea: Explore that direction deeper with a focused technique. What variations exist? What would make it stronger?
If user gives feedback ("that won't work because..."): Acknowledge the constraint and use it to generate more ideas. "Given that constraint, what else could work?"
If user seems satisfied ("these are good"): Suggest moving to convergence: "We've generated [N] ideas from [M] angles. Ready to evaluate and pick the strongest ones?"
After each round:
- Append the new ideas to the session file
- Update the techniques used and total count
- Present and offer next steps
Repeat until user chooses to converge or explicitly ends.
TRANSITION TO CONVERGENCE
When user is ready to evaluate:
"Great, let's narrow this down."
Seamlessly begin the evaluation process by running Evaluate and Prioritize Ideas.
Don't announce it as a separate command — just continue the conversation naturally
into grouping and evaluating ideas.
You MUST use a todo list to complete these steps in order. Never move on to one step if you haven't completed the previous step. If you have multiple read steps in a row, read them all at once (in parallel).
Add all steps to your todo list now and begin executing.
## Steps
1. CHECK EXISTING SESSIONS
Read `documents/brainstorm-sessions/*.md` to see all existing sessions.
If user asks to list/show their brainstorms, present them:
"Your brainstorming sessions:
- **[Topic 1]** — [N] ideas, [status] (started [date])
..."
Then wait for their choice.
If user explicitly said "new brainstorm", skip to topic clarification.
2. MATCH TOPIC TO EXISTING SESSION
If user's topic matches or fuzzy-matches an existing session:
"I found a brainstorm about '[topic]' from [date] with [N] ideas. Continue that, or start fresh?"
If matching session is converged:
"That one was completed. Add more ideas, review selections, or start new?"
If continuing existing: summarize progress and offer to continue, build on ideas, or converge.
If no match or starting fresh: proceed to topic clarification.
3. CLARIFY THE TOPIC
If genuinely unclear what they want to brainstorm, ask:
"What's the topic or problem you want to brainstorm? Give me a sentence or two."
Once you have a topic, proceed to understand the context.
4. SHOW WHAT YOU KNOW
Before brainstorming, demonstrate understanding of their topic:
"Here's what I know about [topic]:" — Share 3-5 relevant observations:
- Current state or common approaches
- Key challenges or tensions in this space
- Recent developments or trends (if relevant)
- What typically matters for decisions like this
Keep it brief but substantive. This builds trust and surfaces your knowledge gaps.
5. CLARIFY INTENT AND CONSTRAINTS
Ask targeted questions to focus the brainstorm:
"Before we dive in, a few quick questions:
- What outcome are you hoping for? (New directions, solutions to a specific problem, creative options, etc.)
- Any constraints I should know about? (Budget, timeline, team size, technical limitations)
- What's already been tried or considered?"
Listen for what success looks like to them. This shapes which techniques will be most useful.
6. [Read Brainstorming Techniques]: Read the documentation in: `skills/sauna/[skill_id]/references/thinking.brainstorm.techniques.md` (Load technique menu for selection)
7. [Read Brainstorming Guide]: Read the documentation in: `skills/sauna/[skill_id]/references/thinking.brainstorm.guide.md` (Load brainstorming principles)
8. ROUND 1: SELECT AND APPLY TECHNIQUE
Based on what you learned about their topic, goals, and constraints, pick the best starting technique:
- Improving something existing → SCAMPER
- Solving a specific problem → Reversal
- Feeling stuck or blocked → Random Stimulus
- Exploring unfamiliar territory → Analogy Mining
- Need fresh perspectives → Role Play
- Unclear what to ask → Question Storming
- Risk-averse or perfectionist user → Worst Idea First
- Time or resource constrained → Constraint Injection
Apply the technique to generate 5-8 ideas. For each idea:
- Give it a clear title or one-liner
- Add a brief explanation (1-2 sentences)
- Where relevant, connect to their stated constraints or goals
9. PRESENT ROUND 1 RESULTS
Show the ideas clearly. Then explain the technique WITH rationale:
"Since you're [improving something existing / solving a specific problem / exploring new territory / etc.],
I used **[Technique Name]** — [brief technique description from the guide's 'Present to user as' text]."
Offer alternatives for the next round:
"Want another angle? I could try:
- **[Technique 2]** — [brief description]
- **[Technique 3]** — [brief description]
Or if you have enough ideas, we can evaluate and prioritize what we have."
10. SAVE SESSION STATE
Write the session to `documents/brainstorm-sessions/*.md` with filename format:
{topic-slug}-{YYYY-MM-DD}-{HHmm}.md (include time for uniqueness)
Session format:
```markdown
---
topic: "[Topic]"
started: YYYY-MM-DD
status: exploring
---
# Brainstorm: [Topic]
## Round 1: [Technique Name]
1. **[Idea title]**: [Explanation]
2. **[Idea title]**: [Explanation]
...
---
*Techniques used: [Technique 1]*
*Total ideas: [N]*
```
11. EXPLORATION LOOP
Based on user response:
**If user picks a technique:** Apply it to generate 5-8 more ideas. Build on previous ideas where natural — reference and extend them. Present results, explain the technique, offer alternatives again.
**If user mentions a specific idea:** Explore that direction deeper with a focused technique. What variations exist? What would make it stronger?
**If user gives feedback ("that won't work because..."):** Acknowledge the constraint and use it to generate more ideas. "Given that constraint, what else could work?"
**If user seems satisfied ("these are good"):** Suggest moving to convergence: "We've generated [N] ideas from [M] angles. Ready to evaluate and pick the strongest ones?"
After each round:
1. Append the new ideas to the session file
2. Update the techniques used and total count
3. Present and offer next steps
Repeat until user chooses to converge or explicitly ends.
12. TRANSITION TO CONVERGENCE
When user is ready to evaluate:
"Great, let's narrow this down."
Seamlessly begin the evaluation process by running `skills/sauna/[skill_id]/references/recipes/thinking.brainstorm.converge.md`.
Don't announce it as a separate command — just continue the conversation naturally
into grouping and evaluating ideas.