brainstorming
Structured brainstorming techniques, idea generation, trade-off analysis. Use when exploring design options, choosing between architectural approaches, generating feature ideas, or making technology decisions.
Install
npx skills add https://github.com/sabahattink/antigravity-fullstack-hq/tree/main/skills/brainstorming
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install sabahattink-antigravity-fullstack-hq@llmmart
git clone https://github.com/sabahattink/antigravity-fullstack-hq.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole sabahattink/antigravity-fullstack-hq collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Brainstorming
When to Brainstorm vs When to Decide
Brainstorm when:
- Multiple valid approaches exist
- You don't yet know the constraints
- The cost of choosing wrong is high
- You want to surface blind spots
Decide immediately when:
- One approach is clearly better
- Time is critical and any reasonable option works
- The decision is easily reversible
Technique 1: Six Thinking Hats
Work through each lens sequentially before converging.
WHITE HAT — Facts & Data
"What do we know for certain?"
"What data do we have? What data do we need?"
Example: "We have 10k users. P95 response time is 2s. Database has 1M rows."
RED HAT — Gut Feelings & Emotions
"What feels wrong about this?"
"What are we uncomfortable with?"
Example: "This approach feels fragile. I'm not confident in the third-party service."
BLACK HAT — Critical Thinking & Risks
"What could go wrong?"
"What are the weaknesses?"
Example: "If the cache fails, we hit the DB directly and it falls over."
YELLOW HAT — Optimism & Benefits
"What's the best-case scenario?"
"What does success look like?"
Example: "If this works, we reduce load by 80% and can scale without upgrading the DB."
GREEN HAT — Creativity & Alternatives
"What else could we do?"
"Are there completely different approaches?"
Example: "What if we precomputed this nightly? What if we used read replicas?"
BLUE HAT — Process & Facilitation
"What's our decision process?"
"What do we need to decide today vs later?"
Example: "We need to pick an approach now for sprint planning. Cache vs CDN can be decided next sprint."
Technique 2: Diverge-Converge
DIVERGE (10 minutes — no judgment)
Generate as many options as possible
Crazy options are welcome — they often contain the seed of the real solution
No evaluation, no "but", no "however"
CONVERGE (10 minutes — structured evaluation)
Group similar options
Apply constraints to eliminate non-starters
Score remaining options on key criteria
Select top 2-3 for detailed analysis
Technique 3: How Might We (HMW)
Reframe problems as opportunities.
Problem: "Users don't complete onboarding"
HMW: "How might we make onboarding feel like progress, not work?"
HMW: "How might we surface value before asking for effort?"
HMW: "How might we let users skip steps they've done elsewhere?"
Problem: "The API is slow under load"
HMW: "How might we reduce the number of DB queries per request?"
HMW: "How might we serve cached responses for read-heavy endpoints?"
HMW: "How might we move expensive work out of the request path entirely?"
Technique 4: Pre-Mortem
Imagine it's 6 months from now and the project failed spectacularly. Work backwards to find what caused it.
"It's October. The launch went badly. What happened?"
Participants each write 3-5 reasons it failed:
- "We underestimated the data migration complexity"
- "The third-party auth provider had an outage on launch day"
- "The mobile app wasn't tested on Android 12"
- "We shipped without rate limiting and got scraped"
Now: address the most plausible failure modes before you start.
Trade-off Analysis Matrix
// Template for comparing options on explicit criteria
interface Option {
name: string
scores: Record<string, number> // 1-5
}
interface Criterion {
name: string
weight: number // 0-1, sums to 1.0
}
function scoreOptions(options: Option[], criteria: Criterion[]): ScoredOption[] {
return options.map(option => {
const total = criteria.reduce((sum, criterion) => {
const score = option.scores[criterion.name] ?? 0
return sum + score * criterion.weight
}, 0)
return { ...option, total }
}).sort((a, b) => b.total - a.total)
}
// Example: Choosing a caching strategy
const criteria: Criterion[] = [
{ name: 'Simplicity', weight: 0.25 },
{ name: 'Performance', weight: 0.35 },
{ name: 'Reliability', weight: 0.25 },
{ name: 'Cost', weight: 0.15 },
]
const options: Option[] = [
{
name: 'Redis (external)',
scores: { Simplicity: 3, Performance: 5, Reliability: 4, Cost: 3 },
},
{
name: 'In-memory (LRU)',
scores: { Simplicity: 5, Performance: 5, Reliability: 2, Cost: 5 },
},
{
name: 'Database query cache',
scores: { Simplicity: 4, Performance: 3, Reliability: 5, Cost: 5 },
},
]
Architecture Decision Template
## Problem
[One paragraph describing the problem clearly]
## Constraints
- Must integrate with existing TypeORM setup
- P95 response must be < 500ms
- Team has 3 days for implementation
## Options Considered
### Option 1: [Name]
**Description:** ...
**Pros:** ...
**Cons:** ...
**Effort:** S / M / L
### Option 2: [Name]
**Description:** ...
**Pros:** ...
**Cons:** ...
**Effort:** S / M / L
## Decision
Option X — because [one sentence reason].
## Consequences
- We gain: [positive outcome]
- We accept: [trade-off]
- We will need to revisit when: [trigger condition]
Feature Prioritization: RICE
RICE = (Reach × Impact × Confidence) / Effort
Reach: How many users does this affect per quarter?
Impact: 1=minimal, 2=low, 3=medium, 4=high, 5=massive
Confidence: % of how confident you are in your estimates
Effort: Person-weeks
Feature A: (500 × 4 × 0.8) / 2 = 800
Feature B: (100 × 5 × 0.5) / 1 = 250
Feature C: (2000 × 2 × 0.9) / 5 = 720
Priority: A > C > B
API Design Brainstorm Checklist
When designing a new API endpoint, ask:
□ Who is the primary consumer? (frontend, mobile, third-party)
□ What's the simplest URL that makes sense? (noun, not verb)
□ What does a successful response look like? (shape, status code)
□ What are the failure modes? (validation error, not found, unauthorized)
□ What are the pagination needs? (cursor, offset, none)
□ What fields should be filterable/sortable?
□ What auth level is required? (public, authenticated, admin)
□ Will this be called frequently? (rate limiting, caching strategy)
□ What changes might break clients? (versioning strategy)
□ Is there an existing similar endpoint we should be consistent with?
Forbidden Patterns
- Never brainstorm for more than 25 minutes without converging — it becomes circular
- Never let the loudest voice shut down divergence — document all ideas before filtering
- Never confuse "brainstorming" with "deciding" — separate the two phases explicitly
- Never skip the trade-off analysis for architectural decisions — "it feels right" is not enough
- Never generate options without also defining the evaluation criteria
Files (antigravity-fullstack-hq)
-
SKILL.md 6.7 KB
--- name: brainstorming description: Structured brainstorming techniques, idea generation, trade-off analysis. Use when exploring design options, choosing between architectural approaches, generating feature ideas, or making technology decisions. --- # Brainstorming ## When to Brainstorm vs When to Decide **Brainstorm** when: - Multiple valid approaches exist - You don't yet know the constraints - The cost of choosing wrong is high - You want to surface blind spots **Decide immediately** when: - One approach is clearly better - Time is critical and any reasonable option works - The decision is easily reversible ## Technique 1: Six Thinking Hats Work through each lens sequentially before converging. ``` WHITE HAT — Facts & Data "What do we know for certain?" "What data do we have? What data do we need?" Example: "We have 10k users. P95 response time is 2s. Database has 1M rows." RED HAT — Gut Feelings & Emotions "What feels wrong about this?" "What are we uncomfortable with?" Example: "This approach feels fragile. I'm not confident in the third-party service." BLACK HAT — Critical Thinking & Risks "What could go wrong?" "What are the weaknesses?" Example: "If the cache fails, we hit the DB directly and it falls over." YELLOW HAT — Optimism & Benefits "What's the best-case scenario?" "What does success look like?" Example: "If this works, we reduce load by 80% and can scale without upgrading the DB." GREEN HAT — Creativity & Alternatives "What else could we do?" "Are there completely different approaches?" Example: "What if we precomputed this nightly? What if we used read replicas?" BLUE HAT — Process & Facilitation "What's our decision process?" "What do we need to decide today vs later?" Example: "We need to pick an approach now for sprint planning. Cache vs CDN can be decided next sprint." ``` ## Technique 2: Diverge-Converge ``` DIVERGE (10 minutes — no judgment) Generate as many options as possible Crazy options are welcome — they often contain the seed of the real solution No evaluation, no "but", no "however" CONVERGE (10 minutes — structured evaluation) Group similar options Apply constraints to eliminate non-starters Score remaining options on key criteria Select top 2-3 for detailed analysis ``` ## Technique 3: How Might We (HMW) Reframe problems as opportunities. ``` Problem: "Users don't complete onboarding" HMW: "How might we make onboarding feel like progress, not work?" HMW: "How might we surface value before asking for effort?" HMW: "How might we let users skip steps they've done elsewhere?" Problem: "The API is slow under load" HMW: "How might we reduce the number of DB queries per request?" HMW: "How might we serve cached responses for read-heavy endpoints?" HMW: "How might we move expensive work out of the request path entirely?" ``` ## Technique 4: Pre-Mortem Imagine it's 6 months from now and the project failed spectacularly. Work backwards to find what caused it. ``` "It's October. The launch went badly. What happened?" Participants each write 3-5 reasons it failed: - "We underestimated the data migration complexity" - "The third-party auth provider had an outage on launch day" - "The mobile app wasn't tested on Android 12" - "We shipped without rate limiting and got scraped" Now: address the most plausible failure modes before you start. ``` ## Trade-off Analysis Matrix ```typescript // Template for comparing options on explicit criteria interface Option { name: string scores: Record<string, number> // 1-5 } interface Criterion { name: string weight: number // 0-1, sums to 1.0 } function scoreOptions(options: Option[], criteria: Criterion[]): ScoredOption[] { return options.map(option => { const total = criteria.reduce((sum, criterion) => { const score = option.scores[criterion.name] ?? 0 return sum + score * criterion.weight }, 0) return { ...option, total } }).sort((a, b) => b.total - a.total) } // Example: Choosing a caching strategy const criteria: Criterion[] = [ { name: 'Simplicity', weight: 0.25 }, { name: 'Performance', weight: 0.35 }, { name: 'Reliability', weight: 0.25 }, { name: 'Cost', weight: 0.15 }, ] const options: Option[] = [ { name: 'Redis (external)', scores: { Simplicity: 3, Performance: 5, Reliability: 4, Cost: 3 }, }, { name: 'In-memory (LRU)', scores: { Simplicity: 5, Performance: 5, Reliability: 2, Cost: 5 }, }, { name: 'Database query cache', scores: { Simplicity: 4, Performance: 3, Reliability: 5, Cost: 5 }, }, ] ``` ## Architecture Decision Template ```markdown ## Problem [One paragraph describing the problem clearly] ## Constraints - Must integrate with existing TypeORM setup - P95 response must be < 500ms - Team has 3 days for implementation ## Options Considered ### Option 1: [Name] **Description:** ... **Pros:** ... **Cons:** ... **Effort:** S / M / L ### Option 2: [Name] **Description:** ... **Pros:** ... **Cons:** ... **Effort:** S / M / L ## Decision Option X — because [one sentence reason]. ## Consequences - We gain: [positive outcome] - We accept: [trade-off] - We will need to revisit when: [trigger condition] ``` ## Feature Prioritization: RICE ``` RICE = (Reach × Impact × Confidence) / Effort Reach: How many users does this affect per quarter? Impact: 1=minimal, 2=low, 3=medium, 4=high, 5=massive Confidence: % of how confident you are in your estimates Effort: Person-weeks Feature A: (500 × 4 × 0.8) / 2 = 800 Feature B: (100 × 5 × 0.5) / 1 = 250 Feature C: (2000 × 2 × 0.9) / 5 = 720 Priority: A > C > B ``` ## API Design Brainstorm Checklist When designing a new API endpoint, ask: ``` □ Who is the primary consumer? (frontend, mobile, third-party) □ What's the simplest URL that makes sense? (noun, not verb) □ What does a successful response look like? (shape, status code) □ What are the failure modes? (validation error, not found, unauthorized) □ What are the pagination needs? (cursor, offset, none) □ What fields should be filterable/sortable? □ What auth level is required? (public, authenticated, admin) □ Will this be called frequently? (rate limiting, caching strategy) □ What changes might break clients? (versioning strategy) □ Is there an existing similar endpoint we should be consistent with? ``` ## Forbidden Patterns - Never brainstorm for more than 25 minutes without converging — it becomes circular - Never let the loudest voice shut down divergence — document all ideas before filtering - Never confuse "brainstorming" with "deciding" — separate the two phases explicitly - Never skip the trade-off analysis for architectural decisions — "it feels right" is not enough - Never generate options without also defining the evaluation criteria
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.