Compare commits

...

5 Commits

Author SHA1 Message Date
semantic-release-bot
6dca9cc5ba chore(release): 4.6.3 [skip ci]
## [4.6.3](https://github.com/bmadcode/BMAD-METHOD/compare/v4.6.2...v4.6.3) (2025-06-19)

### Bug Fixes

* SM fixed file resolution issue in v4 ([61ab116](61ab1161e5))
2025-06-19 03:55:00 +00:00
Brian Madison
0881735a20 Merge branch 'main' of github.com:bmadcode/BMAD-METHOD 2025-06-18 22:54:14 -05:00
Brian Madison
61ab1161e5 fix: SM fixed file resolution issue in v4 2025-06-18 22:53:26 -05:00
semantic-release-bot
93d3a47326 chore(release): 4.6.2 [skip ci]
## [4.6.2](https://github.com/bmadcode/BMAD-METHOD/compare/v4.6.1...v4.6.2) (2025-06-19)

### Bug Fixes

* installer upgrade path fixed ([bd6a558](bd6a558929))
2025-06-19 00:58:56 +00:00
Brian Madison
bd6a558929 fix: installer upgrade path fixed 2025-06-18 19:58:28 -05:00
7 changed files with 61 additions and 48 deletions

View File

@@ -1,3 +1,17 @@
## [4.6.3](https://github.com/bmadcode/BMAD-METHOD/compare/v4.6.2...v4.6.3) (2025-06-19)
### Bug Fixes
* SM fixed file resolution issue in v4 ([61ab116](https://github.com/bmadcode/BMAD-METHOD/commit/61ab1161e59a92d657ab663082abcaf26729fa6b))
## [4.6.2](https://github.com/bmadcode/BMAD-METHOD/compare/v4.6.1...v4.6.2) (2025-06-19)
### Bug Fixes
* installer upgrade path fixed ([bd6a558](https://github.com/bmadcode/BMAD-METHOD/commit/bd6a55892906077a700f488bde175b57e846729d))
## [4.6.1](https://github.com/bmadcode/BMAD-METHOD/compare/v4.6.0...v4.6.1) (2025-06-19) ## [4.6.1](https://github.com/bmadcode/BMAD-METHOD/compare/v4.6.0...v4.6.1) (2025-06-19)

View File

@@ -2,6 +2,12 @@
CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:
## Task and File Resolution
`Create Next Story`: `.bmad-core/tasks/create-next-story.md`
`story-tmpl`: `.bmad-core/templates/story-tmpl.md`
`story-draft-checklist`: `.bmad-core/checklists/story-draft-checklist.md`
```yaml ```yaml
activation-instructions: activation-instructions:
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
@@ -21,14 +27,14 @@ persona:
identity: Story creation expert who prepares detailed, actionable stories for AI developers identity: Story creation expert who prepares detailed, actionable stories for AI developers
focus: Creating crystal-clear stories that dumb AI agents can implement without confusion focus: Creating crystal-clear stories that dumb AI agents can implement without confusion
core_principles: core_principles:
- Task Adherence - Rigorously follow create-next-story procedures - Task Adherence - Rigorously follow `Create Next Story` procedures
- Checklist-Driven Validation - Apply story-draft-checklist meticulously - Checklist-Driven Validation - Apply story-draft-checklist meticulously
- Clarity for Developer Handoff - Stories must be immediately actionable - Clarity for Developer Handoff - Stories must be immediately actionable
- Focus on One Story at a Time - Complete one before starting next - Focus on One Story at a Time - Complete one before starting next
- Numbered Options Protocol - Always use numbered lists for selections - Numbered Options Protocol - Always use numbered lists for selections
startup: startup:
- Greet the user with your name and role, and inform of the *help command. - Greet the user with your name and role, and inform of the *help command.
- CRITICAL: Do NOT automatically execute create-next-story tasks during startup - CRITICAL: Do NOT automatically execute `Create Next Story` tasks during startup
- CRITICAL: Do NOT create or modify any files during startup - CRITICAL: Do NOT create or modify any files during startup
- Offer to help with story preparation but wait for explicit user confirmation - Offer to help with story preparation but wait for explicit user confirmation
- Only execute tasks when user explicitly requests them - Only execute tasks when user explicitly requests them
@@ -36,7 +42,7 @@ startup:
commands: commands:
- '*help" - Show: numbered list of the following commands to allow selection' - '*help" - Show: numbered list of the following commands to allow selection'
- '*chat-mode" - Conversational mode with advanced-elicitation for advice' - '*chat-mode" - Conversational mode with advanced-elicitation for advice'
- '*create" - Execute all steps in Create Next Story Task document' - '*create" - Execute all steps in `Create Next Story`'
- '*pivot" - Run correct-course task (ensure no story already created first)' - '*pivot" - Run correct-course task (ensure no story already created first)'
- '*checklist {checklist}" - Show numbered list of checklists, execute selection' - '*checklist {checklist}" - Show numbered list of checklists, execute selection'
- '*doc-shard {PRD|Architecture|Other}" - Execute shard-doc task' - '*doc-shard {PRD|Architecture|Other}" - Execute shard-doc task'

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "bmad-method", "name": "bmad-method",
"version": "4.6.1", "version": "4.6.3",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "bmad-method", "name": "bmad-method",
"version": "4.6.1", "version": "4.6.3",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@kayvan/markdown-tree-parser": "^1.5.0", "@kayvan/markdown-tree-parser": "^1.5.0",

View File

@@ -1,6 +1,6 @@
{ {
"name": "bmad-method", "name": "bmad-method",
"version": "4.6.1", "version": "4.6.3",
"description": "Breakthrough Method of Agile AI-driven Development", "description": "Breakthrough Method of Agile AI-driven Development",
"main": "tools/cli.js", "main": "tools/cli.js",
"bin": { "bin": {

View File

@@ -425,7 +425,10 @@ class Installer {
console.log(chalk.cyan("\n📦 Starting v3 to v4 upgrade process...")); console.log(chalk.cyan("\n📦 Starting v3 to v4 upgrade process..."));
const V3ToV4Upgrader = require("../../upgraders/v3-to-v4-upgrader"); const V3ToV4Upgrader = require("../../upgraders/v3-to-v4-upgrader");
const upgrader = new V3ToV4Upgrader(); const upgrader = new V3ToV4Upgrader();
return await upgrader.upgrade({ projectPath: installDir }); return await upgrader.upgrade({
projectPath: installDir,
ides: config.ides || [] // Pass IDE selections from initial config
});
} }
case "alongside": case "alongside":
return await this.performFreshInstall(config, installDir, spinner); return await this.performFreshInstall(config, installDir, spinner);

View File

@@ -1,6 +1,6 @@
{ {
"name": "bmad-method", "name": "bmad-method",
"version": "4.6.1", "version": "4.6.3",
"description": "BMAD Method installer - AI-powered Agile development framework", "description": "BMAD Method installer - AI-powered Agile development framework",
"main": "lib/installer.js", "main": "lib/installer.js",
"bin": { "bin": {

View File

@@ -98,7 +98,7 @@ class V3ToV4Upgrader {
// 8. Setup IDE // 8. Setup IDE
if (!options.dryRun) { if (!options.dryRun) {
await this.setupIDE(projectPath); await this.setupIDE(projectPath, options.ides);
} }
// 9. Show completion report // 9. Show completion report
@@ -379,8 +379,8 @@ class V3ToV4Upgrader {
const spinner = ora("Installing V4 structure...").start(); const spinner = ora("Installing V4 structure...").start();
try { try {
// Get the source .bmad-core directory // Get the source bmad-core directory (without dot prefix)
const sourcePath = path.join(__dirname, "..", "..", ".bmad-core"); const sourcePath = path.join(__dirname, "..", "..", "bmad-core");
const destPath = path.join(projectPath, ".bmad-core"); const destPath = path.join(projectPath, ".bmad-core");
// Copy .bmad-core // Copy .bmad-core
@@ -545,47 +545,37 @@ class V3ToV4Upgrader {
} }
} }
async setupIDE(projectPath) { async setupIDE(projectPath, selectedIdes) {
const { ide } = await inquirer.prompt([ // Use the IDE selections passed from the installer
{ if (!selectedIdes || selectedIdes.length === 0) {
type: "list", console.log(chalk.dim("No IDE setup requested - skipping"));
name: "ide", return;
message: "Which IDE are you using?", }
choices: [
{ name: "Cursor", value: "cursor" },
{ name: "Claude Code", value: "claude-code" },
{ name: "Windsurf", value: "windsurf" },
{ name: "Roo Code", value: "roo" },
{ name: "VS Code", value: "skip" },
{ name: "Other/Skip", value: "skip" },
],
},
]);
const selectedIde = ide === "skip" ? null : ide; const ideSetup = require("../installer/lib/ide-setup");
const spinner = ora("Setting up IDE rules for all agents...").start();
if (selectedIde) { try {
const ideSetup = require("../installer/lib/ide-setup"); const ideMessages = {
const spinner = ora("Setting up IDE rules for all agents...").start(); cursor: "Rules created in .cursor/rules/",
"claude-code": "Commands created in .claude/commands/",
windsurf: "Rules created in .windsurf/rules/",
roo: "Custom modes created in .roomodes",
};
try { // Setup each selected IDE
await ideSetup.setup(selectedIde, projectPath); for (const ide of selectedIdes) {
spinner.succeed("IDE setup complete!"); spinner.text = `Setting up ${ide}...`;
await ideSetup.setup(ide, projectPath);
const ideMessages = { console.log(chalk.green(`\n${ideMessages[ide]}`));
cursor: "Rules created in .cursor/rules/",
"claude-code": "Commands created in .claude/commands/",
windsurf: "Rules created in .windsurf/rules/",
roo: "Custom modes created in .roomodes",
};
console.log(chalk.green(`- ${ideMessages[selectedIde]}`));
} catch (error) {
spinner.fail("IDE setup failed");
console.error(
chalk.yellow("IDE setup failed, but upgrade is complete.")
);
} }
spinner.succeed(`IDE setup complete for ${selectedIdes.length} IDE(s)!`);
} catch (error) {
spinner.fail("IDE setup failed");
console.error(
chalk.yellow("IDE setup failed, but upgrade is complete.")
);
} }
} }