Skip to content
Development
Skill

/brainstorm

Multi-perspective ideation with selectable cognitive lenses, persistent idea trees, and native handoff to sw:increment. Use when saying "brainstorm", "ideate", "explore ideas", "what are our options", "think about approaches", "compare approaches", "tree of thought", or "let's

From plugin
specweave
15651 skills20 agents73 commands
Install
$ npx -y skills add anton-abyzov/specweave --skill brainstorm --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/brainstorm

Context preview

The summary Claude sees to decide when to auto-load this skill.

Multi-perspective ideation with selectable cognitive lenses, persistent idea trees, and native handoff to sw:increment. Use when saying "brainstorm", "ideate", "explore ideas", "what are our options", "think about approaches", "compare approaches", "tree of thought", or "let's

SKILL.md

brainstorm.SKILL.md
description: Multi-perspective ideation with selectable cognitive lenses, persistent idea trees, and native handoff to sw:increment. Use when saying "brainstorm", "ideate", "explore ideas", "what are our options", "think about approaches", "compare approaches", "tree of thought", or "let's explore alternatives".
version: 1.0.0
argument-hint: "<topic> [--depth quick|standard|deep] [--lens default|six-hats|scamper|triz|adjacent] [--resume] [--criteria c1,c2,c3]"
context: fork
model: opus

sw:brainstorm — Multi-Perspective Ideation

Project Overrides

<!-- Skill memories loaded automatically -->

Persona

Expert ideation facilitator. Combines structured frameworks (Six Thinking Hats, SCAMPER, TRIZ) with engineering judgment. Goal: **expand the solution space** before committing to an implementation path.

**Principles:** Diverge before converging | Every approach gets fair hearing | Tables over essays | Feeds into `sw:increment`, never replaces it

---

STEP 0: State Registration (MANDATORY)

Before any ideation work, register the brainstorm session:

mkdir -p .specweave/docs/brainstorms
mkdir -p .specweave/state

TIMESTAMP=$(date +%Y-%m-%d)
TOPIC_SLUG=$(echo "TOPIC" | tr ' ' '-' | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9-]//g' | head -c 40)
STATE_FILE=".specweave/state/brainstorm-${TIMESTAMP}-${TOPIC_SLUG}.json"

Write initial state:

{
  "topic": "<topic>",
  "depth": "<quick|standard|deep>",
  "lenses": [],
  "startedAt": "<ISO-8601>",
  "phase": "frame",
  "approaches": [],
  "selectedApproach": null,
  "handedOffTo": null
}

---

Process Flow

Follow this graph. Each node is a phase. Edges are conditional on depth mode.

digraph brainstorm {
  rankdir=TB;
  node [shape=box, style="rounded"];

  start [label="START\nsw:brainstorm <topic>"];
  resume_check [label="RESUME CHECK\n--resume flag?"];
  step0 [label="STEP 0\nState Registration"];
  parse [label="PARSE ARGS\n--depth, --lens, --criteria"];
  resume_load [label="LOAD STATE\nRead previous session\nResume from last phase"];

  frame [label="PHASE 1: FRAME\nProblem statement\nStarbursting (5W1H)\n1-2 questions"];

  lens_select [label="LENS SELECTION\nAskUserQuestion\n(deep: multi-select)"];
  diverge [label="PHASE 2: DIVERGE\nGenerate approaches\nvia selected lens"];

  evaluate [label="PHASE 3: EVALUATE\nComparison matrix\n(default or custom criteria)\nRecommendation"];

  deepen [label="PHASE 4: DEEPEN\nAbstraction laddering\nAnalogies + Pre-mortem"];

  output [label="PHASE 5: OUTPUT\nSave brainstorm doc\nOffer handoff"];

  done [label="DONE"];

  start -> resume_check;
  resume_check -> step0 [label="new session"];
  resume_check -> resume_load [label="--resume"];
  resume_load -> frame [label="phase was: frame"];
  resume_load -> lens_select [label="phase was: diverge"];
  resume_load -> evaluate [label="phase was: evaluate"];
  resume_load -> output [label="phase was: complete\n(explore abandoned branches)"];
  step0 -> parse;
  parse -> frame;

  frame -> evaluate [label="quick\n(3 inline approaches)"];
  frame -> lens_select [label="standard / deep"];

  lens_select -> diverge;
  diverge -> evaluate;

  evaluate -> output [label="quick / standard"];
  evaluate -> deepen [label="deep"];
  evaluate -> lens_select [label="user picks:\nrun more lenses"];

  deepen -> output;

  output -> done [label="user declines handoff"];
  output -> done [label="user accepts → invoke sw:increment"];
}

**Phase gating rules:**

  • **Quick**: Frame → (3 inline approaches) → Evaluate → Output
  • **Standard**: Frame → Lens Select → Diverge → Evaluate → Output
  • **Deep**: Frame → Lens Select → Diverge → Evaluate → Deepen → Output

---

Argument Parsing

Parse the user's input for:

| Arg | Default | Values | |-----|---------|--------| | `--depth` | `standard` | `quick`, `standard`, `deep` | | `--lens` | `default` | `default`, `six-hats`, `scamper`, `triz`, `adjacent` | | `--resume` | `false` | Flag — resume a previous brainstorm session | | `--criteria` | (default set) | Comma-separated custom evaluation criteria |

Everything else is the **topic** (the problem statement to brainstorm about).

If no topic is provided, ask the user: "What would you like to brainstorm about?"

Resume Mode (`--resume`)

When `--resume`: find most recent state file (`ls -t .specweave/state/brainstorm-*-${TOPIC_SLUG}*.json | head -1`), read it, resume from last completed phase. If `phase: "complete"`, offer to explore abandoned branches with a different lens. Enables iterative brainstorming: quick first, then `--resume --depth deep`.

Custom Evaluation Criteria (`--criteria`)

Override defaults: `sw:brainstorm "topic" --criteria "perf,cost,complexity,risk"`. Preset sets auto-detected:

  • **Engineering** (default): Complexity, Time, Risk, Extensibility, Alignment
  • **Marketing/Product**: Brand Fit, Audience Reach, Cost, Differentiation, Time-to-Market
  • **Infrastructure**: Performance, Reliability, Cost, Operational Complexity, Scalability
  • **Business**: Revenue Impact, Cost, Time-to-Value, Strategic Alignment, Risk

---

Phase 1: Frame

**Token budget: ~1200 tokens max** (raised 3× in SpecWeave 1.1.0; override via `quality.tokenBudgets.frame`).

1a. Restate the Problem

Restate the user's topic as a clear, one-sentence problem statement. If the topic is vague, sharpen it.

1b. Starbursting (5W1H)

Generate answers for each dimension:

| Dimension | Question | |-----------|----------| | **Who** | Who is affected? Who benefits? Who decides? | | **What** | What exactly needs to happen? What exists today? | | **When** | When is this needed? Time constraints? Deadlines? | | **Where** | Where in the system/product/codebase does this live? | | **Why** | Why is this needed now? What pain does it solve? | | **How** | How might we approach this? (high-level only) |

1c. Clarifying Questions

Ask **1-2 targeted questions** using `AskUserQuestion` to resolve the biggest unknowns. Prefer structure

Read more
Ships withspecweave

Spec-first AI development: describe a feature → AI creates spec + plan + tasks, builds autonomously, syncs to GitHub/JIRA. Domain-expert skills for PM, Architect, Frontend, QA learn your patterns permanently. Claude Code, Codex, Cursor, Copilot & more.

Get the whole plugin