From hyperpowers
Use when creating or developing anything, before writing code - refines rough ideas into br epics with immutable requirements
How this skill is triggered — by the user, by Claude, or both
Slash command
/hyperpowers:brainstormingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<skill_overview>
<skill_overview> Turn rough ideas into validated designs stored as br epics with immutable requirements; tasks created iteratively as you learn, not upfront. </skill_overview>
<rigidity_level> HIGH FREEDOM - Adapt Socratic questioning to context, but always create immutable epic before code and only create first task (not full tree). </rigidity_level>
<quick_reference>
| Step | Action | Deliverable |
|---|---|---|
| 1 | Ask questions (one at a time) | Understanding of requirements |
| 2 | Research (agents for codebase/internet) | Existing patterns and approaches |
| 3 | Propose 2-3 approaches with trade-offs | Recommended option |
| 4 | Present design in sections (200-300 words) | Validated architecture |
| 5 | Create br epic with IMMUTABLE requirements | Epic with anti-patterns |
| 6 | Create ONLY first task | Ready for executing-plans |
| 7 | Hand off to executing-plans | Iterative implementation begins |
Key: Epic = contract (immutable), Tasks = adaptive (created as you learn) </quick_reference>
<when_to_use>
Don't use for:
<the_process>
Announce: "I'm using the brainstorming skill to refine your idea into a design."
Check current state:
hyperpowers:codebase-investigator for existing patternshyperpowers:internet-researcher for external APIs/librariesREQUIRED: Use AskUserQuestion tool with scannable format
Question Format Guidelines:
Question Structure:
Question: [Clear question ending with ?]
Options:
A. [Option] (Recommended) - [Why this is default]
B. [Option] - [Trade-off]
C. [Option] - [Trade-off]
D. Other (please specify)
Priority: [CRITICAL | IMPORTANT | NICE_TO_HAVE]
Priority Definitions:
Example using AskUserQuestion:
AskUserQuestion:
question: "Where should OAuth tokens be stored?"
header: "Token storage"
options:
- label: "httpOnly cookies (Recommended)"
description: "Prevents XSS token theft, industry standard"
- label: "sessionStorage"
description: "Cleared on tab close, less persistent"
- label: "localStorage"
description: "Persists across sessions, XSS vulnerable"
Fast-Path Option: For IMPORTANT/NICE_TO_HAVE questions with good defaults, offer: "Reply 'defaults' to accept all recommended options"
Do NOT just print questions and wait for "yes" - use the AskUserQuestion tool.
CAPTURE for Design Discovery: As each question is answered, record in "Key Decisions Made" table:
This preserves the Socratic Q&A for future reference during task creation and obstacle handling.
Research first:
IMPORTANT: Capture research findings for Design Discovery As you research, note down:
CAPTURE for Design Discovery:
Dead-end documentation prevents wasted re-investigation when obstacles arise later.
Propose 2-3 approaches with trade-offs:
Based on [research findings], I recommend:
1. **[Approach A]** (recommended)
- Pros: [benefits, especially "matches existing pattern"]
- Cons: [drawbacks]
2. **[Approach B]**
- Pros: [benefits]
- Cons: [drawbacks]
3. **[Approach C]**
- Pros: [benefits]
- Cons: [drawbacks]
I recommend option 1 because [specific reason, especially codebase consistency].
Lead with recommended option and explain why.
Once approach is chosen, present design in sections:
Show research findings:
CAPTURE for Design Discovery: When user raises concerns, hesitations, or "what if" questions:
These concerns often resurface during implementation - having the resolution documented prevents re-debating.
After design validated, create epic as immutable contract:
br create "Feature: [Feature Name]" \
--type epic \
--priority [0-4] \
--design "## Requirements (IMMUTABLE)
[What MUST be true when complete - specific, testable]
- Requirement 1: [concrete requirement]
- Requirement 2: [concrete requirement]
- Requirement 3: [concrete requirement]
## Success Criteria (MUST ALL BE TRUE)
- [ ] Criterion 1 (objective, testable - e.g., 'Integration tests pass')
- [ ] Criterion 2 (objective, testable - e.g., 'Works with existing User model')
- [ ] All tests passing
- [ ] Pre-commit hooks passing
## Anti-Patterns (FORBIDDEN)
- ❌ [Pattern] ([reasoning] - e.g., 'NO localStorage tokens (security: httpOnly prevents XSS token theft)')
- ❌ [Pattern] ([reasoning] - e.g., 'NO mocking OAuth in integration tests (validation: defeats purpose)')
## Approach
[2-3 paragraph summary of chosen approach]
## Architecture
[Key components, data flow, integration points]
## Design Rationale
### Problem
[1-2 sentences: what problem this solves, why status quo insufficient]
### Research Findings
**Codebase:**
- [file.ts:line] - [what it does, why relevant]
- [pattern discovered, implications]
**External:**
- [API/library] - [key capability, constraint discovered]
- [doc URL] - [relevant guidance found]
### Approaches Considered
#### 1. [Chosen Approach] ✓
**What it is:** [2-3 sentence description]
**Investigation:**
- Researched [X] - found [Y]
- Tested [pattern] - worked because [Z]
- Referenced [file:line] - shows [pattern]
**Pros:**
- [benefit with evidence]
**Cons:**
- [drawback and mitigation]
**Chosen because:** [specific reasoning linking to requirements and codebase patterns]
#### 2. [Rejected Approach A] ❌
**What it is:** [2-3 sentence description]
**Why we looked at this:** [what made this seem viable initially]
**Investigation:**
- Researched [X] - found [Y]
- [dead-end discovered]
**Pros:**
- [benefits it would have had]
**Cons:**
- [fatal flaw or significant drawback]
**⚠️ REJECTED BECAUSE:** [specific reasoning, linking to anti-patterns or requirements]
**🚫 DO NOT REVISIT UNLESS:** [specific condition that would change this decision]
#### 3. [Rejected Approach B] ❌ (if applicable)
**What it is:** [2-3 sentence description]
**Why we looked at this:** [what made this seem viable initially]
**Investigation:**
- [what was researched]
**Pros:**
- [benefits it would have had]
**Cons:**
- [fatal flaw or significant drawback]
**⚠️ REJECTED BECAUSE:** [specific reasoning]
**🚫 DO NOT REVISIT UNLESS:** [specific condition that would change this decision]
### Scope Boundaries
**In scope:**
- [explicit inclusions]
**Out of scope (deferred/never):**
- [explicit exclusions with reasoning]
### Open Questions
- [uncertainties to resolve during implementation]
- [decisions deferred to execution phase]
## Design Discovery (Reference Context)
> This section preserves detailed context from brainstorming for use during task creation.
> Reference this when defining tasks, handling obstacles, or validating implementation decisions.
### Key Decisions Made
| Question | User Answer | Implication |
|----------|-------------|-------------|
| [Socratic question asked] | [User's response] | [How this shapes requirements/anti-patterns] |
### Research Deep-Dives
#### [Topic 1: e.g., OAuth Library Selection]
**Question explored:** [What question drove this research?]
**Sources consulted:**
- [Source 1] - [key finding]
- [Source 2] - [key finding]
**Findings:**
- [Detailed finding 1]
- [Detailed finding 2]
**Conclusion:** [How this informed the design]
### Dead-End Paths
#### [Path: e.g., Custom JWT Implementation]
**Why explored:** [What made this seem worth investigating]
**Investigation:**
- [What was researched/tried]
**Why abandoned:** [Specific reason - links to requirements/anti-patterns]
### Open Concerns Raised
- [User concern 1] → [How it was addressed or deferred]
- [User concern 2] → [How it was addressed or deferred]"
Critical: Anti-patterns section prevents watering down requirements when blockers occur. Always include reasoning.
Example anti-patterns:
Create one task, not full tree:
br create "Task 1: [Specific Deliverable]" \
--type feature \
--priority [match-epic] \
--design "## Goal
[What this task delivers - one clear outcome]
## Implementation
[Detailed step-by-step for this task]
1. Study existing code
[Point to 2-3 similar implementations: file.ts:line]
2. Write tests first (TDD)
[Specific test cases for this task]
3. Implementation checklist
- [ ] file.ts:line - function_name() - [exactly what it does]
- [ ] test.ts:line - test_name() - [what scenario it tests]
## Success Criteria
- [ ] [Specific, measurable outcome]
- [ ] Tests passing
- [ ] Pre-commit hooks passing"
br dep add br-2 br-1 --type parent-child # Link to epic
Why only one task?
After epic and first task created:
REQUIRED: Run SRE refinement before handoff
Use Skill tool: hyperpowers:sre-task-refinement
SRE refinement will:
Do NOT skip SRE refinement. The first task sets the pattern for the entire epic.
After refinement approved, present handoff:
"Epic br-1 is ready with immutable requirements and success criteria.
First task br-2 has been refined and is ready to execute.
Ready to start implementation? I'll use executing-plans to work through this iteratively.
The executing-plans skill will:
1. Execute the current task
2. Review what was learned against epic requirements
3. Create next task based on current reality
4. Run SRE refinement on new tasks
5. Repeat until all epic success criteria met
This approach avoids brittle upfront planning - each task adapts to what we learn."
</the_process>
Developer skips research, proposes approach without checking codebase
User: "Add OAuth authentication"
Claude (without brainstorming):
"I'll implement OAuth with Auth0..."
[Proposes approach without checking if auth exists]
[Doesn't research existing patterns]
[Misses that passport.js already set up]
<why_it_fails>
Research first:
Propose approaches building on findings:
Based on codebase showing passport.js at auth/passport-config.ts:
1. Extend existing passport setup (recommended)
- Add google-oauth20 strategy
- Matches codebase pattern
- Pros: Consistent, tested library
- Cons: Requires OAuth provider setup
2. Custom JWT implementation
- Pros: Full control
- Cons: Security complexity, breaks pattern
I recommend option 1 because it builds on existing auth/ setup.
What you gain:
br create "Epic: Add OAuth"
br create "Task 1: Configure OAuth provider"
br create "Task 2: Implement token exchange"
br create "Task 3: Add refresh token logic"
br create "Task 4: Create middleware"
br create "Task 5: Add UI components"
br create "Task 6: Write integration tests"
Starts implementing Task 1
Discovers OAuth library handles refresh automatically
Now Task 3 is wrong, needs deletion
Discovers middleware already exists
Now Task 4 is wrong
Task tree brittle to reality
<why_it_fails>
br create "Epic: Add OAuth" [with immutable requirements]
br create "Task 1: Configure OAuth provider"
# Execute Task 1
# Learn: OAuth library handles refresh, middleware exists
br create "Task 2: Integrate with existing middleware"
# [Created AFTER learning from Task 1]
# Execute Task 2
# Learn: UI needs OAuth button component
br create "Task 3: Add OAuth button to login UI"
# [Created AFTER learning from Task 2]
What you gain:
br create "Epic: OAuth Authentication" --design "
## Requirements
- Users authenticate via Google OAuth2
- Tokens stored securely
- Session management
Success Criteria
- Login flow works
- Tokens secured
- All tests pass
"
During implementation, hits blocker:
"Integration tests for OAuth are complex, I'll mock it..."
[No anti-pattern preventing this]
Ships with mocked OAuth (defeats validation)
<why_it_fails>
br create "Epic: OAuth Authentication" --design "
## Requirements (IMMUTABLE)
- Users authenticate via Google OAuth2
- Tokens stored in httpOnly cookies (NOT localStorage)
- Session expires after 24h inactivity
## Success Criteria
- [ ] Integration tests pass WITHOUT mocking OAuth
- [ ] Tokens in httpOnly cookies
## Anti-Patterns (FORBIDDEN)
- ❌ NO localStorage tokens (httpOnly prevents XSS token theft)
- ❌ NO mocking OAuth in integration tests (defeats validation)
- ❌ NO new user model (use existing db/models/user.ts)
## Approach
Extend existing passport.js at auth/passport-config.ts with Google OAuth2.
Follow pattern in auth/strategies/local.ts.
"
See resources/epic-template-example.md for a complete epic with full Architecture, Design Rationale, Approaches Considered, and Design Discovery sections.
<key_principles>
<research_agents>
<critical_rules>
All of these mean: STOP. Follow the process.
<verification_checklist> Before handing off to executing-plans:
Can't check all boxes? Return to process and complete missing steps. </verification_checklist>
**This skill calls:** - hyperpowers:codebase-investigator (for finding existing patterns) - hyperpowers:internet-researcher (for external documentation) - hyperpowers:sre-task-refinement (REQUIRED before handoff to executing-plans) - hyperpowers:executing-plans (handoff after refinement approved)Call chain:
brainstorming → sre-task-refinement → executing-plans
Agents used:
Tools required:
When stuck:
npx claudepluginhub sqve/hyperpowersCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.