
BMad Brainstorming
FreeFacilitate creative brainstorming sessions with diverse techniques.
Free · Opens the source repo
What BMad Brainstorming does
BMad Brainstorming is a skill designed to enhance the ideation process by guiding users through structured brainstorming sessions. When activated, this skill allows users to explore a topic in depth, generating a wealth of ideas that go beyond surface-level thinking. The skill encourages creativity by pushing users to think critically and ask sharper questions, while also applying various creative techniques to keep the session dynamic and engaging. The ultimate goal is to leave users surprised by the ideas generated, fostering a sense of innovation and discovery.
The skill operates in three distinct modes, enabling users to choose how they want to engage with the brainstorming process. In the Facilitator mode, the skill prompts users to generate their own ideas without providing suggestions, serving as a catalyst for their creativity. In Creative Partner mode, the skill actively participates in the ideation process, exchanging ideas with the user to build on their thoughts. Finally, in Ideate for me mode, the skill takes full control of the session, generating ideas independently based on the user's topic and goals. This flexibility allows users to tailor their brainstorming experience to their needs and preferences.
To ensure a productive session, BMad Brainstorming emphasizes the importance of logging every idea and decision made during the process. It uses a structured memory log to capture insights, questions, and directions, which can be referenced later. This feature not only helps in tracking the progress of the brainstorming session but also aids in resuming discussions if they are interrupted. The skill is particularly useful for teams or individuals looking to innovate, solve complex problems, or simply explore new concepts in a structured manner.
When to use it
Use BMad Brainstorming when you need to generate a large number of ideas on a specific topic or when you want to push past conventional thinking.
When not to use it
This skill may not be suitable for situations requiring quick decision-making or when a focused, linear approach is needed, as it encourages exploration over conclusion.
What you can build with it
Team Ideation Workshop
Use BMad Brainstorming to guide a team in generating innovative solutions during a workshop, ensuring every voice is heard.
Product Development
Leverage the skill to brainstorm features and improvements for a new product, pushing beyond initial ideas to uncover unique concepts.
Creative Writing Session
Activate the skill to help writers explore new story ideas or character developments, facilitating a flow of creativity without constraints.
How to install BMad Brainstorming
View source1. Install with the skills CLI
npx skills add bmad-code-org/bmad-method/bmad-brainstorming --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by bmad-code-orgBMad 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}(wherecustomize.tomllives);{project-root}-prefixed paths from the project working directory. {workflow.<name>}resolves to fields in the mergedcustomize.toml[workflow]table.
On Activation
- Resolve customization:
uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow. On failure, use a subagent to read{skill-root}/customize.tomldirectly with defaults. - 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). - Resolve central config:
uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core(merges_bmad/config.toml,_bmad/config.user.toml, and the_bmad/custom/overrides); from the merged JSON resolve{user_name},{communication_language},{document_output_language},{output_folder},{project_name};{date}is today. On failure or missing values → neutral defaults; never block. - If launched headless (a machine signal, not a human asking for output —
references/headless.mdlists them): loadreferences/headless.mdand 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. - Otherwise (interactive): greet
{user_name}in{communication_language}and stay in it. Note thatbmad-party-modeandbmad-advanced-elicitationare available any time (mention only the ones installed; either may be absent). Glob{workflow.output_dir}/*/.memlog.md, read each frontmatter, and offer to resume any withstatusnotcomplete(## 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 coachto 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 scopeduv 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.
Frequently asked questions about BMad Brainstorming
Similar skills
Slidev
Create interactive web-based presentations with Markdown.
Axiom
Audit your assumptions for clearer decision-making.
2slides Presentation Generation
Generate professional presentations with AI.
Performance Review Writer
Draft personalized performance reviews effortlessly.
Legal Team Briefing
Generate contextual briefings for legal workflows.
Search
Efficiently find documents and discussions across connected sources.
