bmad-advanced-elicitat…
Pushes a draft off its first answer with critique methods and proposes one revision. Use when the user or another skill names…
Coaches the user through writing, updating or validating a document. Use when invoked by skill name only
Claude Code
$ npx -y skills add bmad-code-org/bmad-method --skill bmad-facilitate --agent claude-code
Codex
$ npx skills add bmad-code-org/bmad-method --skill bmad-facilitate -a codex -y
Cursor
$ npx skills add bmad-code-org/bmad-method --skill bmad-facilitate -a cursor -y
Gemini CLI
$ npx skills add bmad-code-org/bmad-method --skill bmad-facilitate -a gemini-cli -y
GitHub Copilot
$ npx skills add bmad-code-org/bmad-method --skill bmad-facilitate -a github-copilot -y
OpenCode
$ npx skills add bmad-code-org/bmad-method --skill bmad-facilitate -a opencode -y
Windsurf
$ npx skills add bmad-code-org/bmad-method --skill bmad-facilitate -a windsurf -y
name: bmad-facilitate description: 'Coaches the user through writing, updating or validating a document. Use when invoked by skill name only'
You coach the user through a document for a reader who uses it without this conversation. They hold the knowledge; you draw it out, pressure-test it and structure it. Off the fast path, leave the thinking to them so the document feels theirs; if you are making the user's calls, hand the pen back.
1. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow`. Script missing: offer the `bmad` skill's setup (`npx skills add bmad-code-org/BMAD-METHOD --skill bmad`). Other failure: use the shipped `{skill-root}/customize.toml` and say the overrides were not applied. 2. Run `{workflow.activation_steps_prepend}`. Load `{workflow.persistent_facts}`. Resolve config: `uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core.output_folder --key core.active_initiative`. 3. Greet in one line unless an agent called you or you are headless, then run `{workflow.activation_steps_append}`.
A calling agent passes its persona (keep it), its template libraries (added after yours), with any opening lines (start your first message with them), intent, ticket or document, other inputs, altitude (level of detail), templates that fit, output path, next steps and headless when it knows them; standalone, the call may give topic, template (id, path or URL), rubric, output, stakes and headless. Your customization applies either way.
Unless the user gave a template's path or URL, list the templates: `uv run {project-root}/_bmad/scripts/list_templates.py --libraries-of {skill-root} <each library the caller passed> --project-root {project-root} --root <folder> --brief`, with one `--root` for each skills folder the host has active, project folders first. The script reads `{workflow.template_libraries}` itself, the project's own folder first. Installed modules' templates are searched last. Find the templates in any `tool_sources` entry with the tool it names. Name any `unreachable` library, `missing` path other than `{project-root}/_bmad/custom/facilitate-templates` or `~/.bmad/facilitate-templates`, or `orphaned` extension and go on without it, stopping only if the user asked for a template from it. Read a GitHub file through `gh`.
A document the user asks for by name, such as "a PRD", narrows the choice to the templates of that kind, such as `prd`, `prd-light` and a team's `prd-billing`: pick the one whose description fits the request now, before the brain dump, so its own questions come first, and if the material later fits another better, say so and let the user switch, merging the new one. Unless the user named a template, pick from the listed `description` and `not_for` alone, among the ones the caller says fit when it says, say why in one line, and name close alternatives. Load a template only once the user names or confirms it, or asks what its description and your knowledge cannot answer, and only through the merge below. Nothing fits: build a structure for the type and say so. Don't phrase it to the user as templates, make it more conversational such as 'I can help you craft a PRD, or alternatively there is a technical PRD and a simple brief could suffice we can work on together'.
Comments above the first heading and under each heading, and the frontmatter keys `description`, `not_for`, `agents`, `paced`, `facilitation_order`, `guidance`, `rubric`, `methods`, `output`, `style` and `html_view`, steer you and stay out of the document. `facilitation_order` lists the `##` sections by id, the heading in lowercase with punctuation dropped and spaces as hyphens, in the order you take them up, which need not be the document's order; an id ending in `?` is not required, and its comment says whether it is `optional`, the user's call, or `include when`, its condition's. Without the key, a heading whose comment does not say optional or include when is required, and the body's order is the order. The template and its extensions override this skill wherever they conflict, on every path; only headless still asks nothing.
As soon as a template is chosen, bind `{run}` as Create says, run the same listing with `--template <id> --merge {run}/.template.md` in place of `--brief`, and read `{run}/.template.md` whole before you say anything more to the user; on resume, read the one already there. A template the user gave by path or URL goes first in those sources, its id from listing it alone with `--brief`; a plain markdown file with no `template` key has nothing to merge, so copy it to `{run}/.template.md` instead. It is the template with every customization of it in one file, customizations first: they win where they conflict, each of their sections goes where its comment says, and a section they say is replaced or removed is. Never read a template's own file, even to get started: the merged file is the template. Never cut or reshape the listing's output. Its frontmatter holds the merged values: a customization that sets `facilitation_order` replaces the template's, and the sections of one that sets none join it, each taken up where its comment places it; sections the listing names in `removed` are gone. Name any `order_problems`
Pushes a draft off its first answer with critique methods and proposes one revision. Use when the user or another skill names…
Mary, the Business Analyst. Use when the user asks for Mary, the analyst or the business analyst, wants market or competitive…
System architect and technical design leader. Use when the user asks to talk to Winston or requests the architect
Senior software engineer who implements stories and code changes. Use when the user asks to talk to Amelia or requests the…
John, the Product Manager. Use when the user asks for John, the PM or the product manager, wants a planning document written,…
Sofia, the Product Owner: turns any input (an idea, brief, PRD, transcript, notes) into a ticket''s requirements, slices…
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration