bmad-method 4.6.1 → 4.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [4.6.3](https://github.com/bmadcode/BMAD-METHOD/compare/v4.6.2...v4.6.3) (2025-06-19)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * SM fixed file resolution issue in v4 ([61ab116](https://github.com/bmadcode/BMAD-METHOD/commit/61ab1161e59a92d657ab663082abcaf26729fa6b))
7
+
8
+ ## [4.6.2](https://github.com/bmadcode/BMAD-METHOD/compare/v4.6.1...v4.6.2) (2025-06-19)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * installer upgrade path fixed ([bd6a558](https://github.com/bmadcode/BMAD-METHOD/commit/bd6a55892906077a700f488bde175b57e846729d))
14
+
1
15
  ## [4.6.1](https://github.com/bmadcode/BMAD-METHOD/compare/v4.6.0...v4.6.1) (2025-06-19)
2
16
 
3
17
 
@@ -2,6 +2,12 @@
2
2
 
3
3
  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:
4
4
 
5
+ ## Task and File Resolution
6
+
7
+ `Create Next Story`: `.bmad-core/tasks/create-next-story.md`
8
+ `story-tmpl`: `.bmad-core/templates/story-tmpl.md`
9
+ `story-draft-checklist`: `.bmad-core/checklists/story-draft-checklist.md`
10
+
5
11
  ```yaml
6
12
  activation-instructions:
7
13
  - 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:
21
27
  identity: Story creation expert who prepares detailed, actionable stories for AI developers
22
28
  focus: Creating crystal-clear stories that dumb AI agents can implement without confusion
23
29
  core_principles:
24
- - Task Adherence - Rigorously follow create-next-story procedures
30
+ - Task Adherence - Rigorously follow `Create Next Story` procedures
25
31
  - Checklist-Driven Validation - Apply story-draft-checklist meticulously
26
32
  - Clarity for Developer Handoff - Stories must be immediately actionable
27
33
  - Focus on One Story at a Time - Complete one before starting next
28
34
  - Numbered Options Protocol - Always use numbered lists for selections
29
35
  startup:
30
36
  - Greet the user with your name and role, and inform of the *help command.
31
- - CRITICAL: Do NOT automatically execute create-next-story tasks during startup
37
+ - CRITICAL: Do NOT automatically execute `Create Next Story` tasks during startup
32
38
  - CRITICAL: Do NOT create or modify any files during startup
33
39
  - Offer to help with story preparation but wait for explicit user confirmation
34
40
  - Only execute tasks when user explicitly requests them
@@ -36,7 +42,7 @@ startup:
36
42
  commands:
37
43
  - '*help" - Show: numbered list of the following commands to allow selection'
38
44
  - '*chat-mode" - Conversational mode with advanced-elicitation for advice'
39
- - '*create" - Execute all steps in Create Next Story Task document'
45
+ - '*create" - Execute all steps in `Create Next Story`'
40
46
  - '*pivot" - Run correct-course task (ensure no story already created first)'
41
47
  - '*checklist {checklist}" - Show numbered list of checklists, execute selection'
42
48
  - '*doc-shard {PRD|Architecture|Other}" - Execute shard-doc task'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bmad-method",
3
- "version": "4.6.1",
3
+ "version": "4.6.3",
4
4
  "description": "Breakthrough Method of Agile AI-driven Development",
5
5
  "main": "tools/cli.js",
6
6
  "bin": {
@@ -425,7 +425,10 @@ class Installer {
425
425
  console.log(chalk.cyan("\nšŸ“¦ Starting v3 to v4 upgrade process..."));
426
426
  const V3ToV4Upgrader = require("../../upgraders/v3-to-v4-upgrader");
427
427
  const upgrader = new V3ToV4Upgrader();
428
- return await upgrader.upgrade({ projectPath: installDir });
428
+ return await upgrader.upgrade({
429
+ projectPath: installDir,
430
+ ides: config.ides || [] // Pass IDE selections from initial config
431
+ });
429
432
  }
430
433
  case "alongside":
431
434
  return await this.performFreshInstall(config, installDir, spinner);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bmad-method",
3
- "version": "4.6.1",
3
+ "version": "4.6.3",
4
4
  "description": "BMAD Method installer - AI-powered Agile development framework",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {
@@ -98,7 +98,7 @@ class V3ToV4Upgrader {
98
98
 
99
99
  // 8. Setup IDE
100
100
  if (!options.dryRun) {
101
- await this.setupIDE(projectPath);
101
+ await this.setupIDE(projectPath, options.ides);
102
102
  }
103
103
 
104
104
  // 9. Show completion report
@@ -379,8 +379,8 @@ class V3ToV4Upgrader {
379
379
  const spinner = ora("Installing V4 structure...").start();
380
380
 
381
381
  try {
382
- // Get the source .bmad-core directory
383
- const sourcePath = path.join(__dirname, "..", "..", ".bmad-core");
382
+ // Get the source bmad-core directory (without dot prefix)
383
+ const sourcePath = path.join(__dirname, "..", "..", "bmad-core");
384
384
  const destPath = path.join(projectPath, ".bmad-core");
385
385
 
386
386
  // Copy .bmad-core
@@ -545,47 +545,37 @@ class V3ToV4Upgrader {
545
545
  }
546
546
  }
547
547
 
548
- async setupIDE(projectPath) {
549
- const { ide } = await inquirer.prompt([
550
- {
551
- type: "list",
552
- name: "ide",
553
- message: "Which IDE are you using?",
554
- choices: [
555
- { name: "Cursor", value: "cursor" },
556
- { name: "Claude Code", value: "claude-code" },
557
- { name: "Windsurf", value: "windsurf" },
558
- { name: "Roo Code", value: "roo" },
559
- { name: "VS Code", value: "skip" },
560
- { name: "Other/Skip", value: "skip" },
561
- ],
562
- },
563
- ]);
564
-
565
- const selectedIde = ide === "skip" ? null : ide;
566
-
567
- if (selectedIde) {
568
- const ideSetup = require("../installer/lib/ide-setup");
569
- const spinner = ora("Setting up IDE rules for all agents...").start();
570
-
571
- try {
572
- await ideSetup.setup(selectedIde, projectPath);
573
- spinner.succeed("IDE setup complete!");
548
+ async setupIDE(projectPath, selectedIdes) {
549
+ // Use the IDE selections passed from the installer
550
+ if (!selectedIdes || selectedIdes.length === 0) {
551
+ console.log(chalk.dim("No IDE setup requested - skipping"));
552
+ return;
553
+ }
574
554
 
575
- const ideMessages = {
576
- cursor: "Rules created in .cursor/rules/",
577
- "claude-code": "Commands created in .claude/commands/",
578
- windsurf: "Rules created in .windsurf/rules/",
579
- roo: "Custom modes created in .roomodes",
580
- };
555
+ const ideSetup = require("../installer/lib/ide-setup");
556
+ const spinner = ora("Setting up IDE rules for all agents...").start();
581
557
 
582
- console.log(chalk.green(`- ${ideMessages[selectedIde]}`));
583
- } catch (error) {
584
- spinner.fail("IDE setup failed");
585
- console.error(
586
- chalk.yellow("IDE setup failed, but upgrade is complete.")
587
- );
558
+ try {
559
+ const ideMessages = {
560
+ cursor: "Rules created in .cursor/rules/",
561
+ "claude-code": "Commands created in .claude/commands/",
562
+ windsurf: "Rules created in .windsurf/rules/",
563
+ roo: "Custom modes created in .roomodes",
564
+ };
565
+
566
+ // Setup each selected IDE
567
+ for (const ide of selectedIdes) {
568
+ spinner.text = `Setting up ${ide}...`;
569
+ await ideSetup.setup(ide, projectPath);
570
+ console.log(chalk.green(`\nāœ“ ${ideMessages[ide]}`));
588
571
  }
572
+
573
+ spinner.succeed(`IDE setup complete for ${selectedIdes.length} IDE(s)!`);
574
+ } catch (error) {
575
+ spinner.fail("IDE setup failed");
576
+ console.error(
577
+ chalk.yellow("IDE setup failed, but upgrade is complete.")
578
+ );
589
579
  }
590
580
  }
591
581