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

bmad-customize — Claude Code skill: what it does, how to install

This skill creates and updates overrides for installed BMad skills. Use it when you need to change an agent’s behavior or customize one workflow.

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

What bmad-customize does

bmad-customize turns a plain-language request into a TOML override under {project-root}/_bmad/custom/. It discovers the target skill, agent, or workflow, reads its customize.toml, selects the right surface, and prepares a sparse override. Team settings use {skill-name}.toml; personal settings use {skill-name}.user.toml.

The skill can list customizable agents and workflows with list_customizable_skills.py, show existing overrides, and apply the documented merge rules for scalars, tables, and arrays. After confirmation it writes the file and checks the result with resolve_customization.py. If that resolver cannot run, it describes the manual merge across the available layers.

It only works with fields exposed by customize.toml; it does not directly change workflow step logic or ordering. Check that {project-root}/_bmad/ and the target customize.toml are present before starting, because setup is required for this flow.

What it helps with

  • change a BMad agent’s behavior
  • add persistent facts or principles
  • adjust one workflow step
  • create a team or personal override
  • verify the merged customization

Example prompts for the agent

  • Customize the `bmad-agent-pm` behavior by adding a persistent fact about our report format.
  • Update the PRD workflow with an extra activation step and save the change as a team override.
  • List the BMad skills that can be customized and show any existing overrides.

How to install bmad-customize

1Skills CLI (Vercel)

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

2Manually: put the files in place

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

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

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-brainstorming bmad-code-org 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. 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

Similar

agents-sdk cloudflare Helps build, debug, and review Cloudflare Agents SDK applications using the agents package and official documentation. Claude Code CX Codex Cursor +1 105,700installs documentation official anthropics A skill for technical writing that drafts READMEs, API references, runbooks, architecture docs and onboarding guides. Useful when the code exists but the description does not. Claude Code CX Codex Cursor +1 10,300installs 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 typesafe-ai typesafe-ai Guides agents on integrating TypeSafe Decision Models like Jev, answering typed questions about state with calibrated probabilities instead of brittle prompts. Claude Code CX Codex Cursor +1 95,600installs

Questions about bmad-customize

How do I install bmad-customize in Claude Code?

Run these steps in order: npx skills add bmad-code-org/BMAD-METHOD --skill bmad-customize -a claude-code, then run npx skills add bmad-code-org/BMAD-METHOD --skill bmad-customize -a claude-code again, and check ~/.claude/skills/bmad-customize/SKILL.md.

What does bmad-customize do?

It creates TOML overrides for customizable BMad agents and workflows, stores them under {project-root}/_bmad/custom/, and verifies how the customization layers resolve.

What happens when customize.toml does not expose the field I need?

The skill does not invent fields. You can use activation_steps_prepend, activation_steps_append, or persistent_facts as an approximation when available; for workflow logic changes, use bmad-workflow-builder if that module is installed.

Source text

SKILL.md · MIT
---
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'
---

# BMad Customize

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.

## Preflight

- No `{project-root}/_bmad/` → 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`). Stop if the user declines.
- `{project-root}/_bmad/scripts/resolve_customization.py` missing → continue, but Step 6 verify falls back to manual merge.
- Both present → proceed.

## Activation

Greet the user. If the user's invocation already names a target skill AND a specific change, jump to Step 3.

## Step 1: Classify intent

- **Directed** — specific skill + specific change → Step 3.
- **Exploratory** — "what can I customize?" → Step 2.
- **Audit/iterate** — wants to review or change something already customized → Step 2, lead with skills that have existing overrides; read the existing override in Step 3 before composing.
- **Cross-cutting** — could live on multiple surfaces → Step 3, choose agent vs workflow explicitly with the user.

## Step 2: Discovery

```
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.

## Step 3: Determine the right surface

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:**
- Every workflow a given agent runs → agent surface (e.g. `bmad-agent-pm.toml` with `persistent_facts`, `principles`).
- One workflow only → workflow surface (e.g. `bmad-prd.toml` with `activation_steps_prepend`).
- Several specific workflows → multiple workflow overrides in sequence, not an agent override.

**Single-surface heuristic:**
- Workflow-level: template swap, output path, step-specific behavior, or a named scalar already exposed (`*_template`, `on_complete`). Surgical, reliable.
- Agent-level: persona, communication style, org-wide facts, menu changes, behavior that should apply to every workflow the agent dispatches.

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, if the BMad Builder module is installed, recommend `bmad-workflow-builder` to create a custom skill.

## Step 4: Compose the override

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:
- **Scalars** (`icon`, `role`, `*_template`, `on_complete`) — override wins.
- **Append arrays** (`persistent_facts`, `activation_steps_prepend`/`append`, `principles`) — team/user entries append in order.
- **Keyed arrays of tables** (menu items with `code` or `id`) — matching keys replace, new keys append.

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.

## Step 5: Team or user placement

Under `{project-root}/_bmad/custom/`:
- `{skill-name}.toml` — team, committed. Policies, org conventions, compliance.
- `{skill-name}.user.toml` — user, gitignored. Personal tone, private facts, shortcuts.

Default by character (policy → team, personal → user), confirm before writing.

## Step 6: Show, confirm, write, verify

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.

## Complete when

- Override file written (or user explicitly aborted).
- User has seen resolver output (or manual fallback merge summary).
- User has acknowledged the summary.

Otherwise the skill isn't done — finish or tell the user they're exiting incomplete.

## When this skill can't help

- **Central config** (`{project-root}/_bmad/custom/config.toml`) — see the [How to Customize BMad guide](https://docs.bmad-method.org/how-to/customize-bmad/).
- **Step logic, ordering, behavior not in `customize.toml`** — open a feature request, or, if the BMad Builder module is installed, use `bmad-workflow-builder` to create a custom skill. Offer to help with either.
- **Skills without a `customize.toml`** — not customizable.

© 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