bmad-advanced-elicitat…
Push the LLM to reconsider, refine, and improve its recent output. Use when user asks for deeper critique or mentions a known deeper critique method, e.g.…
Authors and updates customization overrides for installed BMad skills. Use when the user says 'customize bmad', 'override a skill', 'change agent behavior', or 'customize a workflow
$ npx -y skills add bmad-code-org/bmad-method --skill bmad-customize --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/bmad-customizeContext preview
The summary Claude sees to decide when to auto-load this skill.
Authors and updates customization overrides for installed BMad skills. Use when the user says 'customize bmad', 'override a skill', 'change agent behavior', or 'customize a workflow
name: bmad-customize description: Authors and updates customization overrides for installed BMad skills. Use when the user says 'customize bmad', 'override a skill', 'change agent behavior', or 'customize a workflow'
Translate the user's intent into a correctly-placed TOML override file under `{project-root}/_bmad/custom/` for a customizable agent or workflow skill. Discover, route, author, write, verify.
Scope v1: per-skill `[agent]` overrides (`bmad-agent-<role>.toml` / `.user.toml`) and per-skill `[workflow]` overrides (`bmad-<workflow>.toml` / `.user.toml`). Central config (`{project-root}/_bmad/custom/config.toml`) is out of scope — point users at the [How to Customize BMad guide](https://docs.bmad-method.org/how-to/customize-bmad/).
When the target's `customize.toml` doesn't expose what the user wants, say so plainly. Don't invent fields.
Greet the user. If the user's invocation already names a target skill AND a specific change, jump to Step 3.
uv run {skill-root}/scripts/list_customizable_skills.py --project-root {project-root}Use `--extra-root <path>` (repeatable) if the user has skills installed in additional locations.
Group the returned `agents` and `workflows` for the user; for each show name, description, whether `has_team_override` or `has_user_override` is true. Surface any `errors[]`. For audit/iterate intents, lead with already-overridden entries.
Empty list: show `scanned_roots`, ask whether skills live elsewhere (offer `--extra-root`); otherwise stop.
Read the target's `customize.toml`. Top-level `[agent]` or `[workflow]` block defines the surface.
If a team or user override already exists, read it first and summarize what's already overridden before composing.
**Cross-cutting intent — walk both surfaces with the user:**
**Single-surface heuristic:**
When ambiguous, present both with tradeoff, recommend one, let the user decide.
Intent outside the exposed surface (step logic, ordering, anything not in `customize.toml`): say so; offer `activation_steps_prepend`/`append` or `persistent_facts` as approximations, or recommend `bmad-builder` to create a custom skill.
Translate plain-English into TOML against the target's `customize.toml` fields. If an existing override was read, frame the change as additive.
Merge semantics:
Overrides are sparse: only the fields being changed. Never copy the whole `customize.toml`.
**Template swap** (`*_template` scalar): offer to copy the default template to `{project-root}/_bmad/custom/{skill-name}-{purpose}-template.md`, point the override at the new path, offer to help edit it.
Under `{project-root}/_bmad/custom/`:
Default by character (policy → team, personal → user), confirm before writing.
1. Show the full TOML. If the file exists, show a diff. Never silently overwrite. 2. Wait for explicit yes. 3. Write. Create `{project-root}/_bmad/custom/` if needed. 4. Verify:
uv run {project-root}/_bmad/scripts/resolve_customization.py --skill <install-path> --project-root {project-root} --key <agent-or-workflow>Show the merged output, point out the changed fields.
**Resolver missing or fails:** read whichever layers exist — `<install-path>/customize.toml` (base), `{project-root}/_bmad/custom/{skill-name}.toml` (team), `{project-root}/_bmad/custom/{skill-name}.user.toml` (user) — apply base → team → user with the same merge rules (scalars override, tables deep-merge, `code`/`id`-keyed arrays merge by key, all other arrays append), describe how the changed fields resolve.
**Verify shows override didn't land** (field unchanged, merge conflict, file not picked up): re-enter Step 4 with the verify output as context. Usually wrong field name, wrong merge mode (scalar vs array), or wrong scope. 5. Summarize what changed, where the file lives, how to iterate. Remind the user to commit team overrides.
Repo: bmad-code-org/bmad-method
Push the LLM to reconsider, refine, and improve its recent output. Use when user asks for deeper critique or mentions a known deeper critique method, e.g.…
Business analyst for market research, competitive analysis, and requirements. Use when the user asks to talk to Mary or requests the business analyst
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 developer agent
Product manager for PRD creation and requirements discovery. Use when the user asks to talk to John or requests the product manager
UX designer and UI specialist. Use when the user asks to talk to Sally or requests the UX designer