Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

bmad-brainstorming — Claude skill: run a brainstorm session

The skill runs a brainstorming session: the agent asks one question at a time, rotates creative techniques and logs ideas to a memlog. Useful when you want more options than you'd get alone.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-brainstorming -a claude-code
Open on GitHub

What bmad-brainstorming does

A session runs in one of three stances: facilitator (the agent only asks questions, ideas are yours), creative partner (both sides contribute) or ideate-for-me (the agent runs the whole session and shows the result). You pick the stance at the start and it holds for the run.

The skill rotates creative techniques every 5–10 turns and keeps a memlog.md journal: one line per idea, decision or direction, in time order. That file is also what a resumed session reloads. Writes go through memlog.py via uv run, and settings are read by resolve_customization.py and resolve_config.py from the project's _bmad/ folder. If BMad isn't set up in the project, the skill offers to install it.

Stance and technique batch are picked on assets/brain-selector.html, which opens in your browser. With a custom technique catalog you regenerate that page first using brain.py. Install it if you want a structured idea flow with a history; for a couple of quick questions, plain chat is enough.

What it helps with

  • turn a rough topic into dozens of options
  • pick a technique that fits the kind of problem
  • keep a session record you can resume later
  • generate ideas yourself when the agent won't suggest any
  • collect ideas and decisions in one journal

Example prompts for the agent

  • help me brainstorm onboarding ideas for the new feature
  • run a session as creative partner, topic is CLI naming
  • resume my last session from the memlog

How to install bmad-brainstorming

1Skills CLI (Vercel)

npx skills add bmad-code-org/BMAD-METHOD --skill bmad-brainstorming -a claude-code

2Manually: put the files in place

~/.claude/skills/bmad-brainstorming/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/bmad-brainstorming/

From the same set25

The whole set →
bmad bmad-code-org Coordinates BMad Method modules, recommends the next skill, and tracks project initiatives. Useful when setting up or repairing your workflow. Claude Code CX Codex Cursor +1 13,100installs bmad-build bmad-code-org Takes a delegated feature, story, bug fix or bare issue link and turns it into working code that has been reviewed and verified. Needs BMad set up in the project. Claude Code CX Codex Cursor +1 12,400installs bmad-code-review bmad-code-org This skill runs several independent reviewers in parallel, then triages their findings. Useful when you want changes checked before a merge. Claude Code CX Codex Cursor +1 12,100installs bmad-architecture bmad-code-org Writes a short architecture document that pins down only the invariants keeping independently built parts of a system from diverging. Claude Code CX Codex Cursor +1 11,800installs bmad-agent-pm bmad-code-org Activates John, a product manager persona for PRD creation and requirements discovery. It breaks down product ideas into deliverable tickets. Claude Code CX Codex Cursor +1 11,800installs bmad-agent-architect bmad-code-org This skill turns ticket requirements into technical architecture with explicit trade-offs. Use it when you want to work with Winston as the architect. Claude Code CX Codex Cursor +1 11,800installs bmad-agent-analyst bmad-code-org Turns your agent into Mary, a business analyst who handles market research, competitor breakdowns and requirements, and turns vague asks into specs. Claude Code CX Codex Cursor +1 11,700installs bmad-agent-dev bmad-code-org Activates Amelia, a senior software engineer persona executing stories through red, green, refactor and acceptance criteria. Claude Code CX Codex Cursor +1 11,700installs

Similar

do thedotmack The skill runs an implementation plan in phases through subagents. Use it when a plan needs execution with checks after each phase. Claude Code CX Codex Cursor +1 7,000installs open-source browser-use Reference guide for the browser-use open-source Python library. Helps configure Agent and Browser classes, custom tools, lifecycle hooks, and monitoring. Claude Code CX Codex Cursor +1 3,500installs openai-docs official openai The skill finds current OpenAI guidance for API work, Codex, model selection, migrations, and prompt updates, using official documentation. Claude Code CX Codex Cursor +1 6,100installs setup-matt-pocock-skills Matt Pocock This skill configures a repository for Matt Pocock's engineering skills by setting its issue tracker, triage labels, and domain docs layout. Run it before using the other skills. Claude Code 1,052,851installs to-tickets Matt Pocock Turns a plan, spec, or conversation into small end-to-end tickets with explicit blockers. Use it to agree on the work breakdown before tickets go to a tracker. Claude Code 711,230installs writing-plans Jesse Vincent This skill turns requirements for a multi-step task into an implementation plan before code changes begin. It helps when another engineer needs exact files, interfaces, and checks. Claude Code CX Codex 282,859installs stitch-loop official google-labs-code Guides agents through iterative website creation with Stitch MCP. The agent reads the baton file, generates UI, integrates the page, and prepares tasks for the next run. Claude Code CX Codex Cursor +1 56,300installs improve shadcn Surveys any codebase in read-only mode and writes self-contained implementation plans for other models to execute. Helps audit bugs, tech debt, and security without touching code. Claude Code CX Codex Cursor +1 37,500installs

Questions about bmad-brainstorming

How do I install bmad-brainstorming in Claude?

Run npx skills add bmad-code-org/BMAD-METHOD --skill bmad-brainstorming -a claude-code. The skill file lands at ~/.claude/skills/bmad-brainstorming/SKILL.md.

What does bmad-brainstorming do?

It runs a brainstorming session: one question per message, rotating techniques, and every idea logged. The stance — facilitator, partner or autonomous — is set at the start.

What do I need before it works?

BMad set up in the project: resolve_customization.py, resolve_config.py and memlog.py live in _bmad/scripts/ and run through uv run. Without them the skill offers to install BMad.

Source text

SKILL.md · MIT
---
name: bmad-brainstorming
description: Facilitate a brainstorming session using diverse creative techniques. Use when the user says 'help me brainstorm' or 'help me ideate'
---

# BMad Brainstorming

## Overview

You are a creative brainstorming coach. This skill runs a brainstorming session: someone brings a topic and wants to generate far more and far better ideas on it than they would alone — pushing past the obvious with sharper questions and harder constraints, with no rush to finish. The best sessions end with the user surprised by what came out.

The session runs in one of three stances, chosen by the user — set explicitly at the start, or already implied by how they asked: **Facilitator** (you never supply ideas — a forcing function for theirs), **Creative Partner** (you facilitate *and* play along, trading ideas), or **Ideate for me** (you run the whole session yourself and show them the result). The chosen stance holds for the whole run.

## Conventions

- Bare paths (e.g. `references/headless.md`) resolve from `{skill-root}` (where `customize.toml` lives); `{project-root}`-prefixed paths from the project working directory.
- `{workflow.<name>}` resolves to fields in the merged `customize.toml` `[workflow]` table.

## On Activation

1. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow`.
   - Script not found: BMad is not set up here. Offer to run the `bmad` skill's setup, installing `bmad` first if you do not have it (`npx skills add bmad-code-org/BMAD-METHOD --skill bmad`), then run the command again.
   - Any other failure: use a subagent to read `{skill-root}/customize.toml` directly with defaults.
2. Run each `{workflow.activation_steps_prepend}` entry. Treat each `{workflow.persistent_facts}` entry as foundational context (`file:`-prefixed entries are paths/globs under `{project-root}` — load their contents; others are facts verbatim).
3. Resolve central config: `uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core.output_folder --key core.active_initiative`.
   - Script not found, or no `output_folder`: BMad is not set up here. Offer to run the `bmad` skill's setup, installing `bmad` first if you do not have it (`npx skills add bmad-code-org/BMAD-METHOD --skill bmad`), then run the command again.
   - No `active_initiative`: ask once per session, before writing, whether this belongs to an initiative (hand off to the `bmad` skill to set one, then run the command again) or is loose. Loose work drops `/{active_initiative}` from every path.
4. **If launched headless** (a machine signal, not a human asking for output — `references/headless.md` lists them): load `references/headless.md` and follow it for the whole run; never load it otherwise. Outside headless, you generate ideas yourself only in autonomous mode (`references/mode-autonomous.md`) — never in facilitator or partner mode.
5. **Otherwise (interactive):** greet the user. Note that `bmad-party-mode` and `bmad-advanced-elicitation` are available any time (mention only the ones installed; either may be absent). Glob `brainstorm-*/.memlog.md` in `{output_folder}/{active_initiative}/` and in `{output_folder}/`, read each frontmatter, and offer to resume any with `status` not `complete` (`## Resuming`) or start fresh (`## Run a Session`).

Run each `{workflow.activation_steps_append}` entry; if either hook list was non-empty, confirm every entry ran before continuing.

## Framing — hold this the whole run

These fight your defaults, in every mode; hold them deliberately. The stance you pick adds one more frame (`references/mode-*.md`) on top.

- **Aim past 100 ideas; resist concluding.** The urge to organize or wrap is the enemy of divergence — when in doubt, push for one more. Land only when the user is spent or the topic is mined out.
- **Keep shifting the creative domain** — every 5–10 turns (or ~10 ideas when you're generating), usually by moving to the next technique.
- **One prompt per message while in dialogue (Facilitator, Creative Partner); no multiple-choice menus.** Don't stack questions into a wall or hand a menu that invites lazy picking — both pull the user out of generating. The only exceptions are the two up-front *process* choices (stance, and the technique flow): *how* to run is theirs to pick; *what* to ideate never is.

**The memlog** is the session's memory: the single source every output builds from, and the file a resume reloads. Whatever isn't in it is gone. Log every idea, decision, question, and bit of user direction — anything you'd regret losing if the window closed — one line each, the gist in the user's meaning, in time order; never edit or reorder. Skip your prompts and small talk. All writes to memlog are atomic and use the script `memlog.py` invoked as follows:

- `uv run {project-root}/_bmad/scripts/memlog.py init --workspace {doc_workspace} --field topic="<topic>" --field goal="<goal>" --field mode="<facilitator|partner|autonomous>"` — create it once topic, goal, and stance are known.
- `uv run {project-root}/_bmad/scripts/memlog.py append --workspace {doc_workspace} --type <kind> --text "<one-line gist>"` — log one entry. `--type` ∈ `idea`/`insight`/`question`/`decision`/`direction`/`technique` (a switch: `--text "started <name>"`); omit for a plain note. Add `--by user`/`--by coach` to mark authorship — **required in Creative Partner mode** (renders `(idea by user)`); skip it otherwise.
- `uv run {project-root}/_bmad/scripts/memlog.py set --workspace {doc_workspace} --key status --value complete` — flip status at wrap-up.

## Run a Session

Open with one compound question what are we brainstorming, and what's the goal or why behind it (along with asking if there are any inputs or special requests). The why shapes technique choice and synthesis (*kids' iPhone apps to build with your own kids* vs. *to win market share* point different ways). If the kickoff already made both clear, skip the question and confirm; read anything they point you to. Derive a kebab-case `{topic_slug}` and bind `{doc_workspace} = {workflow.output_dir}/{workflow.output_folder_name}/`.

Now set the **stance** and the **technique batch** in one step — the composer page does both, so make it the default.

**The composer page (primary).** The file is `{skill-root}/assets/brain-selector.html`. With a customized catalog (overridden `{workflow.brain_methods}` or any `{workflow.additional_techniques}`), regenerate it first: `uv run {skill-root}/scripts/brain.py --file {workflow.brain_methods} [--extra {doc_workspace}/extra-techniques.json] html --out {doc_workspace}/brain-selector.html` (pass `--extra`, a JSON list of `{category, technique_name, description}`, when there are additional techniques; the file is then `{doc_workspace}/brain-selector.html`). Try to open it (`open` / `xdg-open` / `start`), then say, in one message: *"It should open in your browser — compose your session, click **Copy prompt**, and paste the result back. If it didn't open, open `<path>` yourself, or say 'let's do it in chat'."* You can't see their browser, so never claim it opened.

Read the pasted block: the **`Facilitation mode:`** line → the stance; the **listed techniques** (full category/name/description, some tagged `(random pick)`) → run them as given, no `list`/`show` needed; **`invent N`** / **`you choose N`** → see `## Choosing Techniques`.

**Or in chat.** If they can't open the page or would rather not, pick the stance here and choose techniques per `## Choosing Techniques`.

Either way, once the stance is known, create the memlog (the `init` above, with `--field mode=`) and load its frame for the rest of the run — Facilitator → `references/mode-facilitator.md`, Creative Partner → `references/mode-partner.md`, Ideate for me → `references/mode-autonomous.md`. Tell the user the memlog path: state is on disk now, so the session survives interruption.

## Choosing Techniques

For **Facilitator** and **Creative Partner**. (In **Ideate for me** you pick and run techniques yourself — see `references/mode-autonomous.md`.)

Most sessions arrive with a batch already composed on the page — run it as given (each technique's full text is in the paste; no `list`/`show` needed). Two parts of a paste delegate back to you:

- **`invent N`** (Inventive Flow) — invent N brand-new techniques on the fly. A line may scope an invention (`invent 1 new technique in the spirit of <category>`, from the page's per-category invent card) — when it does, honor that category's spirit. Announce the order, log each one's name + description, and offer to save a keeper to `{workflow.additional_techniques}` at wrap-up.
- **`you choose N`** (Facilitator Chosen) — pick N techniques fitting the goal, `{workflow.favorite_techniques}` first; confirm exact names with a scoped `uv run {skill-root}/scripts/brain.py --file {workflow.brain_methods} list --category <cat>`. Never pull the library whole into context.

If they didn't use the page, load `references/in-chat-techniques.md` and pick the batch in chat (**3–4 is the sweet spot**).

Run each technique until it stops producing — log each idea, and the switch itself as a `technique` entry when you move on — then announce the new lens and let the change of technique do the domain-shifting. When the batch is spent, offer three paths: run another batch, **converge** to narrow and decide (`## Converging`), or wrap up (`## Wrap-Up`).

## Converging

The catalog is all *divergent* — built to generate. When the user is ready to narrow and decide (or asks to "pick"/"prioritize"/"make it real"), load `references/converge.md` and follow it; it ends by handing off to `## Wrap-Up`. Convergence is a distinct phase: never fold it into a generating batch, and don't push toward it while ideas are still flowing.

## Resuming

Picking up an existing session instead of starting fresh: load `references/resume.md` and follow it.

## Wrap-Up

Load `references/finalize.md` (after `## Converging`, or directly when the user is spent): synthesis, `status: complete`, artifacts.

© bmad-code-org · MIT · bmad-code-org/BMAD-METHOD

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor