Breakthrough Method for Agile Ai Driven Development
Go to file
Brian Madison 1ab4d5f93c refactor(installer): simplify --set to a post-install TOML patch
The original implementation tried to integrate `--set` with the prompt /
result-template / schema-strict-partition system: pre-seeding answers,
filtering questions, evaluating function defaults, tracking override
keys for partition exemption, mirroring carry-forward in two collection
helpers, threading state through Config + ui.js + collection helpers +
manifest writer. ~900 lines spawned across 4 review rounds, with bugs
the bots kept finding because every change touched a different layer.

The simpler model: `--set` is a post-install patch. The installer runs
its normal flow untouched, then `applySetOverrides` upserts each value
into `_bmad/config.toml` (team scope) or `_bmad/config.user.toml` (user
scope) AND into `_bmad/<module>/config.yaml` so declared keys carry
forward via the existingValue path on the next install.

What gets ripped out
- All `setOverrides` plumbing through OfficialModules (constructor
  field, applyOverridesAfterSeeding, _trackUnknownKeysAsOverrides,
  declaredResultKeys, override classification + pre-write +
  question-filter + two-pass function-defaults + carry-forward in
  collectModuleConfig, _trackUnknownKeysAsOverrides calls in
  collectModuleConfigQuick, headless-branch additions in
  Installer.build). official-modules.js reset to its pre-#1663 baseline
  (commit 48a7ec8b).
- `setOverrideKeys` field on Config, threading from ui.js, partition
  exemption parameter on `manifest-generator.writeCentralConfig`.
- The "ignored under quick-update" warning in install.js — `--set` is
  now a uniform post-install patch, so it works the same way for
  quick-update as for a regular install.

What stays
- `tools/installer/set-overrides.js` parser with the prototype-pollution
  guard, prefixed by the new `applySetOverrides` / `upsertTomlKey` /
  `tomlString` / `tomlHasKey` helpers.
- `tools/installer/list-options.js` — small standalone discovery
  helper, untouched.
- The `--set` and `--list-options` CLI flag registration in
  `commands/install.js`.
- ui.js `collectModuleConfigs` retains the early-feedback warning for
  overrides targeting modules not in the install set (and now also
  filters them out of `setOverrides` before threading).

Routing rules (post-install patch)
- If `_bmad/config.user.toml` already has `[section] key`, update it
  there (so user-scope keys like `core.user_name` and
  `bmm.user_skill_level` keep their proper file).
- Otherwise update `_bmad/config.toml` (team scope, default).
- A module without `_bmad/<module>/config.yaml` (i.e. not installed)
  is skipped silently — no orphan `[modules.notamodule]` sections.

Tradeoffs documented in `docs/how-to/install-bmad.md`
- Values are written verbatim — no `result:` template rendering. Pass
  `--set bmm.project_knowledge='{project-root}/research'` if you want
  the rendered form.
- Carry-forward is automatic for declared schema keys (per-module yaml
  → existingValue → prompt default → accepted under --yes). For keys
  outside any module's schema, the value lands in `config.toml` for
  the current install but won't be re-emitted on the next install.
  Re-pass `--set` if you need it sticky.
- No "key not in schema" validation — whatever you assert is written.

Tests: Suite 44 rewritten. 355 passing (was 351). Coverage now focused
on what matters: parser + pollution guard, tomlString escaping,
upsertTomlKey across insert/replace/missing-section/empty-file/
preserved-newline cases, applySetOverrides happy path + uninstalled-
module skip + missing-user-toml-creation + empty-input no-op,
discoverOfficialModuleYamls / formatOptionsList sanity.

E2E smoke verified across all 6 scenarios:
1. fresh install with mixed declared + undeclared --set → correct files
2. quick-update no --set → declared keys persist via per-module yaml
3. quick-update WITH --set → applies (used to be warned + dropped)
4. --set for unselected module → warned, no orphan section
5. prototype pollution → exit 1
6. --list-options bmm exit 0, --list-options nope exit 1

Net: -158 lines vs HEAD. The complex integration was load-bearing for
edge cases nobody actually needed; the simple post-install patch
covers the real use case (script a config value from CI) without the
schema gymnastics.
2026-04-28 19:48:30 -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 fix(publish): advance @next dist-tag after stable release (#2320) 2026-04-26 10:30:41 -05: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 refactor(installer): simplify --set to a post-install TOML patch 2026-04-28 19:48:30 -05:00
src fix: align bmad-help.csv with documented schema and clean up source rows (#2278) (#2349) 2026-04-27 23:54:21 -05:00
test refactor(installer): simplify --set to a post-install TOML patch 2026-04-28 19:48:30 -05:00
tools refactor(installer): simplify --set to a post-install TOML patch 2026-04-28 19:48:30 -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: add v6.5.0 changelog entry (#2314) 2026-04-25 21:24:43 -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 fix(installer): address third-round PR #2353 review comments 2026-04-28 11:42:07 -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 chore(release): v6.5.0 [skip ci] 2026-04-26 02:25:31 +00:00
package.json chore(release): v6.5.0 [skip ci] 2026-04-26 02:25:31 +00:00
prettier.config.mjs feat: v6.0.0-alpha.0 - the future is now 2025-09-28 23:17:07 -05:00
removals.txt fix(installer): remove pre-v6.2.0 wrapper skills on update (closes #2309) (#2315) 2026-04-25 22:08:44 -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

Override any module config option with --set <module>.<key>=<value> (repeatable). Run --list-options [module] to see locally-known official keys (built-in modules plus any external officials cached on this machine):

npx bmad-method install --yes \
  --modules bmm --tools claude-code \
  --set bmm.project_knowledge=research \
  --set bmm.user_skill_level=expert

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.