diff --git a/docs/how-to/install-bmad.md b/docs/how-to/install-bmad.md index 4e80ce3bb..4a5a08847 100644 --- a/docs/how-to/install-bmad.md +++ b/docs/how-to/install-bmad.md @@ -31,7 +31,7 @@ npx bmad-method install The interactive flow asks you five things: 1. Installation directory (defaults to the current working directory) -2. Which modules to install (checkboxes for core, bmm, bmb, cis, gds, tea, bma) +2. Which modules to install (checkboxes for core, bmm, bmb, cis, gds, tea, baut) 3. **"Ready to install (all stable)?"** — Yes accepts the latest released tag for every external module 4. Which AI tools/IDEs to integrate with (claude-code, cursor, and others) 5. Per-module config (name, language, output folder) @@ -39,9 +39,9 @@ The interactive flow asks you five things: Accept the defaults and you land on the latest stable release of every module, configured for your chosen tool. :::caution[BMad Automator constraints] -`bma` installs runnable Automator skills only for the Claude Code entrypoint. Codex is supported as a worker target only, and worker sessions currently require `tmux` on macOS. +`baut` installs runnable Automator skills only for the Claude Code entrypoint. Codex is supported as a worker target only, and worker sessions currently require `tmux` on macOS. -While experimental, `bma` defaults to the `next` channel so installs pick up the latest Automator payload compatibility fixes. +While experimental, `baut` defaults to the `next` channel so installs pick up the latest Automator payload compatibility fixes. ::: :::tip[Just want the newest prerelease?] @@ -59,7 +59,7 @@ Two independent axes control what ends up on disk. ### Axis 1: external module channels -Every external module — bmb, cis, gds, tea, bma, and any community module — installs on one of three channels: +Every external module — bmb, cis, gds, tea, baut, and any community module — installs on one of three channels: | Channel | What gets installed | Who picks this | | ------------------ | ---------------------------------------------------------------------------- | --------------------------------------- | diff --git a/docs/reference/modules.md b/docs/reference/modules.md index 0c307f1f0..43a15d704 100644 --- a/docs/reference/modules.md +++ b/docs/reference/modules.md @@ -75,7 +75,7 @@ Enterprise-grade test strategy, automation guidance, and release gate decisions Automates the BMad story build loop with a pure skill bundle sourced from the separate Automator repository. -- **Code:** `bma` +- **Code:** `baut` - **npm:** [`bmad-story-automator`](https://www.npmjs.com/package/bmad-story-automator) - **GitHub:** [bmad-code-org/bmad-automator](https://github.com/bmad-code-org/bmad-automator) - **Default channel:** `next` while experimental, so installs receive the latest Automator payload compatibility fixes. diff --git a/test/test-installation-components.js b/test/test-installation-components.js index 723f471e3..503fcfb3a 100644 --- a/test/test-installation-components.js +++ b/test/test-installation-components.js @@ -96,8 +96,8 @@ async function createAutomatorBmadFixture() { [ 'canonicalId,name,description,module,path', '"bmad-master","bmad-master","Minimal core skill","core","_bmad/core/bmad-master/SKILL.md"', - '"bmad-story-automator","bmad-story-automator","Automator skill","bma","_bmad/bma/bmad-story-automator/SKILL.md"', - '"bmad-story-automator-review","bmad-story-automator-review","Automator review skill","bma","_bmad/bma/bmad-story-automator-review/SKILL.md"', + '"bmad-story-automator","bmad-story-automator","Automator skill","baut","_bmad/baut/bmad-story-automator/SKILL.md"', + '"bmad-story-automator-review","bmad-story-automator-review","Automator review skill","baut","_bmad/baut/bmad-story-automator-review/SKILL.md"', '', ].join('\n'), ); @@ -110,7 +110,7 @@ async function createAutomatorBmadFixture() { ); for (const skillName of ['bmad-story-automator', 'bmad-story-automator-review']) { - const skillDir = path.join(fixtureDir, 'bma', skillName); + const skillDir = path.join(fixtureDir, 'baut', skillName); await fs.ensureDir(skillDir); await fs.writeFile( path.join(skillDir, 'SKILL.md'), @@ -3589,7 +3589,7 @@ async function runTests() { let runtimeTargetRoot42; try { const externalManager42 = new ExternalModuleManager(); - const automatorInfo42 = await externalManager42.getModuleByCode('bma'); + const automatorInfo42 = await externalManager42.getModuleByCode('baut'); assert(automatorInfo42 !== null, 'BMad Automator is registered as an external module'); assert(automatorInfo42.type === 'experimental', 'BMad Automator is marked experimental'); assert(automatorInfo42.sourceRoot === 'payload/.claude/skills', 'BMad Automator uses source-root for pure skill payload'); @@ -3626,13 +3626,13 @@ async function runTests() { const runtimeBmadDir42 = path.join(runtimeTargetRoot42, '_bmad'); const officialModules42 = new OfficialModules(); officialModules42.findModuleSource = async () => automatorSourceFixture42.sourceRoot; - await officialModules42.install('bma', runtimeBmadDir42, null, { skipModuleInstaller: true, silent: true }); + await officialModules42.install('baut', runtimeBmadDir42, null, { skipModuleInstaller: true, silent: true }); assert( - await fs.pathExists(path.join(runtimeBmadDir42, 'bma', 'bmad-story-automator', 'scripts', 'story-automator')), + await fs.pathExists(path.join(runtimeBmadDir42, 'baut', 'bmad-story-automator', 'scripts', 'story-automator')), 'BMad Automator source-root install includes runtime helper', ); assert( - await fs.pathExists(path.join(runtimeBmadDir42, 'bma', 'bmad-story-automator', 'src', 'story_automator', 'cli.py')), + await fs.pathExists(path.join(runtimeBmadDir42, 'baut', 'bmad-story-automator', 'src', 'story_automator', 'cli.py')), 'BMad Automator source-root install includes Python runtime source', ); await fs.remove(runtimeTargetRoot42).catch(() => {}); @@ -3646,7 +3646,7 @@ async function runTests() { const codexResult42 = await ideManager42.setup('codex', tempProjectDir42, installedBmadDir42, { silent: true, - selectedModules: ['core', 'bma'], + selectedModules: ['core', 'baut'], }); assert(codexResult42.success === true, 'Codex setup succeeds with automator module selected'); assert( @@ -3684,7 +3684,7 @@ async function runTests() { const claudeResult42 = await ideManager42.setup('claude-code', tempProjectDir42, installedBmadDir42, { silent: true, - selectedModules: ['core', 'bma'], + selectedModules: ['core', 'baut'], }); assert(claudeResult42.success === true, 'Claude Code setup succeeds with automator module selected'); assert( diff --git a/tools/installer/modules/official-modules.js b/tools/installer/modules/official-modules.js index 9b4a9106d..b93d3c774 100644 --- a/tools/installer/modules/official-modules.js +++ b/tools/installer/modules/official-modules.js @@ -574,7 +574,7 @@ class OfficialModules { } async copyAutomatorRuntimeIfNeeded(moduleName, sourcePath, targetPath, fileTrackingCallback = null) { - if (moduleName !== 'bma') return; + if (moduleName !== 'baut') return; const storyTarget = path.join(targetPath, 'bmad-story-automator'); if (!(await fs.pathExists(path.join(storyTarget, 'SKILL.md')))) return; diff --git a/tools/installer/modules/registry-fallback.yaml b/tools/installer/modules/registry-fallback.yaml index a988602f4..941560e2b 100644 --- a/tools/installer/modules/registry-fallback.yaml +++ b/tools/installer/modules/registry-fallback.yaml @@ -54,7 +54,7 @@ modules: bmad-automator: url: https://github.com/bmad-code-org/bmad-automator source-root: payload/.claude/skills - code: bma + code: baut name: "BMad Automator (Experimental)" description: "Experimental pure-skill story automation. Runs only from Claude Code; supports Claude Code and Codex worker sessions; requires tmux on macOS." defaultSelected: false