Agent skill

brainstorm

Use when starting any non-trivial feature, design, or behavior change - before writing code or creating tasks. Guides collaborative design exploration through focused questioning to produce a validated spec.

Stars 0
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/randalmurphal/claude-config/tree/main/skills/brainstorm

SKILL.md

Brainstorming

Overview

Turn ideas into fully formed designs through focused collaborative dialogue before any implementation begins.

Core principle: Understand the problem completely before proposing solutions. One question at a time. YAGNI ruthlessly.

Announce at start: "I'm using the brainstorming skill to explore the design before we build anything."

When to Use

  • New features or components
  • Behavior changes to existing systems
  • Refactors with multiple valid approaches
  • Anything where jumping straight to code would be premature

Skip for: Typos, one-line fixes, config changes, tasks with crystal-clear requirements already written.

The Process

Phase 1: Understand the Idea

Ask questions to understand what's actually needed. One question per message. Prefer multiple-choice when possible (reduces cognitive load).

Good questions:

  • "Is this for internal use or public-facing?" (scoped)
  • "Which of these matters more: speed or correctness?" (prioritization)
  • "Does this need to work with X, or is it standalone?" (boundaries)

Bad questions:

  • "Can you describe the entire feature?" (too broad)
  • "What are all the requirements?" (lazy, makes human do the work)

Stop asking when you can explain the feature back to them and they say "yes, that's it."

Phase 2: Explore Approaches

Propose 2-3 approaches with clear trade-offs. Always include a recommendation and why.

markdown
## Approaches

### A: [Name] (Recommended)
- How: [brief description]
- Pro: [main advantage]
- Con: [main disadvantage]

### B: [Name]
- How: [brief description]
- Pro: [main advantage]
- Con: [main disadvantage]

**Recommendation:** A because [specific reason for this project].

YAGNI ruthlessly - Remove unnecessary features from all proposals. "We could also add X" is not helpful unless X was requested.

Phase 3: Present the Design

Once approach is agreed, present the design in chunks of 200-300 words. Ask after each chunk: "Does this look right so far?"

Don't dump a 2000-word spec. Break it up:

  1. Architecture / high-level approach
  2. Key interfaces / data structures
  3. Edge cases / error handling
  4. Testing strategy

Phase 4: Document

After validation, produce a clean design document:

markdown
# [Feature Name] Design

## Goal
[One sentence]

## Approach
[2-3 sentences]

## Success Criteria
- [ ] Measurable outcome 1
- [ ] Measurable outcome 2

## Key Decisions
- [Decision]: [Rationale]

## Non-Goals
- [Thing we're explicitly NOT doing]

## Constraints
- [Hard requirement]

## Migration/Removal (if replacing existing code)
| Old Code | New Code | Action |
|----------|----------|--------|
| [existing file/system] | [replacement] | DELETE / KEEP / MIGRATE |

**Rules:**
- DELETE = remove entirely, no fallback
- KEEP = explicitly needed for compatibility (state why)
- MIGRATE = data migration required before deletion

**No hedging.** "Deprecate or migrate" is not an action. Pick one.

## Testing Strategy
- [How we verify this works]

Common Mistakes

Mistake Fix
Asking too many questions at once One question per message
Proposing solutions before understanding Finish Phase 1 first
Including unrequested features YAGNI - remove them
Presenting one approach Always 2-3 with recommendation
Giant spec dump Break into 200-300 word chunks
Skipping validation Ask "does this look right?" after each section

Red Flags

Never:

  • Start coding before design is validated
  • Add "nice to have" features unprompted
  • Present design without getting approach agreement first
  • Skip the chunked presentation (giant dumps get skimmed, not read)
  • Use hedging language for code removal ("deprecate or migrate", "keep for compatibility")
  • Leave old code fate ambiguous — DELETE or KEEP with explicit rationale

Always:

  • One question at a time
  • Multiple-choice when possible
  • YAGNI every proposal
  • Get explicit sign-off before proceeding

Expand your agent's capabilities with these related and highly-rated skills.

randalmurphal/claude-config

agent-prompting

Write effective prompts for Task tool sub-agents, slash commands, and system prompts. Covers Claude 4.x prompting patterns, context engineering, output format specification, and parallel delegation. Use when spawning sub-agents, creating slash commands, or writing system prompts.

0 0
Explore
randalmurphal/claude-config

test-driven-development

Use when implementing any feature, bug fix, or behavior change - before writing implementation code. Enforces strict RED-GREEN-REFACTOR cycle where tests are written and seen failing before any production code exists.

0 0
Explore
randalmurphal/claude-config

spec-formats

Templates for brainstorm artifacts and manifest.json. Load when using /spec.

0 0
Explore
randalmurphal/claude-config

review-initiative

Use after /breakdown-work or manual initiative creation, before running tasks. Use when initiative has 5+ tasks, multiple dependencies, or references a design document.

0 0
Explore
randalmurphal/claude-config

MCP Integration

Set up and use MCP (Model Context Protocol) servers to extend Claude Code capabilities including PRISM semantic memory, filesystem access, and database integration. Use when setting up MCP servers, debugging MCP connections, or understanding MCP tool usage.

0 0
Explore
randalmurphal/claude-config

systematic-debugging

Use when debugging any failure, bug, or unexpected behavior - especially before attempting any fix. Enforces root cause investigation before implementation to prevent fix-thrashing and symptom-masking.

0 0
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results