# Brainstorming Pattern

Required design refinement for non-trivial concepts before implementation.

## Purpose

Refine rough ideas into clear designs through drafting, self-critique, and trade-off surfacing. Prevents building the wrong thing.

## When to Use

**Required for:**
- New tool concepts (skills, agents, commands)
- Significant architectural changes
- User has nascent idea not ready for implementation
- Multiple valid approaches exist

**Skip when:**
- User gives clear, unambiguous instructions
- Task is purely mechanical (file moves, renames)
- Fixing specific bugs with obvious solutions
- User explicitly says "just do it"

## Core Principles

1. **Draft first, ask later.** Don't interrogate the user. Use judgment to draft, then surface gaps.

2. **Conceptual, not implementation.** Output is design decisions and constraints. Implementation details come later.

3. **Always checkpoint.** Write a defer file after critique. Nothing is lost if user leaves.

4. **Self-critique before presenting.** Find your own issues before the user does.

## Implementation Checklist

Tools implementing this pattern must:

- [ ] Detect when brainstorming is needed (vs execution)
- [ ] Draft a complete conceptual design first
- [ ] Self-critique against domain anti-patterns
- [ ] Surface trade-offs requiring user decisions
- [ ] Write checkpoint to `.claude/deferred/`
- [ ] Give user clear options: leave or continue

## Workflow Structure

```
1. Understand intent (1-2 questions max)
   └─→ What problem? Who consumes it? Constraints?

2. Draft conceptual design
   └─→ Purpose, decisions, structure, constraints
   └─→ Identify script candidates (mechanical, repeatable components)

3. Self-critique
   └─→ Alignment with intent
   └─→ Domain anti-patterns
   └─→ Missing pieces
   └─→ Over-engineering

4. Present and checkpoint
   └─→ Show design
   └─→ Write defer file
   └─→ Offer: leave or continue

5. Resolution (if continuing)
   └─→ Work through trade-offs
   └─→ Dispatch subagents for implementation
```

## Output Format

```markdown
## Purpose
What this solves, in one paragraph.

## Design Decisions
- Decision 1: choice and why
- Decision 2: ...

## Structure
Conceptual architecture - components, relationships, boundaries.

## Constraints
- What this must do
- What this must NOT do

## Open Questions
- Questions that surfaced during drafting
```

## Anti-patterns

**Question barrage:** Asking 5+ questions before drafting anything. Draft with assumptions, then validate.

**Implementation creep:** Including file paths, code snippets, exact structures. Stay conceptual.

**Skipping critique:** Presenting first draft without self-review. Always critique before showing.

**Forced brainstorming:** Brainstorming when user gave clear instructions. Most interactions are execution, not exploration.

## Script Identification

When refining a skill design, identify which components are mechanical vs. judgment-based. Mechanical components (validation, scaffolding, structured transformations) are script candidates—note these in the design output. See [Deterministic Scripting](deterministic-scripting.md) for heuristics and language selection.

## Cross-references

- [Defer Work](../defer-work/workflow.md) - Checkpoint mechanism
- [Domain Hooks](../brainstorming/domain-hooks.md) - Domain-specific questions
- [Deterministic Scripting](deterministic-scripting.md) - When to use scripts vs AI
