一键导入
bmad-brainstorming
Facilitate a brainstorming session using diverse creative techniques. Use when the user says 'help me brainstorm' or 'help me ideate'.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Facilitate a brainstorming session using diverse creative techniques. Use when the user says 'help me brainstorm' or 'help me ideate'.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use once, at the start of a new Hedgehog project, before hedgehog-bootstrap's add-on steps, to land the golden-core workspace (Nx, packages/config, packages/db, apps/api, apps/web, and every enforcement file) and verify it's green. Runs as the first move of the `bootstrap` agent, which `planner` invokes automatically after Confirm & Lock. No per-project decisions, no add-on awareness.
Use once, at the start of a new Hedgehog project, to land the core workspace and scaffold whichever add-ons (Auth, Queue, Mobile) planning intake turned on (TODO.md's Add-ons block). Runs when the `bootstrap` agent runs, which `planner` invokes automatically after Confirm & Lock. Scoped to project scaffolding; per-module work runs through the `hedgehog-loop` skill, one step at a time.
Use for every unit of work once a Hedgehog project is bootstrapped — building one Order step (schema, contract, repository, service, controller, hook, screen), gating it, committing it, and checking it off TODO.md. Triggers on "next step", "build this module", "what's next", or the start of any work session on a bootstrapped project. Also covers the Correction Protocol for fixing a wrong upstream step.
Link workspace packages in the Hedgehog pnpm monorepo. USE WHEN: (1) you just created or generated new packages and need to wire up their dependencies, (2) code imports from a sibling package and needs it added as a dependency, (3) you get resolution errors for workspace packages (@org/*) like "cannot find module", "failed to resolve import", "TS2307", or "cannot resolve". DO NOT patch around with tsconfig paths or manual package.json edits - use pnpm's workspace commands to fix actual linking.
Generate code using nx generators. INVOKE IMMEDIATELY when user mentions scaffolding, setup, structure, creating apps/libs, or setting up project structure. Trigger words - scaffold, setup, create a new app, create a new lib, project structure, generate, add a new project. ALWAYS use this BEFORE calling nx_docs or exploring - this skill handles discovery internally.
Helps with running tasks in an Nx workspace. USE WHEN the user wants to execute build, test, lint, serve, or run any other tasks defined in the workspace.
| name | bmad-brainstorming |
| description | Facilitate a brainstorming session using diverse creative techniques. Use when the user says 'help me brainstorm' or 'help me ideate'. |
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.
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.{bmad-root} is the vendored skills/BMAD/ root.uv run {bmad-root}/scripts/resolve_customization.py --skill {skill-root} --key workflow. On failure, use a subagent to read {skill-root}/customize.toml directly with defaults.{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).{user_name}, {communication_language}, {document_output_language}, {output_folder}, {project_name} using sensible defaults (ask the user or omit {user_name}; English for language fields; infer {project_name} from the Hedgehog project); {date} is today. Missing values → neutral defaults; never block.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.{user_name} in {communication_language} and stay in it. Note that bmad-advanced-elicitation is available any time (mention only if installed). Glob {workflow.output_dir}/*/.memlog.md, 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.
These fight your defaults, in every mode; hold them deliberately. The stance you pick adds one more frame (references/mode-*.md) on top.
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 {bmad-root}/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 {bmad-root}/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 {bmad-root}/scripts/memlog.py set --workspace {doc_workspace} --key status --value complete — flip status at wrap-up.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.
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).
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.
Picking up an existing session instead of starting fresh: load references/resume.md and follow it.
Load references/finalize.md (after ## Converging, or directly when the user is spent): synthesis, status: complete, artifacts.