fix(installer): rename automator module code to baut
This commit is contained in:
parent
a89b405008
commit
68f6bf223a
|
|
@ -31,7 +31,7 @@ npx bmad-method install
|
||||||
The interactive flow asks you five things:
|
The interactive flow asks you five things:
|
||||||
|
|
||||||
1. Installation directory (defaults to the current working directory)
|
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
|
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)
|
4. Which AI tools/IDEs to integrate with (claude-code, cursor, and others)
|
||||||
5. Per-module config (name, language, output folder)
|
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.
|
Accept the defaults and you land on the latest stable release of every module, configured for your chosen tool.
|
||||||
|
|
||||||
:::caution[BMad Automator constraints]
|
:::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?]
|
:::tip[Just want the newest prerelease?]
|
||||||
|
|
@ -59,7 +59,7 @@ Two independent axes control what ends up on disk.
|
||||||
|
|
||||||
### Axis 1: external module channels
|
### 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 |
|
| Channel | What gets installed | Who picks this |
|
||||||
| ------------------ | ---------------------------------------------------------------------------- | --------------------------------------- |
|
| ------------------ | ---------------------------------------------------------------------------- | --------------------------------------- |
|
||||||
|
|
|
||||||
|
|
@ -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.
|
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)
|
- **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)
|
- **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.
|
- **Default channel:** `next` while experimental, so installs receive the latest Automator payload compatibility fixes.
|
||||||
|
|
|
||||||
|
|
@ -96,8 +96,8 @@ async function createAutomatorBmadFixture() {
|
||||||
[
|
[
|
||||||
'canonicalId,name,description,module,path',
|
'canonicalId,name,description,module,path',
|
||||||
'"bmad-master","bmad-master","Minimal core skill","core","_bmad/core/bmad-master/SKILL.md"',
|
'"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","bmad-story-automator","Automator skill","baut","_bmad/baut/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-review","bmad-story-automator-review","Automator review skill","baut","_bmad/baut/bmad-story-automator-review/SKILL.md"',
|
||||||
'',
|
'',
|
||||||
].join('\n'),
|
].join('\n'),
|
||||||
);
|
);
|
||||||
|
|
@ -110,7 +110,7 @@ async function createAutomatorBmadFixture() {
|
||||||
);
|
);
|
||||||
|
|
||||||
for (const skillName of ['bmad-story-automator', 'bmad-story-automator-review']) {
|
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.ensureDir(skillDir);
|
||||||
await fs.writeFile(
|
await fs.writeFile(
|
||||||
path.join(skillDir, 'SKILL.md'),
|
path.join(skillDir, 'SKILL.md'),
|
||||||
|
|
@ -3589,7 +3589,7 @@ async function runTests() {
|
||||||
let runtimeTargetRoot42;
|
let runtimeTargetRoot42;
|
||||||
try {
|
try {
|
||||||
const externalManager42 = new ExternalModuleManager();
|
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 !== null, 'BMad Automator is registered as an external module');
|
||||||
assert(automatorInfo42.type === 'experimental', 'BMad Automator is marked experimental');
|
assert(automatorInfo42.type === 'experimental', 'BMad Automator is marked experimental');
|
||||||
assert(automatorInfo42.sourceRoot === 'payload/.claude/skills', 'BMad Automator uses source-root for pure skill payload');
|
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 runtimeBmadDir42 = path.join(runtimeTargetRoot42, '_bmad');
|
||||||
const officialModules42 = new OfficialModules();
|
const officialModules42 = new OfficialModules();
|
||||||
officialModules42.findModuleSource = async () => automatorSourceFixture42.sourceRoot;
|
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(
|
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',
|
'BMad Automator source-root install includes runtime helper',
|
||||||
);
|
);
|
||||||
assert(
|
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',
|
'BMad Automator source-root install includes Python runtime source',
|
||||||
);
|
);
|
||||||
await fs.remove(runtimeTargetRoot42).catch(() => {});
|
await fs.remove(runtimeTargetRoot42).catch(() => {});
|
||||||
|
|
@ -3646,7 +3646,7 @@ async function runTests() {
|
||||||
|
|
||||||
const codexResult42 = await ideManager42.setup('codex', tempProjectDir42, installedBmadDir42, {
|
const codexResult42 = await ideManager42.setup('codex', tempProjectDir42, installedBmadDir42, {
|
||||||
silent: true,
|
silent: true,
|
||||||
selectedModules: ['core', 'bma'],
|
selectedModules: ['core', 'baut'],
|
||||||
});
|
});
|
||||||
assert(codexResult42.success === true, 'Codex setup succeeds with automator module selected');
|
assert(codexResult42.success === true, 'Codex setup succeeds with automator module selected');
|
||||||
assert(
|
assert(
|
||||||
|
|
@ -3684,7 +3684,7 @@ async function runTests() {
|
||||||
|
|
||||||
const claudeResult42 = await ideManager42.setup('claude-code', tempProjectDir42, installedBmadDir42, {
|
const claudeResult42 = await ideManager42.setup('claude-code', tempProjectDir42, installedBmadDir42, {
|
||||||
silent: true,
|
silent: true,
|
||||||
selectedModules: ['core', 'bma'],
|
selectedModules: ['core', 'baut'],
|
||||||
});
|
});
|
||||||
assert(claudeResult42.success === true, 'Claude Code setup succeeds with automator module selected');
|
assert(claudeResult42.success === true, 'Claude Code setup succeeds with automator module selected');
|
||||||
assert(
|
assert(
|
||||||
|
|
|
||||||
|
|
@ -574,7 +574,7 @@ class OfficialModules {
|
||||||
}
|
}
|
||||||
|
|
||||||
async copyAutomatorRuntimeIfNeeded(moduleName, sourcePath, targetPath, fileTrackingCallback = null) {
|
async copyAutomatorRuntimeIfNeeded(moduleName, sourcePath, targetPath, fileTrackingCallback = null) {
|
||||||
if (moduleName !== 'bma') return;
|
if (moduleName !== 'baut') return;
|
||||||
|
|
||||||
const storyTarget = path.join(targetPath, 'bmad-story-automator');
|
const storyTarget = path.join(targetPath, 'bmad-story-automator');
|
||||||
if (!(await fs.pathExists(path.join(storyTarget, 'SKILL.md')))) return;
|
if (!(await fs.pathExists(path.join(storyTarget, 'SKILL.md')))) return;
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ modules:
|
||||||
bmad-automator:
|
bmad-automator:
|
||||||
url: https://github.com/bmad-code-org/bmad-automator
|
url: https://github.com/bmad-code-org/bmad-automator
|
||||||
source-root: payload/.claude/skills
|
source-root: payload/.claude/skills
|
||||||
code: bma
|
code: baut
|
||||||
name: "BMad Automator (Experimental)"
|
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."
|
description: "Experimental pure-skill story automation. Runs only from Claude Code; supports Claude Code and Codex worker sessions; requires tmux on macOS."
|
||||||
defaultSelected: false
|
defaultSelected: false
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue