Breakthrough Method for Agile Ai Driven Development
Go to file
Brian b63086f22e
feat(core-skills): add bmad-customize — guided authoring for _bmad/custom overrides (#2289)
* feat(core-skills): add bmad-customize for authoring _bmad/custom overrides

A conversational guide skill that helps users author or update TOML overrides
in _bmad/custom/ for customizable BMad agents and workflows. Covers per-skill
agent and workflow surfaces; central config is out of scope for v1.

- SKILL.md: six-step flow (intent, discover, route, compose, team-vs-user,
  show-confirm-write-verify) with baked-in agent-vs-workflow routing heuristic
  and a template-swap subroutine
- scripts/list_customizable_skills.py: stdlib-only scanner that enumerates
  customizable skills across standard IDE install paths, reports surface type
  and override status, PEP 723, 10 unit tests
- Reuses _bmad/scripts/resolve_customization.py for post-write verification
- Registered in core-skills/module-help.csv with menu code BC

* refactor(bmad-customize): apply QA pass (top 3 recommendations)

Applies the three highest-payoff themes from the quality analysis:

- Labeling + completion contracts: rename ## Purpose to ## Overview,
  add domain framing (what customization means in BMad, typical user
  arrival shapes), add an explicit Completion block with testable
  conditions for "skill run is done"
- Hostile-environment robustness: add On-Activation preflight that
  classifies no-BMad / BMad-without-resolver / full-install states,
  instruct Step 2 to surface scanner errors[] and scanned_roots on
  empty results, add resolver-missing fallback to Step 6.4, add a
  re-enter-Step-4 recovery loop when verify shows the override didn't
  take effect
- Returning-user and iteration experience: add "Audit / iterate"
  intent class in Step 1, lead discovery with already-overridden
  skills for that intent, read existing overrides in Step 3 before
  composing, frame Step 4 as additive-on-top rather than fresh
  authoring, give Cross-cutting intent an explicit Step 3 branch
  that walks agent-vs-workflow with the user

Resolves 12 of 18 observations from the quality report. Lint clean
(scan-path-standards and scan-scripts both 0 findings). Unit tests
still 10/10.

* refactor(bmad-customize): derive skills root from install location

Previously the scanner hardcoded a list of IDE skill directories
(.claude/skills, .cursor/skills, .cline/skills, .continue/skills) and
scanned them relative to the project root. That was wrong: skills can
be installed either project-local or user-global, the IDE determines
the convention, and the set of valid locations is open-ended.

The scanner now derives its primary skills root from __file__ — the
running skill's own install directory is the authoritative location
for finding siblings. --skills-root overrides the default; --extra-root
(repeatable) adds additional locations for the rare mixed-install case.

Changes:
- list_customizable_skills.py: remove SKILL_ROOTS constant, add
  default_skills_root() derived from __file__, rename scan_project
  to scan_skills(skills_roots, project_root), add --skills-root and
  --extra-root flags, de-dupe skills when the same name appears in
  multiple roots (first wins)
- SKILL.md: update Step 2 to describe the scanner's derive-from-install
  behavior and when to use --extra-root; drop the hardcoded IDE path
  list from Notes
- tests: refactor setUp to place skills under a generic skills root
  (not .claude/skills), add 3 new tests for multiple-roots merge,
  duplicate-name precedence, and missing-root error reporting

* docs(customization): point users at bmad-customize as the guided path

Surface the new bmad-customize skill across the three customization
docs so users know they don't need to hand-author TOML to benefit
from the surface:

- customize-bmad.md: prominent tip at the top introducing the skill
  as the guided authoring helper; updated the "Need to see what's
  customizable?" troubleshooting tip to recommend the skill first
- expand-bmad-for-your-org.md: tip under prereqs noting every recipe
  can be applied via the skill, with the recipes remaining the
  reference for what to override
- named-agents.md: short paragraph in the customization section and a
  link entry under the references list

Hand-authoring still works the same way; the skill is additive.
Central-config overrides are flagged as the current exception.

* docs(bmad-customize): steer users at bmad-builder instead of 'forking'

* fix(bmad-customize): reword description to pass file-ref validator

* refactor(bmad-customize): tighten description and expand module-help entry

- SKILL.md description: drop the catch-all 'or asks how to change the
  behavior of a specific BMad skill' trigger clause that would fire in
  casual discussion; keep the four explicit phrase triggers.
- module-help.csv: rewrite the description so bmad-help has real
  routing material — names the concrete capabilities (persistent
  facts, template swaps, activation hooks, menus), the scope routing,
  and the value prop (no TOML hand-authoring). Matches the 'Use
  when...' pattern other Core entries use.

* fix(module-help): quote bmad-customize description field that contains commas

* fix(bmad-customize): address PR #2289 review findings

- SKILL.md preflight: load root config from _bmad/config.toml and
  config.user.toml (not .yaml) — the installer emits TOML; the YAML
  references would have made the skill silently miss real user config
- SKILL.md resolver fallback (Step 6.4): read all three merge layers
  when present (base / team / user) and describe the merge in
  base → team → user order; the prior wording could describe the wrong
  effective merge when the user wrote .user.toml on top of an existing
  team .toml
- SKILL.md: replace bare 'docs/how-to/customize-bmad.md' references
  (3 locations) with the public docs URL so users installing the skill
  aren't pointed at a path they don't have locally
- list_customizable_skills.py: catch UnicodeDecodeError in
  read_frontmatter_description so a non-UTF-8 SKILL.md can't abort
  the whole scan
- list_customizable_skills.py: clarify exit-code contract in the
  module docstring — errors[] is non-fatal by design, exit 2 is
  reserved for invocation errors
- customize-bmad.md: tighten the tip to scope bmad-customize to the
  per-skill surface; central-config is out of scope v1
- expand-bmad-for-your-org.md: same scoping — Recipes 1-4 can be
  applied by the skill; Recipe 5 (central config) stays hand-authored

* fix(bmad-customize): markdownlint MD034 and validate-file-refs

- Wrap the three docs.bmad-method.org references as
  [text](url) markdown links instead of bare URLs (MD034)
- Drop the {project-root}/ prefix on line 41's config.toml
  references. validate-file-refs strips the template prefix and
  tries to resolve 'config.toml' as 'src/config.toml'; sibling
  skills (party-mode, retrospective, advanced-elicitation) all
  reference '_bmad/config.toml' bare and pass CI — match that
  pattern. The '(root level under {project-root}, installer-owned)'
  parenthetical preserves the disambiguation.

* refactor(bmad-customize): cut token-wasting prose from SKILL.md

Down from 175 lines to 110. Removed:
- 'What customization means in BMad' architecture backgrounder — the
  LLM reads the live customize.toml in Step 3; doesn't need the lore
- 'Desired Outcomes' section — retrospective narration of what the
  6 steps already instruct
- 'Role' section — fluff; the flow itself defines the role
- 'Notes' section — sparse-override rule already in Step 4, IDE-path
  note is commentary, docs link duplicates the out-of-scope section
- 'The scanner derives its skills directory from...' and 'returns JSON
  with...' — commentary the LLM doesn't need; it runs the script and
  sees the output
- 'that file IS the schema' and similar editorial asides throughout
- Explanatory clauses like 'silently drifts on every release' and
  'trust the user's domain knowledge'

Kept everything that's load-bearing: preflight conditionals, intent
classification, routing heuristic, merge semantics, template-swap
subroutine, team-vs-user defaults, verify fallback and recovery loop,
completion conditions, out-of-scope list.
2026-04-20 22:14:54 -05:00
.augment chore(tools): align Augment config with skill-validator as single source of truth 2026-03-15 17:41:54 -06:00
.claude-plugin chore: remove SM agent (Bob) and migrate to Developer agent (#2186) 2026-04-02 12:25:24 -07:00
.github refactor(installer): restructure installer with clean separation of concerns (#2129) 2026-03-27 06:50:07 -06:00
.husky docs: fix docs build (#1336) 2026-01-15 16:44:14 -06:00
.vscode excorcise the deamons part 1 - remove dead uneeed artifacts and items no longer being supported beyond beta of the BMM or core - but could return later as a module 2026-02-04 15:44:25 -06:00
docs feat(core-skills): add bmad-customize — guided authoring for _bmad/custom overrides (#2289) 2026-04-20 22:14:54 -05:00
src feat(core-skills): add bmad-customize — guided authoring for _bmad/custom overrides (#2289) 2026-04-20 22:14:54 -05:00
test feat(agents): set team to software-development on BMM agents (#2286) 2026-04-20 00:11:16 -05:00
tools refactor(skills): remove bmad-skill-manifest yaml; introduce central config.toml (#2285) 2026-04-19 23:11:44 -05:00
website docs: remove Bob from workflow map diagrams 2026-04-12 23:12:32 -05:00
.coderabbit.yaml feat(coderabbit): add docs-staleness check for all src/ changes 2026-03-17 15:30:32 -06:00
.gitignore feat(skills): TOML-based agent and workflow customization (#2284) 2026-04-19 19:30:29 -05:00
.markdownlint-cli2.yaml refactor: replace 'execute' with 'Read fully and follow:' in workflow prompts (#1387) 2026-01-23 22:25:19 -06:00
.npmignore chore: remove dead agent schema validation infrastructure 2026-03-17 20:20:12 -06:00
.npmrc fix: resolve npm install peer dependency issues 2026-01-30 15:37:42 +00:00
.nvmrc feat: v6.0.0-alpha.0 - the future is now 2025-09-28 23:17:07 -05:00
.prettierignore chore: ignore .junie/ IDE integration folder (#1719) 2026-02-20 20:33:23 -06:00
AGENTS.md feat(tools): add deterministic skill validator for CI 2026-03-17 23:49:01 -06:00
CHANGELOG.md docs: draft v6.3.0 changelog 2026-04-09 19:59:18 -05:00
CNAME Add CNAME file 2026-01-07 18:18:12 +08:00
CONTRIBUTING.md docs: add contribution guardrails for unsolicited PRs (#2207) 2026-04-04 12:13:06 -05:00
CONTRIBUTORS.md project licence, contribution and discord noise updates, along with improved simplified issue templates 2026-01-18 17:03:47 -06:00
LICENSE project licence, contribution and discord noise updates, along with improved simplified issue templates 2026-01-18 17:03:47 -06:00
README.md docs: add Python 3.10+ and uv as prerequisites (#2221) 2026-04-06 00:30:00 -05:00
README_CN.md chore: remove SM agent (Bob) and migrate to Developer agent (#2186) 2026-04-02 12:25:24 -07:00
README_VN.md docs(vi-vn): sync translations and add missing checkpoint-preview page (#2222) 2026-04-09 20:49:18 -07:00
SECURITY.md Enhance security policy documentation (#1312) 2026-01-14 16:27:52 -06:00
TRADEMARK.md project licence, contribution and discord noise updates, along with improved simplified issue templates 2026-01-18 17:03:47 -06:00
Wordmark.png feat: update website header with new BMAD Method branding (#1352) 2026-01-18 00:25:12 -06:00
banner-bmad-method.png feat: update website header with new BMAD Method branding (#1352) 2026-01-18 00:25:12 -06:00
eslint.config.mjs feat(skills): TOML-based agent and workflow customization (#2284) 2026-04-19 19:30:29 -05:00
package-lock.json Revert "feat(skills): YAML-based agent customization with Python resolver (#2282)" (#2283) 2026-04-19 11:09:21 -05:00
package.json fix(installer): replace fs-extra with native node:fs to prevent file loss 2026-04-13 00:44:28 -05:00
prettier.config.mjs feat: v6.0.0-alpha.0 - the future is now 2025-09-28 23:17:07 -05:00
removals.txt feat(installer): overhaul branding, versioning, and skill cleanup (#2223) 2026-04-07 02:31:36 -05:00

README.md

BMad Method

Version License: MIT Node.js Version Python Version uv Discord

Build More Architect Dreams — An AI-driven agile development module for the BMad Method Module Ecosystem, the best and most comprehensive Agile AI Driven Development framework that has true scale-adaptive intelligence that adjusts from bug fixes to enterprise systems.

100% free and open source. No paywalls. No gated content. No gated Discord. We believe in empowering everyone, not just those who can pay for a gated community or courses.

Why the BMad Method?

Traditional AI tools do the thinking for you, producing average results. BMad agents and facilitated workflows act as expert collaborators who guide you through a structured process to bring out your best thinking in partnership with the AI.

  • AI Intelligent Help — Invoke the bmad-help skill anytime for guidance on what's next
  • Scale-Domain-Adaptive — Automatically adjusts planning depth based on project complexity
  • Structured Workflows — Grounded in agile best practices across analysis, planning, architecture, and implementation
  • Specialized Agents — 12+ domain experts (PM, Architect, Developer, UX, and more)
  • Party Mode — Bring multiple agent personas into one session to collaborate and discuss
  • Complete Lifecycle — From brainstorming to deployment

Learn more at docs.bmad-method.org


🚀 What's Next for BMad?

V6 is here and we're just getting started! The BMad Method is evolving rapidly with optimizations including Cross Platform Agent Team and Sub Agent inclusion, Skills Architecture, BMad Builder v1, Dev Loop Automation, and so much more in the works.

📍 Check out the complete Roadmap →


Quick Start

Prerequisites: Node.js v20+ · Python 3.10+ · uv

npx bmad-method install

Want the newest prerelease build? Use npx bmad-method@next install. Expect higher churn than the default install.

Follow the installer prompts, then open your AI IDE (Claude Code, Cursor, etc.) in your project folder.

Non-Interactive Installation (for CI/CD):

npx bmad-method install --directory /path/to/project --modules bmm --tools claude-code --yes

See all installation options

Not sure what to do? Ask bmad-help — it tells you exactly what's next and what's optional. You can also ask questions like bmad-help I just finished the architecture, what do I do next?

Modules

BMad Method extends with official modules for specialized domains. Available during installation or anytime after.

Module Purpose
BMad Method (BMM) Core framework with 34+ workflows
BMad Builder (BMB) Create custom BMad agents and workflows
Test Architect (TEA) Risk-based test strategy and automation
Game Dev Studio (BMGD) Game development workflows (Unity, Unreal, Godot)
Creative Intelligence Suite (CIS) Innovation, brainstorming, design thinking

Documentation

BMad Method Docs Site — Tutorials, guides, concepts, and reference

Quick links:

Community

Support BMad

BMad is free for everyone and always will be. Star this repo, buy me a coffee, or email contact@bmadcode.com for corporate sponsorship.

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

License

MIT License — see LICENSE for details.


BMad and BMAD-METHOD are trademarks of BMad Code, LLC. See TRADEMARK.md for details.

Contributors

See CONTRIBUTORS.md for contributor information.