bmad-method 4.24.3 → 4.24.5

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.
Files changed (93) hide show
  1. package/.prettierignore +1 -1
  2. package/CHANGELOG.md +15 -1
  3. package/README.md +22 -22
  4. package/bmad-core/agents/analyst.md +1 -1
  5. package/bmad-core/agents/architect.md +1 -1
  6. package/bmad-core/agents/bmad-master.md +6 -6
  7. package/bmad-core/agents/bmad-orchestrator.md +10 -10
  8. package/bmad-core/agents/dev.md +1 -1
  9. package/bmad-core/agents/pm.md +1 -1
  10. package/bmad-core/agents/po.md +1 -1
  11. package/bmad-core/agents/qa.md +1 -1
  12. package/bmad-core/agents/sm.md +1 -1
  13. package/bmad-core/agents/ux-expert.md +1 -1
  14. package/bmad-core/checklists/change-checklist.md +2 -2
  15. package/bmad-core/data/bmad-kb.md +18 -18
  16. package/bmad-core/tasks/create-brownfield-story.md +2 -2
  17. package/bmad-core/tasks/create-next-story.md +2 -2
  18. package/bmad-core/tasks/kb-mode-interaction.md +13 -13
  19. package/common/utils/template-format.md +1 -1
  20. package/common/utils/workflow-management.md +1 -1
  21. package/dist/agents/analyst.txt +22 -22
  22. package/dist/agents/architect.txt +4 -4
  23. package/dist/agents/bmad-master.txt +32 -32
  24. package/dist/agents/bmad-orchestrator.txt +45 -45
  25. package/dist/agents/dev.txt +3 -3
  26. package/dist/agents/pm.txt +6 -6
  27. package/dist/agents/po.txt +6 -6
  28. package/dist/agents/qa.txt +4 -4
  29. package/dist/agents/sm.txt +6 -6
  30. package/dist/agents/ux-expert.txt +4 -4
  31. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +3 -3
  32. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +3 -3
  33. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +3 -3
  34. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +34 -34
  35. package/dist/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.txt +23 -23
  36. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +14 -14
  37. package/dist/teams/team-all.txt +57 -57
  38. package/dist/teams/team-fullstack.txt +52 -52
  39. package/dist/teams/team-ide-minimal.txt +53 -53
  40. package/dist/teams/team-no-ui.txt +51 -51
  41. package/docs/agentic-tools/claude-code-guide.md +5 -22
  42. package/docs/agentic-tools/cline-guide.md +3 -29
  43. package/docs/agentic-tools/cursor-guide.md +4 -27
  44. package/docs/agentic-tools/gemini-cli-guide.md +3 -17
  45. package/docs/agentic-tools/github-copilot-guide.md +22 -0
  46. package/docs/agentic-tools/roo-code-guide.md +3 -34
  47. package/docs/agentic-tools/windsurf-guide.md +4 -27
  48. package/docs/bmad-workflow-guide.md +8 -8
  49. package/docs/core-architecture.md +19 -184
  50. package/docs/expansion-packs.md +4 -4
  51. package/docs/how-to-contribute-with-pull-requests.md +1 -1
  52. package/docs/user-guide.md +29 -414
  53. package/docs/versions.md +4 -4
  54. package/docs/working-in-the-brownfield.md +9 -6
  55. package/expansion-packs/README.md +2 -2
  56. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +1 -1
  57. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +1 -1
  58. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +1 -1
  59. package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +1 -1
  60. package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +3 -3
  61. package/expansion-packs/bmad-creator-tools/README.md +2 -2
  62. package/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.md +9 -9
  63. package/expansion-packs/bmad-creator-tools/config.yaml +2 -2
  64. package/expansion-packs/bmad-creator-tools/tasks/create-agent.md +1 -1
  65. package/expansion-packs/bmad-creator-tools/tasks/generate-expansion-pack.md +9 -9
  66. package/expansion-packs/bmad-creator-tools/templates/agent-tmpl.md +1 -1
  67. package/expansion-packs/bmad-creator-tools/templates/expansion-pack-plan-tmpl.md +1 -1
  68. package/expansion-packs/bmad-infrastructure-devops/README.md +6 -6
  69. package/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +1 -1
  70. package/expansion-packs/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +1 -1
  71. package/expansion-packs/bmad-infrastructure-devops/config.yaml +1 -1
  72. package/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +4 -4
  73. package/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +4 -4
  74. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.md +2 -2
  75. package/package.json +1 -1
  76. package/tools/bmad-npx-wrapper.js +1 -1
  77. package/tools/builders/web-builder.js +2 -2
  78. package/tools/cli.js +2 -2
  79. package/tools/installer/README.md +1 -51
  80. package/tools/installer/bin/bmad.js +9 -9
  81. package/tools/installer/config/install.config.yaml +10 -10
  82. package/tools/installer/lib/config-loader.js +2 -2
  83. package/tools/installer/lib/ide-setup.js +14 -14
  84. package/tools/installer/lib/installer.js +79 -18
  85. package/tools/installer/package.json +3 -3
  86. package/tools/md-assets/web-agent-startup-instructions.md +2 -2
  87. package/tools/upgraders/v3-to-v4-upgrader.js +2 -2
  88. package/tools/version-bump.js +1 -1
  89. package/tools/yaml-format.js +1 -1
  90. package/docs/agentic-tools/vs-code-copilot-guide.md +0 -53
  91. package/tools/installer/templates/claude-commands.md +0 -7
  92. package/tools/installer/templates/cursor-rules.md +0 -22
  93. package/tools/installer/templates/windsurf-rules.md +0 -22
@@ -63,7 +63,7 @@ class IdeSetup {
63
63
  return this.setupCline(installDir, selectedAgent);
64
64
  case "gemini":
65
65
  return this.setupGeminiCli(installDir, selectedAgent);
66
- case "vs-code-copilot":
66
+ case "github-copilot":
67
67
  return this.setupVsCodeCopilot(installDir, selectedAgent, spinner);
68
68
  default:
69
69
  console.log(chalk.yellow(`\nIDE ${ide} not yet supported`));
@@ -98,7 +98,7 @@ class IdeSetup {
98
98
  )} agent persona.\n\n`;
99
99
  mdcContent += "## Agent Activation\n\n";
100
100
  mdcContent +=
101
- "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:\n\n";
101
+ "CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:\n\n";
102
102
  mdcContent += "```yaml\n";
103
103
  // Extract just the YAML content from the agent file
104
104
  const yamlContent = extractYamlFromAgent(agentContent);
@@ -116,7 +116,7 @@ class IdeSetup {
116
116
  mdcContent += `When the user types \`@${agentId}\`, activate this ${await this.getAgentTitle(
117
117
  agentId,
118
118
  installDir
119
- )} persona and follow all instructions defined in the YML configuration above.\n`;
119
+ )} persona and follow all instructions defined in the YAML configuration above.\n`;
120
120
 
121
121
  await fileManager.writeFile(mdcPath, mdcContent);
122
122
  console.log(chalk.green(`✓ Created rule: ${agentId}.mdc`));
@@ -180,7 +180,7 @@ class IdeSetup {
180
180
  )} agent persona.\n\n`;
181
181
  mdContent += "## Agent Activation\n\n";
182
182
  mdContent +=
183
- "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:\n\n";
183
+ "CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:\n\n";
184
184
  mdContent += "```yaml\n";
185
185
  // Extract just the YAML content from the agent file
186
186
  const yamlContent = extractYamlFromAgent(agentContent);
@@ -198,7 +198,7 @@ class IdeSetup {
198
198
  mdContent += `When the user types \`@${agentId}\`, activate this ${await this.getAgentTitle(
199
199
  agentId,
200
200
  installDir
201
- )} persona and follow all instructions defined in the YML configuration above.\n`;
201
+ )} persona and follow all instructions defined in the YAML configuration above.\n`;
202
202
 
203
203
  await fileManager.writeFile(mdPath, mdContent);
204
204
  console.log(chalk.green(`✓ Created rule: ${agentId}.md`));
@@ -362,7 +362,7 @@ class IdeSetup {
362
362
  newModesContent += ` whenToUse: ${whenToUse}\n`;
363
363
  // Get relative path from installDir to agent file
364
364
  const relativePath = path.relative(installDir, agentPath).replace(/\\/g, '/');
365
- newModesContent += ` customInstructions: CRITICAL Read the full YML from ${relativePath} start activation to alter your state of being follow startup section instructions stay in this being until told to exit this mode\n`;
365
+ newModesContent += ` customInstructions: CRITICAL Read the full YAML from ${relativePath} start activation to alter your state of being follow startup section instructions stay in this being until told to exit this mode\n`;
366
366
  newModesContent += ` groups:\n`;
367
367
  newModesContent += ` - read\n`;
368
368
 
@@ -559,8 +559,8 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
559
559
  }
560
560
  }
561
561
 
562
- console.log(chalk.green(`\n✓ VS Code Copilot setup complete!`));
563
- console.log(chalk.dim(`You can now find the BMAD agents in the Chat view's mode selector.`));
562
+ console.log(chalk.green(`\n✓ Github Copilot setup complete!`));
563
+ console.log(chalk.dim(`You can now find the BMad agents in the Chat view's mode selector.`));
564
564
 
565
565
  return true;
566
566
  }
@@ -578,7 +578,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
578
578
  try {
579
579
  const existingContent = await fileManager.readFile(settingsPath);
580
580
  existingSettings = JSON.parse(existingContent);
581
- console.log(chalk.yellow("Found existing .vscode/settings.json. Merging BMAD settings..."));
581
+ console.log(chalk.yellow("Found existing .vscode/settings.json. Merging BMad settings..."));
582
582
  } catch (error) {
583
583
  console.warn(chalk.yellow("Could not parse existing settings.json. Creating new one."));
584
584
  existingSettings = {};
@@ -587,15 +587,15 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
587
587
 
588
588
  // Clear any previous output and add spacing to avoid conflicts with loaders
589
589
  console.log('\n'.repeat(2));
590
- console.log(chalk.blue("🔧 VS Code Copilot Agent Settings Configuration"));
591
- console.log(chalk.dim("BMAD works best with specific VS Code settings for optimal agent experience."));
590
+ console.log(chalk.blue("🔧 Github Copilot Agent Settings Configuration"));
591
+ console.log(chalk.dim("BMad works best with specific VS Code settings for optimal agent experience."));
592
592
  console.log(''); // Add extra spacing
593
593
 
594
594
  const { configChoice } = await inquirer.prompt([
595
595
  {
596
596
  type: 'list',
597
597
  name: 'configChoice',
598
- message: 'How would you like to configure VS Code Copilot settings?',
598
+ message: 'How would you like to configure Github Copilot settings?',
599
599
  choices: [
600
600
  {
601
601
  name: 'Use recommended defaults (fastest setup)',
@@ -638,7 +638,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
638
638
  "github.copilot.chat.agent.autoFix": true,
639
639
  "chat.tools.autoApprove": false
640
640
  };
641
- console.log(chalk.green("✓ Using recommended BMAD defaults for VS Code Copilot settings"));
641
+ console.log(chalk.green("✓ Using recommended BMad defaults for Github Copilot settings"));
642
642
  } else {
643
643
  // Manual configuration
644
644
  console.log(chalk.blue("\n📋 Let's configure each setting for your preferences:"));
@@ -696,7 +696,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
696
696
  }
697
697
 
698
698
  bmadSettings = {
699
- "chat.agent.enabled": true, // Always enabled - required for BMAD agents
699
+ "chat.agent.enabled": true, // Always enabled - required for BMad agents
700
700
  "chat.agent.maxRequests": parseInt(manualSettings.maxRequests),
701
701
  "github.copilot.chat.agent.runTasks": manualSettings.runTasks,
702
702
  "chat.mcp.discovery.enabled": manualSettings.mcpDiscovery,
@@ -220,7 +220,7 @@ class Installer {
220
220
  });
221
221
 
222
222
  if (files.length > 0) {
223
- // Directory has other files, but no BMAD installation.
223
+ // Directory has other files, but no BMad installation.
224
224
  // Treat as clean install but record that it isn't empty.
225
225
  state.hasOtherFiles = true;
226
226
  }
@@ -235,7 +235,7 @@ class Installer {
235
235
  async performFreshInstall(config, installDir, spinner, options = {}) {
236
236
  // Ensure modules are initialized
237
237
  await initializeModules();
238
- spinner.text = "Installing BMAD Method...";
238
+ spinner.text = "Installing BMad Method...";
239
239
 
240
240
  let files = [];
241
241
 
@@ -396,7 +396,7 @@ class Installer {
396
396
  const newVersion = await this.getCoreVersion();
397
397
  const versionCompare = this.compareVersions(currentVersion, newVersion);
398
398
 
399
- console.log(chalk.yellow("\n🔍 Found existing BMAD v4 installation"));
399
+ console.log(chalk.yellow("\n🔍 Found existing BMad v4 installation"));
400
400
  console.log(` Directory: ${installDir}`);
401
401
  console.log(` Current version: ${currentVersion}`);
402
402
  console.log(` Available version: ${newVersion}`);
@@ -446,8 +446,8 @@ class Installer {
446
446
  let choices = [];
447
447
 
448
448
  if (versionCompare < 0) {
449
- console.log(chalk.cyan("\n⬆️ Upgrade available for BMAD core"));
450
- choices.push({ name: `Upgrade BMAD core (v${currentVersion} → v${newVersion})`, value: "upgrade" });
449
+ console.log(chalk.cyan("\n⬆️ Upgrade available for BMad core"));
450
+ choices.push({ name: `Upgrade BMad core (v${currentVersion} → v${newVersion})`, value: "upgrade" });
451
451
  } else if (versionCompare === 0) {
452
452
  if (hasIntegrityIssues) {
453
453
  // Offer repair option when files are missing or modified
@@ -457,10 +457,10 @@ class Installer {
457
457
  });
458
458
  }
459
459
  console.log(chalk.yellow("\n⚠️ Same version already installed"));
460
- choices.push({ name: `Force reinstall BMAD core (v${currentVersion} - reinstall)`, value: "reinstall" });
460
+ choices.push({ name: `Force reinstall BMad core (v${currentVersion} - reinstall)`, value: "reinstall" });
461
461
  } else {
462
462
  console.log(chalk.yellow("\n⬇️ Installed version is newer than available"));
463
- choices.push({ name: `Downgrade BMAD core (v${currentVersion} → v${newVersion})`, value: "reinstall" });
463
+ choices.push({ name: `Downgrade BMad core (v${currentVersion} → v${newVersion})`, value: "reinstall" });
464
464
  }
465
465
 
466
466
  choices.push(
@@ -535,7 +535,7 @@ class Installer {
535
535
  spinner.stop();
536
536
 
537
537
  console.log(
538
- chalk.yellow("\n🔍 Found BMAD v3 installation (bmad-agent/ directory)")
538
+ chalk.yellow("\n🔍 Found BMad v3 installation (bmad-agent/ directory)")
539
539
  );
540
540
  console.log(` Directory: ${installDir}`);
541
541
 
@@ -685,6 +685,10 @@ class Installer {
685
685
  };
686
686
 
687
687
  await this.performFreshInstall(config, installDir, spinner, { isUpdate: true });
688
+
689
+ // Clean up .yml files that now have .yaml counterparts
690
+ spinner.text = "Cleaning up legacy .yml files...";
691
+ await this.cleanupLegacyYmlFiles(installDir, spinner);
688
692
  } catch (error) {
689
693
  spinner.fail("Update failed");
690
694
  throw error;
@@ -737,12 +741,27 @@ class Installer {
737
741
  if (await fileManager.pathExists(sourcePath)) {
738
742
  await fileManager.copyFile(sourcePath, destPath);
739
743
  spinner.text = `Restored: ${file}`;
744
+
745
+ // If this is a .yaml file, check for and remove corresponding .yml file
746
+ if (file.endsWith('.yaml')) {
747
+ const ymlFile = file.replace(/\.yaml$/, '.yml');
748
+ const ymlPath = path.join(installDir, ymlFile);
749
+ if (await fileManager.pathExists(ymlPath)) {
750
+ const fs = require('fs').promises;
751
+ await fs.unlink(ymlPath);
752
+ console.log(chalk.dim(` Removed legacy: ${ymlFile} (replaced by ${file})`));
753
+ }
754
+ }
740
755
  } else {
741
756
  console.warn(chalk.yellow(` Warning: Source file not found: ${file}`));
742
757
  }
743
758
  }
744
759
  }
745
760
 
761
+ // Clean up .yml files that now have .yaml counterparts
762
+ spinner.text = "Cleaning up legacy .yml files...";
763
+ await this.cleanupLegacyYmlFiles(installDir, spinner);
764
+
746
765
  spinner.succeed("Repair completed successfully!");
747
766
 
748
767
  // Show summary
@@ -768,7 +787,7 @@ class Installer {
768
787
  }
769
788
 
770
789
  async performReinstall(config, installDir, spinner) {
771
- spinner.start("Preparing to reinstall BMAD Method...");
790
+ spinner.start("Preparing to reinstall BMad Method...");
772
791
 
773
792
  // Remove existing .bmad-core
774
793
  const bmadCorePath = path.join(installDir, ".bmad-core");
@@ -778,11 +797,17 @@ class Installer {
778
797
  }
779
798
 
780
799
  spinner.text = "Installing fresh copy...";
781
- return await this.performFreshInstall(config, installDir, spinner, { isUpdate: true });
800
+ const result = await this.performFreshInstall(config, installDir, spinner, { isUpdate: true });
801
+
802
+ // Clean up .yml files that now have .yaml counterparts
803
+ spinner.text = "Cleaning up legacy .yml files...";
804
+ await this.cleanupLegacyYmlFiles(installDir, spinner);
805
+
806
+ return result;
782
807
  }
783
808
 
784
809
  showSuccessMessage(config, installDir, options = {}) {
785
- console.log(chalk.green("\n✓ BMAD Method installed successfully!\n"));
810
+ console.log(chalk.green("\n✓ BMad Method installed successfully!\n"));
786
811
 
787
812
  const ides = config.ides || (config.ide ? [config.ide] : []);
788
813
  if (ides.length > 0) {
@@ -790,7 +815,7 @@ class Installer {
790
815
  const ideConfig = configLoader.getIdeConfiguration(ide);
791
816
  if (ideConfig?.instructions) {
792
817
  console.log(
793
- chalk.bold(`To use BMAD agents in ${ideConfig.name}:`)
818
+ chalk.bold(`To use BMad agents in ${ideConfig.name}:`)
794
819
  );
795
820
  console.log(ideConfig.instructions);
796
821
  }
@@ -879,7 +904,7 @@ class Installer {
879
904
  };
880
905
  return await this.install(config);
881
906
  }
882
- console.log(chalk.red("No BMAD installation found."));
907
+ console.log(chalk.red("No BMad installation found."));
883
908
  }
884
909
 
885
910
  async listAgents() {
@@ -887,7 +912,7 @@ class Installer {
887
912
  await initializeModules();
888
913
  const agents = await configLoader.getAvailableAgents();
889
914
 
890
- console.log(chalk.bold("\nAvailable BMAD Agents:\n"));
915
+ console.log(chalk.bold("\nAvailable BMad Agents:\n"));
891
916
 
892
917
  for (const agent of agents) {
893
918
  console.log(chalk.cyan(` ${agent.id.padEnd(20)}`), agent.description);
@@ -903,7 +928,7 @@ class Installer {
903
928
  await initializeModules();
904
929
  const expansionPacks = await this.getAvailableExpansionPacks();
905
930
 
906
- console.log(chalk.bold("\nAvailable BMAD Expansion Packs:\n"));
931
+ console.log(chalk.bold("\nAvailable BMad Expansion Packs:\n"));
907
932
 
908
933
  if (expansionPacks.length === 0) {
909
934
  console.log(chalk.yellow("No expansion packs found."));
@@ -932,7 +957,7 @@ class Installer {
932
957
 
933
958
  if (!installDir) {
934
959
  console.log(
935
- chalk.yellow("No BMAD installation found in current directory tree")
960
+ chalk.yellow("No BMad installation found in current directory tree")
936
961
  );
937
962
  return;
938
963
  }
@@ -944,7 +969,7 @@ class Installer {
944
969
  return;
945
970
  }
946
971
 
947
- console.log(chalk.bold("\nBMAD Installation Status:\n"));
972
+ console.log(chalk.bold("\nBMad Installation Status:\n"));
948
973
  console.log(` Directory: ${installDir}`);
949
974
  console.log(` Version: ${manifest.version}`);
950
975
  console.log(
@@ -1399,7 +1424,7 @@ class Installer {
1399
1424
  await initializeModules();
1400
1425
 
1401
1426
  try {
1402
- // Find the dist directory in the BMAD installation
1427
+ // Find the dist directory in the BMad installation
1403
1428
  const distDir = configLoader.getDistPath();
1404
1429
 
1405
1430
  if (!(await fileManager.pathExists(distDir))) {
@@ -1637,6 +1662,42 @@ class Installer {
1637
1662
  return 0;
1638
1663
  }
1639
1664
 
1665
+ async cleanupLegacyYmlFiles(installDir, spinner) {
1666
+ const glob = require('glob');
1667
+ const fs = require('fs').promises;
1668
+
1669
+ try {
1670
+ // Find all .yml files in the installation directory
1671
+ const ymlFiles = glob.sync('**/*.yml', {
1672
+ cwd: installDir,
1673
+ ignore: ['**/node_modules/**', '**/.git/**']
1674
+ });
1675
+
1676
+ let deletedCount = 0;
1677
+
1678
+ for (const ymlFile of ymlFiles) {
1679
+ // Check if corresponding .yaml file exists
1680
+ const yamlFile = ymlFile.replace(/\.yml$/, '.yaml');
1681
+ const ymlPath = path.join(installDir, ymlFile);
1682
+ const yamlPath = path.join(installDir, yamlFile);
1683
+
1684
+ if (await fileManager.pathExists(yamlPath)) {
1685
+ // .yaml counterpart exists, delete the .yml file
1686
+ await fs.unlink(ymlPath);
1687
+ deletedCount++;
1688
+ console.log(chalk.dim(` Removed legacy: ${ymlFile} (replaced by ${yamlFile})`));
1689
+ }
1690
+ }
1691
+
1692
+ if (deletedCount > 0) {
1693
+ console.log(chalk.green(`✓ Cleaned up ${deletedCount} legacy .yml files`));
1694
+ }
1695
+
1696
+ } catch (error) {
1697
+ console.warn(chalk.yellow(`Warning: Could not cleanup legacy .yml files: ${error.message}`));
1698
+ }
1699
+ }
1700
+
1640
1701
  async findInstallation() {
1641
1702
  // Look for .bmad-core in current directory or parent directories
1642
1703
  let currentDir = process.cwd();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bmad-method",
3
- "version": "4.24.3",
4
- "description": "BMAD Method installer - AI-powered Agile development framework",
3
+ "version": "4.24.5",
4
+ "description": "BMad Method installer - AI-powered Agile development framework",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {
7
7
  "bmad": "./bin/bmad.js",
@@ -19,7 +19,7 @@
19
19
  "installer",
20
20
  "agents"
21
21
  ],
22
- "author": "BMAD Team",
22
+ "author": "BMad Team",
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
25
  "chalk": "^5.4.1",
@@ -1,6 +1,6 @@
1
1
  # Web Agent Bundle Instructions
2
2
 
3
- You are now operating as a specialized AI agent from the BMAD-METHOD framework. This is a bundled web-compatible version containing all necessary resources for your role.
3
+ You are now operating as a specialized AI agent from the BMad-Method framework. This is a bundled web-compatible version containing all necessary resources for your role.
4
4
 
5
5
  ## Important Instructions
6
6
 
@@ -34,6 +34,6 @@ These references map directly to bundle sections:
34
34
 
35
35
  3. **Execution Context**: You are operating in a web environment. All your capabilities and knowledge are contained within this bundle. Work within these constraints to provide the best possible assistance.
36
36
 
37
- 4. **Primary Directive**: Your primary goal is defined in your agent configuration below. Focus on fulfilling your designated role according to the BMAD-METHOD framework.
37
+ 4. **Primary Directive**: Your primary goal is defined in your agent configuration below. Focus on fulfilling your designated role according to the BMad-Method framework.
38
38
 
39
39
  ---
@@ -26,10 +26,10 @@ class V3ToV4Upgrader {
26
26
 
27
27
  // 1. Welcome message
28
28
  console.log(
29
- chalk.bold("\nWelcome to BMAD-METHOD V3 to V4 Upgrade Tool\n")
29
+ chalk.bold("\nWelcome to BMad-Method V3 to V4 Upgrade Tool\n")
30
30
  );
31
31
  console.log(
32
- "This tool will help you upgrade your BMAD-METHOD V3 project to V4.\n"
32
+ "This tool will help you upgrade your BMad-Method V3 project to V4.\n"
33
33
  );
34
34
  console.log(chalk.cyan("What this tool does:"));
35
35
  console.log("- Creates a backup of your V3 files (.bmad-v3-backup/)");
@@ -15,7 +15,7 @@ async function initializeModules() {
15
15
  }
16
16
 
17
17
  /**
18
- * Simple version bumping script for BMAD-METHOD
18
+ * Simple version bumping script for BMad-Method
19
19
  * Usage: node tools/version-bump.js [patch|minor|major]
20
20
  */
21
21
 
@@ -16,7 +16,7 @@ async function initializeModules() {
16
16
  }
17
17
 
18
18
  /**
19
- * YAML Formatter and Linter for BMAD-METHOD
19
+ * YAML Formatter and Linter for BMad-Method
20
20
  * Formats and validates YAML files and YAML embedded in Markdown
21
21
  */
22
22
 
@@ -1,53 +0,0 @@
1
- # BMAD Method Guide for Visual Studio Code
2
-
3
- This guide covers the setup and usage of the BMAD Method in Visual Studio Code. For the complete workflow, see the [BMAD Workflow Guide](../bmad-workflow-guide.md).
4
-
5
- ## Installation
6
-
7
- When running `npx bmad-method install`, select **Visual Studio Code** as your IDE. This command will perform the following actions:
8
-
9
- - Create the `.bmad-core/` directory with all the agent rule files.
10
-
11
- - Create the `.vscode/` directory and add a `settings.json` file with the basic configuration to enable GitHub Copilot's agent mode.
12
-
13
- ## Using BMAD Agents in VS Code
14
-
15
- 1. In the GitHub Copilot Chat window, select **Agent** from the chat mode dropdown list (usually located next to the input field).
16
-
17
- 2. Once in Agent Mode, type `@` and the agent's name in the chat input to activate it:
18
-
19
- - `@bmad-master` - Universal task executor
20
-
21
- - `@sm` - Scrum Master
22
-
23
- - `@dev` - Full-stack developer
24
-
25
- - `@architect` - Solution architect
26
-
27
- - `@pm` - Product manager
28
-
29
- - `@analyst` - Business analyst
30
-
31
- - `@qa` - QA specialist
32
-
33
- - `@po` - Product owner
34
-
35
- - `@ux-expert` - UX specialist
36
-
37
- ## VS Code Specific Features
38
-
39
- - **Dynamic Configuration**: When you first invoke an agent (e.g., `@dev`), VS Code will automatically update `.vscode/settings.json` by adding the configuration for that chat mode.
40
-
41
- - **Activation**: Use the `@` prefix in the GitHub Copilot Chat for instant switching between agents.
42
-
43
- - **Collaboration**: Fully compatible with **Live Share**, allowing you, your team, and BMAD agents to work together in real-time.
44
-
45
- - **Project Context**: Agents have full access to your workspace, including open files and the selected code.
46
-
47
- ## Tips for VS Code Users
48
-
49
- - Use the `help` command (e.g., `@dev help`) to see the available commands for each agent.
50
-
51
- - Use `@workspace` in the Copilot Chat to ask questions about your entire project.
52
-
53
- - Consider adding `.vscode/` and `.bmad-core/` to your `.gitignore` file in team projects to avoid conflicts with personal settings.
@@ -1,7 +0,0 @@
1
- # {{AGENT_NAME}} Agent
2
-
3
- {{AGENT_CONTENT}}
4
-
5
- ---
6
-
7
- This is a BMAD Method agent. For more information, visit: https://github.com/your-org/bmad-method
@@ -1,22 +0,0 @@
1
- # BMAD Method Agents for Cursor
2
-
3
- This file contains all BMAD Method agent personas. To use an agent, type its name or alias in the Cursor chat.
4
-
5
- ## Available Agents
6
-
7
- {{AGENT_LIST}}
8
-
9
- ---
10
-
11
- {{AGENT_RULES}}
12
-
13
- ---
14
-
15
- # Agent Switching
16
-
17
- To switch between agents during a conversation:
18
-
19
- 1. Simply type the new agent name (e.g., "architect" or "dev")
20
- 2. The AI will adopt that agent's persona
21
-
22
- For more information about BMAD Method, visit: https://github.com/your-org/bmad-method
@@ -1,22 +0,0 @@
1
- # BMAD Method Agent Commands
2
-
3
- This file contains all BMAD Method agent commands for Windsurf. Use /agent-name to switch personas.
4
-
5
- ## Available Commands
6
-
7
- {{COMMAND_LIST}}
8
-
9
- ---
10
-
11
- {{AGENT_SECTIONS}}
12
-
13
- ---
14
-
15
- # Usage Tips
16
-
17
- - Type `/dev` to switch to Developer persona
18
- - Type `/pm` to switch to Product Manager persona
19
- - Type `/architect` to switch to Architect persona
20
- - And so on for other agents...
21
-
22
- For more information about BMAD Method, visit: https://github.com/your-org/bmad-method