home / skills / georgekhananaev / claude-skills-vault / brainstorm

brainstorm skill

/.claude/skills/brainstorm

This skill helps transform ideas into fully formed designs through collaborative dialogue and phased validation.

npx playbooks add skill georgekhananaev/claude-skills-vault --skill brainstorm

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
6.3 KB
---
name: brainstorm
description: Transform ideas into fully-formed designs through collaborative dialogue. This skill should be used when brainstorming features, exploring implementation approaches, designing system architecture, or when the user has a vague idea that needs refinement. Uses incremental validation with 200-300 word sections.
---

# Brainstorm

Transform ideas into fully-formed designs and specs through natural collaborative dialogue.

## When to Use

- User has an idea that needs refinement ("I want to add...")
- Feature requires design exploration before implementation
- Multiple valid approaches exist and trade-offs need evaluation
- Requirements are unclear or partially defined
- User explicitly asks to brainstorm, design, or spec out a feature

## The Process

### Phase 1: Context Gathering

Before asking questions, understand the current state:

```
1. Check project structure (Glob key directories)
2. Review recent commits (git log --oneline -10)
3. Read relevant existing code/docs
4. Identify patterns and conventions already in use
```

### Phase 2: Idea Refinement

**Core Principle: One question at a time.**

Ask questions to understand the idea. Prefer multiple-choice when possible:

```
Use AskUserQuestion with:
- 2-4 options per question
- Clear, mutually exclusive choices
- Your recommended option first (with reasoning)
```

**Question Categories:**

| Category | Example Questions |
|----------|-------------------|
| Purpose | What problem does this solve? Who benefits? |
| Constraints | Must integrate with X? Budget/time limits? |
| Success | How do we know it worked? Key metrics? |
| Scope | What's explicitly NOT included? |
| Prior Art | Seen similar elsewhere? What worked/didn't? |

**Exit Criteria:** Stop asking when purpose, constraints, and success criteria are clear.

### Phase 3: Approach Exploration

Present 2-3 approaches with trade-offs:

```markdown
## Approach A: [Name] (Recommended)
- **Pros**: ...
- **Cons**: ...
- **Best when**: ...

## Approach B: [Name]
- **Pros**: ...
- **Cons**: ...
- **Best when**: ...
```

**Lead with recommendation** and explain why. Ask user to confirm or discuss.

### Phase 4: Incremental Design Presentation

Once approach is selected, present the design in sections:

**CRITICAL: Each section must be 200-300 words max.**

After each section, ask:
> "Does this section look right so far? Any adjustments needed?"

**Section Order:**

1. **Overview** - Goal, scope, success metrics
2. **Architecture** - Components, data flow, boundaries
3. **Data Model** - Schema, relationships (if applicable)
4. **Error Handling** - Failure modes, recovery strategies
5. **Testing Strategy** - What to test, how to test

Only proceed to next section after user confirms current section.

**Be flexible:** If something doesn't make sense, go back and clarify. The process is not rigid.

### Phase 5: Documentation

After all sections validated:

1. Compile into single design document
2. Use `elements-of-style` skill for clarity
3. Write to `docs/plans/YYYY-MM-DD-<topic>-design.md`
4. Commit the design document to git

### Phase 6: Implementation Setup (Optional)

After documentation is complete, ask:

> "Ready to set up for implementation?"

If yes:
1. Use `using-git-worktrees` to create isolated workspace
2. Use `/plan-feature` command to create detailed implementation plan with TDD tasks

## Question Patterns

### Good Questions (Multiple Choice)

```
AskUserQuestion:
  question: "How should we handle failed API calls?"
  options:
    - label: "Retry with backoff (Recommended)"
      description: "Automatic retry 3x with exponential backoff. Best for transient failures."
    - label: "Fail immediately"
      description: "Return error to user right away. Simpler but less resilient."
    - label: "Queue for later"
      description: "Store and retry in background. Good for non-critical operations."
```

### Good Questions (Open-ended)

Use when options aren't clear-cut:

- "What existing functionality should this integrate with?"
- "Are there any similar features in other products you'd like to emulate?"
- "What's the worst-case failure scenario we need to handle?"

## YAGNI Ruthlessly

During design, actively remove unnecessary features:

| Red Flag | Question to Ask |
|----------|-----------------|
| "It might be useful to..." | "Do we need this for MVP?" |
| "We could also add..." | "Is this solving the stated problem?" |
| "Just in case..." | "What's the likelihood this is needed?" |
| "This would be nice..." | "Is this a requirement or a want?" |

**Default answer: Remove it.** Can always add later.

## Design Document Template

```markdown
# Feature: [Name]
Date: YYYY-MM-DD

## 1. Overview
**Goal**: [One sentence]
**Success Metrics**: [How we measure success]
**In Scope**: [What we're building]
**Out of Scope**: [What we're NOT building]

## 2. Architecture
[Diagram or description of components]

### Data Flow
[Step-by-step flow]

## 3. Data Model (if applicable)
[Schema changes, relationships]

## 4. Error Handling
| Scenario | Response |
|----------|----------|
| ... | ... |

## 5. Testing Strategy
| Type | Coverage | Focus |
|------|----------|-------|
| Unit | ... | ... |
| Integration | ... | ... |
| E2E | ... | ... |

## 6. Open Questions
[Any unresolved decisions]
```

## Anti-Patterns

| Don't | Do Instead |
|-------|------------|
| Ask 5 questions at once | One question per message |
| Present design all at once | 200-300 word sections, validate each |
| Skip context gathering | Always check project state first |
| Present only one approach | Always show 2-3 with trade-offs |
| Assume requirements | Ask until crystal clear |
| Over-engineer MVP | YAGNI - remove the unnecessary |
| Write design without validation | Get user confirmation at each step |

## Execution Flow

```
CONTEXT → REFINE → EXPLORE → PRESENT → DOCUMENT → IMPLEMENT
   │         │         │         │          │          │
 Git/Files  1 Q at   2-3 opts  200-300   docs/plans/  git-worktrees
            a time   w/recs    sections  + commit     + /plan-feature
```

---

## Integration

**Pairs with:**

- `gemini-cli` - Get alternative perspectives during approach exploration (Phase 3)
- `elements-of-style` - Apply when writing design documents (Phase 5)
- `using-git-worktrees` - Create isolated workspace for implementation (Phase 6)
- `/plan-feature` command - Create detailed TDD implementation plans (Phase 6)

Overview

This skill transforms vague ideas into fully formed designs and specs through collaborative, incremental dialogue. It guides a structured process—from context gathering and focused questioning to approach comparison and stepwise design sections—so teams reach clear, implementable decisions. Use it to reduce ambiguity, evaluate trade-offs, and produce a committed design document ready for implementation.

How this skill works

The skill inspects project context (directory structure, recent commits, and relevant code/docs) and then asks one clear question at a time to refine purpose, constraints, and success metrics. It presents 2–3 approaches with trade-offs and leads the user to select one. After selection, it delivers the design in 200–300 word sections (Overview, Architecture, Data Model, Error Handling, Testing) and waits for confirmation before proceeding. Once validated, it compiles the final design and offers optional implementation setup steps like worktrees and TDD plans.

When to use it

  • You have a vague idea that needs concrete scope and success criteria.
  • Designing a feature that has multiple viable implementation approaches.
  • Clarifying constraints, integrations, or unknown dependencies before coding.
  • Preparing a design document for team alignment or PRs.
  • Exploring architecture or data model changes before implementation.

Best practices

  • Gather project context first: check key directories, recent commits, and existing patterns.
  • Ask one question at a time; prefer 2–4 mutually exclusive choices with a recommended option.
  • Always show 2–3 approaches and lead with a recommendation and trade-offs.
  • Present design in 200–300 word sections and stop for confirmation after each section.
  • Apply YAGNI: ruthlessly remove nonessential features for the MVP.

Example use cases

  • Convert a product request like “add offline sync” into a scoped design with success metrics and tests.
  • Decide between microservice vs. monolith approaches with clear pros/cons and recommended option.
  • Design a new database schema and migration plan with relationships and rollback strategies.
  • Draft error-handling and retry strategies for flaky third-party APIs with trade-off analysis.
  • Produce a final design doc and create an implementation worktree plus a TDD-backed plan.

FAQ

How long are the design sections?

Each section is intentionally limited to 200–300 words to keep feedback loops fast and focused.

What happens if requirements change mid-design?

The process is flexible: pause, ask targeted clarification questions, adjust scope, and restart the section flow as needed.