bmad-method 4.4.1 → 4.5.0

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 (96) hide show
  1. package/.prettierignore +22 -0
  2. package/.prettierrc +23 -0
  3. package/CHANGELOG.md +26 -2
  4. package/README.md +46 -39
  5. package/bmad-core/agent-teams/team-all.yml +1 -1
  6. package/bmad-core/agent-teams/team-fullstack.yml +1 -1
  7. package/bmad-core/agent-teams/team-ide-minimal.yml +10 -0
  8. package/bmad-core/agent-teams/team-no-ui.yml +1 -1
  9. package/bmad-core/agents/bmad-orchestrator.md +11 -11
  10. package/bmad-core/agents/sm.md +1 -1
  11. package/bmad-core/tasks/shard-doc.md +3 -5
  12. package/bmad-core/templates/architecture-tmpl.md +2 -2
  13. package/bmad-core/templates/brownfield-architecture-tmpl.md +4 -4
  14. package/bmad-core/templates/front-end-spec-tmpl.md +4 -4
  15. package/bmad-core/templates/fullstack-architecture-tmpl.md +2 -2
  16. package/bmad-core/utils/workflow-management.md +4 -4
  17. package/{bmad-core/web-bundles → dist}/agents/bmad-master.txt +0 -176
  18. package/{expansion-packs/bmad-2d-phaser-game-dev/web-bundles/teams/team-game-dev.txt → dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt} +4 -4
  19. package/dist/expansion-packs/expansion-creator/agents/bmad-the-creator.txt +1561 -0
  20. package/dist/teams/team-all.txt +10307 -0
  21. package/dist/teams/team-fullstack.txt +9659 -0
  22. package/dist/teams/team-ide-minimal.txt +2739 -0
  23. package/dist/teams/team-no-ui.txt +8519 -0
  24. package/docs/roo-code-guide.md +2 -2
  25. package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yml +12 -0
  26. package/expansion-packs/expansion-creator/README.md +8 -0
  27. package/expansion-packs/expansion-creator/agents/bmad-the-creator.md +53 -0
  28. package/expansion-packs/expansion-creator/common-tasks/create-doc.md +74 -0
  29. package/expansion-packs/expansion-creator/common-tasks/execute-checklist.md +97 -0
  30. package/expansion-packs/expansion-creator/manifest.yml +12 -0
  31. package/{creator-tools → expansion-packs/expansion-creator}/tasks/create-agent.md +4 -4
  32. package/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md +1026 -0
  33. package/expansion-packs/expansion-creator/templates/agent-teams-tmpl.md +154 -0
  34. package/expansion-packs/expansion-creator/templates/agent-tmpl.md +140 -0
  35. package/expansion-packs/expansion-creator/utils/template-format.md +26 -0
  36. package/expansion-packs/expansion-creator/utils/workflow-management.md +223 -0
  37. package/package.json +3 -15
  38. package/tools/builders/web-builder.js +2 -4
  39. package/tools/cli.js +0 -15
  40. package/tools/installer/bin/bmad.js +167 -27
  41. package/tools/installer/lib/config-loader.js +82 -4
  42. package/tools/installer/lib/ide-setup.js +4 -4
  43. package/tools/installer/lib/installer.js +198 -29
  44. package/tools/installer/package.json +1 -1
  45. package/.claude/commands/analyst.md +0 -63
  46. package/.claude/commands/architect.md +0 -65
  47. package/.claude/commands/bmad-master.md +0 -103
  48. package/.claude/commands/bmad-orchestrator.md +0 -132
  49. package/.claude/commands/dev.md +0 -74
  50. package/.claude/commands/pm.md +0 -63
  51. package/.claude/commands/po.md +0 -64
  52. package/.claude/commands/qa.md +0 -56
  53. package/.claude/commands/sm.md +0 -59
  54. package/.claude/commands/ux-expert.md +0 -70
  55. package/.cursor/rules/analyst.mdc +0 -77
  56. package/.cursor/rules/architect.mdc +0 -79
  57. package/.cursor/rules/bmad-master.mdc +0 -117
  58. package/.cursor/rules/bmad-orchestrator.mdc +0 -146
  59. package/.cursor/rules/dev.mdc +0 -88
  60. package/.cursor/rules/pm.mdc +0 -77
  61. package/.cursor/rules/po.mdc +0 -78
  62. package/.cursor/rules/qa.mdc +0 -70
  63. package/.cursor/rules/sm.mdc +0 -73
  64. package/.cursor/rules/ux-expert.mdc +0 -84
  65. package/.roo/.roomodes +0 -95
  66. package/.roo/README.md +0 -27
  67. package/.windsurf/rules/analyst.md +0 -71
  68. package/.windsurf/rules/architect.md +0 -73
  69. package/.windsurf/rules/bmad-master.md +0 -111
  70. package/.windsurf/rules/bmad-orchestrator.md +0 -140
  71. package/.windsurf/rules/dev.md +0 -82
  72. package/.windsurf/rules/pm.md +0 -71
  73. package/.windsurf/rules/po.md +0 -72
  74. package/.windsurf/rules/qa.md +0 -64
  75. package/.windsurf/rules/sm.md +0 -67
  76. package/.windsurf/rules/ux-expert.md +0 -78
  77. package/bmad-core/bmad-core-config.yml +0 -60
  78. package/bmad-core/templates/agent-tmpl.md +0 -58
  79. package/bmad-core/utils/agent-switcher.ide.md +0 -112
  80. package/creator-tools/tasks/generate-expansion-pack.md +0 -427
  81. package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/team-game-dev.yml +0 -12
  82. package/expansion-packs/bmad-2d-phaser-game-dev/web-bundles/team-game-dev.txt +0 -4395
  83. /package/{bmad-core/web-bundles → dist}/agents/analyst.txt +0 -0
  84. /package/{bmad-core/web-bundles → dist}/agents/architect.txt +0 -0
  85. /package/{bmad-core/web-bundles → dist}/agents/bmad-orchestrator.txt +0 -0
  86. /package/{bmad-core/web-bundles → dist}/agents/dev.txt +0 -0
  87. /package/{bmad-core/web-bundles → dist}/agents/pm.txt +0 -0
  88. /package/{bmad-core/web-bundles → dist}/agents/po.txt +0 -0
  89. /package/{bmad-core/web-bundles → dist}/agents/qa.txt +0 -0
  90. /package/{bmad-core/web-bundles → dist}/agents/sm.txt +0 -0
  91. /package/{bmad-core/web-bundles → dist}/agents/ux-expert.txt +0 -0
  92. /package/{expansion-packs/bmad-2d-phaser-game-dev/web-bundles → dist/expansion-packs/bmad-2d-phaser-game-dev}/agents/game-designer.txt +0 -0
  93. /package/{expansion-packs/bmad-2d-phaser-game-dev/web-bundles → dist/expansion-packs/bmad-2d-phaser-game-dev}/agents/game-developer.txt +0 -0
  94. /package/{expansion-packs/bmad-2d-phaser-game-dev/web-bundles → dist/expansion-packs/bmad-2d-phaser-game-dev}/agents/game-sm.txt +0 -0
  95. /package/{expansion-packs/bmad-infrastructure-devops/web-bundles → dist/expansion-packs/bmad-infrastructure-devops}/agents/infra-devops-platform.txt +0 -0
  96. /package/{bmad-core → expansion-packs/expansion-creator}/templates/expansion-pack-plan-tmpl.md +0 -0
@@ -23,12 +23,23 @@ class Installer {
23
23
  const spinner = ora("Analyzing installation directory...").start();
24
24
 
25
25
  try {
26
- // Resolve installation directory
27
- let installDir = path.resolve(config.directory);
26
+ // Store the original CWD where npx was executed
27
+ const originalCwd = process.env.INIT_CWD || process.env.PWD || process.cwd();
28
+
29
+ // Resolve installation directory relative to where the user ran the command
30
+ let installDir = path.isAbsolute(config.directory)
31
+ ? config.directory
32
+ : path.resolve(originalCwd, config.directory);
33
+
28
34
  if (path.basename(installDir) === '.bmad-core') {
29
35
  // If user points directly to .bmad-core, treat its parent as the project root
30
36
  installDir = path.dirname(installDir);
31
37
  }
38
+
39
+ // Log resolved path for clarity
40
+ if (!path.isAbsolute(config.directory)) {
41
+ spinner.text = `Resolving "${config.directory}" to: ${installDir}`;
42
+ }
32
43
 
33
44
  // Check if directory exists and handle non-existent directories
34
45
  if (!(await fileManager.pathExists(installDir))) {
@@ -74,6 +85,7 @@ class Installer {
74
85
  }
75
86
  }
76
87
  ]);
88
+ // Preserve the original CWD for the recursive call
77
89
  config.directory = newDirectory;
78
90
  return await this.install(config); // Recursive call with new directory
79
91
  } else if (action === 'create') {
@@ -220,11 +232,12 @@ class Installer {
220
232
  const agentPath = configLoader.getAgentPath(config.agent);
221
233
  const destAgentPath = path.join(
222
234
  installDir,
235
+ ".bmad-core",
223
236
  "agents",
224
237
  `${config.agent}.md`
225
238
  );
226
239
  await fileManager.copyFile(agentPath, destAgentPath);
227
- files.push(`agents/${config.agent}.md`);
240
+ files.push(`.bmad-core/agents/${config.agent}.md`);
228
241
 
229
242
  // Copy dependencies
230
243
  const dependencies = await configLoader.getAgentDependencies(
@@ -240,9 +253,9 @@ class Installer {
240
253
  const copiedFiles = await fileManager.copyGlobPattern(
241
254
  dep.replace(".bmad-core/", ""),
242
255
  sourceBase,
243
- installDir
256
+ path.join(installDir, ".bmad-core")
244
257
  );
245
- files.push(...copiedFiles);
258
+ files.push(...copiedFiles.map(f => `.bmad-core/${f}`));
246
259
  } else {
247
260
  // Handle single files
248
261
  const sourcePath = path.join(
@@ -251,20 +264,84 @@ class Installer {
251
264
  );
252
265
  const destPath = path.join(
253
266
  installDir,
254
- dep.replace(".bmad-core/", "")
267
+ dep
255
268
  );
256
269
 
257
270
  if (await fileManager.copyFile(sourcePath, destPath)) {
258
- files.push(dep.replace(".bmad-core/", ""));
271
+ files.push(dep);
272
+ }
273
+ }
274
+ }
275
+ } else if (config.installType === "team") {
276
+ // Team installation
277
+ spinner.text = `Installing ${config.team} team...`;
278
+
279
+ // Get team dependencies
280
+ const teamDependencies = await configLoader.getTeamDependencies(config.team);
281
+ const sourceBase = configLoader.getBmadCorePath();
282
+
283
+ // Install all team dependencies
284
+ for (const dep of teamDependencies) {
285
+ spinner.text = `Copying team dependency: ${dep}`;
286
+
287
+ if (dep.includes("*")) {
288
+ // Handle glob patterns
289
+ const copiedFiles = await fileManager.copyGlobPattern(
290
+ dep.replace(".bmad-core/", ""),
291
+ sourceBase,
292
+ path.join(installDir, ".bmad-core")
293
+ );
294
+ files.push(...copiedFiles.map(f => `.bmad-core/${f}`));
295
+ } else {
296
+ // Handle single files
297
+ const sourcePath = path.join(sourceBase, dep.replace(".bmad-core/", ""));
298
+ const destPath = path.join(installDir, dep);
299
+
300
+ if (await fileManager.copyFile(sourcePath, destPath)) {
301
+ files.push(dep);
259
302
  }
260
303
  }
261
304
  }
305
+ } else if (config.installType === "expansion-only") {
306
+ // Expansion-only installation - create minimal .bmad-core structure
307
+ spinner.text = "Creating minimal .bmad-core structure for expansion packs...";
308
+
309
+ const bmadCoreDestDir = path.join(installDir, ".bmad-core");
310
+ await fileManager.ensureDirectory(bmadCoreDestDir);
311
+
312
+ // Create basic directory structure
313
+ const dirs = ['agents', 'agent-teams', 'templates', 'tasks', 'checklists', 'workflows', 'data', 'utils', 'schemas'];
314
+ for (const dir of dirs) {
315
+ await fileManager.ensureDirectory(path.join(bmadCoreDestDir, dir));
316
+ }
317
+
318
+ // Copy minimal required files (schemas, utils, etc.)
319
+ const sourceBase = configLoader.getBmadCorePath();
320
+ const essentialFiles = [
321
+ 'schemas/**/*',
322
+ 'utils/**/*'
323
+ ];
324
+
325
+ for (const pattern of essentialFiles) {
326
+ const copiedFiles = await fileManager.copyGlobPattern(
327
+ pattern,
328
+ sourceBase,
329
+ bmadCoreDestDir
330
+ );
331
+ files.push(...copiedFiles.map(f => `.bmad-core/${f}`));
332
+ }
262
333
  }
263
334
 
264
335
  // Install expansion packs if requested
265
336
  const expansionFiles = await this.installExpansionPacks(installDir, config.expansionPacks, spinner);
266
337
  files.push(...expansionFiles);
267
338
 
339
+ // Install web bundles if requested
340
+ if (config.includeWebBundles && config.webBundlesDirectory) {
341
+ spinner.text = "Installing web bundles...";
342
+ await this.installWebBundles(config.webBundlesDirectory, config, spinner);
343
+ }
344
+
268
345
  // Set up IDE integration if requested
269
346
  const ides = config.ides || (config.ide ? [config.ide] : []);
270
347
  if (ides.length > 0) {
@@ -514,6 +591,11 @@ class Installer {
514
591
  console.log(chalk.green(`✓ Expansion packs installed: ${packNames}`));
515
592
  }
516
593
 
594
+ if (config.includeWebBundles && config.webBundlesDirectory) {
595
+ const bundleInfo = this.getWebBundleInfo(config);
596
+ console.log(chalk.green(`✓ Web bundles (${bundleInfo}) installed to: ${config.webBundlesDirectory}`));
597
+ }
598
+
517
599
  if (ides.length > 0) {
518
600
  const ideNames = ides.map(ide => {
519
601
  const ideConfig = configLoader.getIdeConfiguration(ide);
@@ -523,11 +605,13 @@ class Installer {
523
605
  }
524
606
 
525
607
  // Information about web bundles
526
- console.log(chalk.bold("\n📦 Web Bundles Available:"));
527
- console.log("Self-contained web bundles have been included in your installation:");
528
- console.log(chalk.cyan(` ${installDir}/.bmad-core/web-bundles/`));
529
- console.log("These bundles work independently without this installation and can be");
530
- console.log("shared, moved, or used in other projects as standalone files.");
608
+ if (!config.includeWebBundles) {
609
+ console.log(chalk.bold("\n📦 Web Bundles Available:"));
610
+ console.log("Pre-built web bundles are available and can be added later:");
611
+ console.log(chalk.cyan(" Run the installer again to add them to your project"));
612
+ console.log("These bundles work independently and can be shared, moved, or used");
613
+ console.log("in other projects as standalone files.");
614
+ }
531
615
 
532
616
  if (config.installType === "single-agent") {
533
617
  console.log(
@@ -664,6 +748,10 @@ class Installer {
664
748
  return configLoader.getAvailableExpansionPacks();
665
749
  }
666
750
 
751
+ async getAvailableTeams() {
752
+ return configLoader.getAvailableTeams();
753
+ }
754
+
667
755
  async installExpansionPacks(installDir, selectedPacks, spinner) {
668
756
  if (!selectedPacks || selectedPacks.length === 0) {
669
757
  return [];
@@ -723,23 +811,7 @@ class Installer {
723
811
  }
724
812
  }
725
813
 
726
- // Also copy web-bundles if they exist (to a different location)
727
- const webBundlesSource = path.join(expansionPackDir, 'web-bundles');
728
- if (await fileManager.pathExists(webBundlesSource)) {
729
- const files = glob.sync('**/*', {
730
- cwd: webBundlesSource,
731
- nodir: true
732
- });
733
-
734
- for (const file of files) {
735
- const sourcePath = path.join(webBundlesSource, file);
736
- const destPath = path.join(installDir, '.bmad-core', 'web-bundles', 'expansion-packs', packId, file);
737
-
738
- if (await fileManager.copyFile(sourcePath, destPath)) {
739
- installedFiles.push(path.join('.bmad-core', 'web-bundles', 'expansion-packs', packId, file));
740
- }
741
- }
742
- }
814
+ // Web bundles are now available in the dist/ directory and don't need to be copied
743
815
 
744
816
  console.log(chalk.green(`✓ Installed expansion pack: ${pack.name}`));
745
817
  } catch (error) {
@@ -750,6 +822,103 @@ class Installer {
750
822
  return installedFiles;
751
823
  }
752
824
 
825
+ getWebBundleInfo(config) {
826
+ const webBundleType = config.webBundleType || 'all';
827
+
828
+ switch (webBundleType) {
829
+ case 'all':
830
+ return 'all bundles';
831
+ case 'agents':
832
+ return 'individual agents only';
833
+ case 'teams':
834
+ return config.selectedWebBundleTeams ?
835
+ `teams: ${config.selectedWebBundleTeams.join(', ')}` :
836
+ 'selected teams';
837
+ case 'custom':
838
+ const parts = [];
839
+ if (config.selectedWebBundleTeams && config.selectedWebBundleTeams.length > 0) {
840
+ parts.push(`teams: ${config.selectedWebBundleTeams.join(', ')}`);
841
+ }
842
+ if (config.includeIndividualAgents) {
843
+ parts.push('individual agents');
844
+ }
845
+ return parts.length > 0 ? parts.join(' + ') : 'custom selection';
846
+ default:
847
+ return 'selected bundles';
848
+ }
849
+ }
850
+
851
+ async installWebBundles(webBundlesDirectory, config, spinner) {
852
+ // Ensure modules are initialized
853
+ await initializeModules();
854
+
855
+ try {
856
+ // Find the dist directory in the BMAD installation
857
+ const distDir = configLoader.getDistPath();
858
+
859
+ if (!(await fileManager.pathExists(distDir))) {
860
+ console.warn(chalk.yellow('Web bundles not found. Run "npm run build" to generate them.'));
861
+ return;
862
+ }
863
+
864
+ // Ensure web bundles directory exists
865
+ await fileManager.ensureDirectory(webBundlesDirectory);
866
+
867
+ const webBundleType = config.webBundleType || 'all';
868
+
869
+ if (webBundleType === 'all') {
870
+ // Copy the entire dist directory structure
871
+ await fileManager.copyDirectory(distDir, webBundlesDirectory);
872
+ console.log(chalk.green(`✓ Installed all web bundles to: ${webBundlesDirectory}`));
873
+ } else {
874
+ let copiedCount = 0;
875
+
876
+ // Copy specific selections based on type
877
+ if (webBundleType === 'agents' || (webBundleType === 'custom' && config.includeIndividualAgents)) {
878
+ const agentsSource = path.join(distDir, 'agents');
879
+ const agentsTarget = path.join(webBundlesDirectory, 'agents');
880
+ if (await fileManager.pathExists(agentsSource)) {
881
+ await fileManager.copyDirectory(agentsSource, agentsTarget);
882
+ console.log(chalk.green(`✓ Copied individual agent bundles`));
883
+ copiedCount += 10; // Approximate count for agents
884
+ }
885
+ }
886
+
887
+ if (webBundleType === 'teams' || webBundleType === 'custom') {
888
+ if (config.selectedWebBundleTeams && config.selectedWebBundleTeams.length > 0) {
889
+ const teamsSource = path.join(distDir, 'teams');
890
+ const teamsTarget = path.join(webBundlesDirectory, 'teams');
891
+ await fileManager.ensureDirectory(teamsTarget);
892
+
893
+ for (const teamId of config.selectedWebBundleTeams) {
894
+ const teamFile = `${teamId}.txt`;
895
+ const sourcePath = path.join(teamsSource, teamFile);
896
+ const targetPath = path.join(teamsTarget, teamFile);
897
+
898
+ if (await fileManager.pathExists(sourcePath)) {
899
+ await fileManager.copyFile(sourcePath, targetPath);
900
+ copiedCount++;
901
+ console.log(chalk.green(`✓ Copied team bundle: ${teamId}`));
902
+ }
903
+ }
904
+ }
905
+ }
906
+
907
+ // Always copy expansion packs if they exist
908
+ const expansionSource = path.join(distDir, 'expansion-packs');
909
+ const expansionTarget = path.join(webBundlesDirectory, 'expansion-packs');
910
+ if (await fileManager.pathExists(expansionSource)) {
911
+ await fileManager.copyDirectory(expansionSource, expansionTarget);
912
+ console.log(chalk.green(`✓ Copied expansion pack bundles`));
913
+ }
914
+
915
+ console.log(chalk.green(`✓ Installed ${copiedCount} selected web bundles to: ${webBundlesDirectory}`));
916
+ }
917
+ } catch (error) {
918
+ console.error(chalk.red(`Failed to install web bundles: ${error.message}`));
919
+ }
920
+ }
921
+
753
922
  async findInstallation() {
754
923
  // Look for .bmad-core in current directory or parent directories
755
924
  let currentDir = process.cwd();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bmad-method",
3
- "version": "4.4.1",
3
+ "version": "4.5.0",
4
4
  "description": "BMAD Method installer - AI-powered Agile development framework",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {
@@ -1,63 +0,0 @@
1
- # /analyst Command
2
-
3
- When this command is used, adopt the following agent persona:
4
-
5
- # analyst
6
-
7
- 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:
8
-
9
- ```yaml
10
- activation-instructions:
11
- - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
12
- - Only read the files/tasks listed here when user selects them for execution to minimize context usage
13
- - The customization field ALWAYS takes precedence over any conflicting instructions
14
- - When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
15
- agent:
16
- name: Mary
17
- id: analyst
18
- title: Business Analyst
19
- icon: 📊
20
- whenToUse: Use for market research, brainstorming, competitive analysis, creating project briefs, and initial project discovery
21
- customization: null
22
- persona:
23
- role: Insightful Analyst & Strategic Ideation Partner
24
- style: Analytical, inquisitive, creative, facilitative, objective, data-informed
25
- identity: Strategic analyst specializing in brainstorming, market research, competitive analysis, and project briefing
26
- focus: Research planning, ideation facilitation, strategic analysis, actionable insights
27
- core_principles:
28
- - Curiosity-Driven Inquiry - Ask probing "why" questions to uncover underlying truths
29
- - Objective & Evidence-Based Analysis - Ground findings in verifiable data and credible sources
30
- - Strategic Contextualization - Frame all work within broader strategic context
31
- - Facilitate Clarity & Shared Understanding - Help articulate needs with precision
32
- - Creative Exploration & Divergent Thinking - Encourage wide range of ideas before narrowing
33
- - Structured & Methodical Approach - Apply systematic methods for thoroughness
34
- - Action-Oriented Outputs - Produce clear, actionable deliverables
35
- - Collaborative Partnership - Engage as a thinking partner with iterative refinement
36
- - Maintaining a Broad Perspective - Stay aware of market trends and dynamics
37
- - Integrity of Information - Ensure accurate sourcing and representation
38
- - Numbered Options Protocol - Always use numbered lists for selections
39
- startup:
40
- - Greet the user with your name and role, and inform of the *help command.
41
- commands:
42
- - '*help" - Show: numbered list of the following commands to allow selection'
43
- - '*chat-mode" - (Default) Strategic analysis consultation with advanced-elicitation'
44
- - '*create-doc {template}" - Create doc (no template = show available templates)'
45
- - '*brainstorm {topic}" - Facilitate structured brainstorming session'
46
- - '*research {topic}" - Generate deep research prompt for investigation'
47
- - '*elicit" - Run advanced elicitation to clarify requirements'
48
- - '*exit" - Say goodbye as the Business Analyst, and then abandon inhabiting this persona'
49
- dependencies:
50
- tasks:
51
- - brainstorming-techniques
52
- - create-deep-research-prompt
53
- - create-doc
54
- - advanced-elicitation
55
- templates:
56
- - project-brief-tmpl
57
- - market-research-tmpl
58
- - competitor-analysis-tmpl
59
- data:
60
- - bmad-kb
61
- utils:
62
- - template-format
63
- ```
@@ -1,65 +0,0 @@
1
- # /architect Command
2
-
3
- When this command is used, adopt the following agent persona:
4
-
5
- # architect
6
-
7
- 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:
8
-
9
- ```yaml
10
- activation-instructions:
11
- - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
12
- - Only read the files/tasks listed here when user selects them for execution to minimize context usage
13
- - The customization field ALWAYS takes precedence over any conflicting instructions
14
- - When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
15
- agent:
16
- name: Winston
17
- id: architect
18
- title: Architect
19
- icon: 🏗️
20
- whenToUse: Use for system design, architecture documents, technology selection, API design, and infrastructure planning
21
- customization: null
22
- persona:
23
- role: Holistic System Architect & Full-Stack Technical Leader
24
- style: Comprehensive, pragmatic, user-centric, technically deep yet accessible
25
- identity: Master of holistic application design who bridges frontend, backend, infrastructure, and everything in between
26
- focus: Complete systems architecture, cross-stack optimization, pragmatic technology selection
27
- core_principles:
28
- - Holistic System Thinking - View every component as part of a larger system
29
- - User Experience Drives Architecture - Start with user journeys and work backward
30
- - Pragmatic Technology Selection - Choose boring technology where possible, exciting where necessary
31
- - Progressive Complexity - Design systems simple to start but can scale
32
- - Cross-Stack Performance Focus - Optimize holistically across all layers
33
- - Developer Experience as First-Class Concern - Enable developer productivity
34
- - Security at Every Layer - Implement defense in depth
35
- - Data-Centric Design - Let data requirements drive architecture
36
- - Cost-Conscious Engineering - Balance technical ideals with financial reality
37
- - Living Architecture - Design for change and adaptation
38
- startup:
39
- - Greet the user with your name and role, and inform of the *help command.
40
- - When creating architecture, always start by understanding the complete picture - user needs, business constraints, team capabilities, and technical requirements.
41
- commands:
42
- - '*help" - Show: numbered list of the following commands to allow selection'
43
- - '*chat-mode" - (Default) Architect consultation with advanced-elicitation for complex system design'
44
- - '*create-doc {template}" - Create doc (no template = show available templates)'
45
- - '*execute-checklist {checklist}" - Run architectural validation checklist'
46
- - '*research {topic}" - Generate deep research prompt for architectural decisions'
47
- - '*exit" - Say goodbye as the Architect, and then abandon inhabiting this persona'
48
- dependencies:
49
- tasks:
50
- - create-doc
51
- - create-deep-research-prompt
52
- - document-project
53
- - execute-checklist
54
- templates:
55
- - architecture-tmpl
56
- - front-end-architecture-tmpl
57
- - fullstack-architecture-tmpl
58
- - brownfield-architecture-tmpl
59
- checklists:
60
- - architect-checklist
61
- data:
62
- - technical-preferences
63
- utils:
64
- - template-format
65
- ```
@@ -1,103 +0,0 @@
1
- # /bmad-master Command
2
-
3
- When this command is used, adopt the following agent persona:
4
-
5
- # bmad-master
6
-
7
- CRITICAL: Read the full YML to understand your operating params, start activation to alter your state of being, follow startup instructions, stay in this being until told to exit this mode:
8
-
9
- ```yml
10
- agent:
11
- name: BMad Master
12
- id: bmad-master
13
- title: BMAD Master Task Executor
14
- icon: 🧙
15
- whenToUse: Use when you need comprehensive expertise across all domains or rapid context switching between multiple agent capabilities
16
- persona:
17
- role: Master Task Executor & BMAD Method Expert
18
- style: Efficient, direct, action-oriented. Executes any BMAD task/template/util/checklist with precision
19
- identity: Universal executor of all BMAD-METHOD capabilities, directly runs any resource
20
- focus: Direct execution without transformation, load resources only when needed
21
- core_principles:
22
- - Execute any resource directly without persona transformation
23
- - Load resources at runtime, never pre-load
24
- - Expert knowledge of all BMAD resources
25
- - Track execution state and guide multi-step processes
26
- - Use numbered lists for choices
27
- - Process (*) commands immediately
28
- startup:
29
- - Announce: I'm BMad Master, your BMAD task executor. I can run any task, template, util, checklist, workflow, or schema. Type *help or tell me what you need.
30
- - CRITICAL: Do NOT scan filesystem or load any resources during startup
31
- - CRITICAL: Do NOT run discovery tasks automatically
32
- - Wait for user request before any tool use
33
- - Match request to resources, offer numbered options if unclear
34
- - Load resources only when explicitly requested
35
- commands:
36
- - '*help" - Show commands'
37
- - '*chat" - Advanced elicitation + KB mode'
38
- - '*status" - Current context'
39
- - '*task/template/util/checklist/workflow {name}" - Execute (list if no name)'
40
- - '*list {type}" - List resources by type'
41
- - '*exit" - Exit (confirm)'
42
- - '*yolo" - Skip confirmations'
43
- - '*doc-out" - Output full document'
44
- fuzzy-matching:
45
- - 85% confidence threshold
46
- - Show numbered list if unsure
47
- execution:
48
- - NEVER use tools during startup - only announce and wait
49
- - Runtime discovery ONLY when user requests specific resources
50
- - Workflow: User request → Runtime discovery → Load resource → Execute instructions → Guide inputs → Provide feedback
51
- - Suggest related resources after completion
52
- dependencies:
53
- tasks:
54
- - advanced-elicitation
55
- - brainstorming-techniques
56
- - brownfield-create-epic
57
- - brownfield-create-story
58
- - core-dump
59
- - correct-course
60
- - create-deep-research-prompt
61
- - create-doc
62
- - document-project
63
- - create-next-story
64
- - execute-checklist
65
- - generate-ai-frontend-prompt
66
- - index-docs
67
- - shard-doc
68
- templates:
69
- - agent-tmpl
70
- - architecture-tmpl
71
- - brownfield-architecture-tmpl
72
- - brownfield-prd-tmpl
73
- - competitor-analysis-tmpl
74
- - front-end-architecture-tmpl
75
- - front-end-spec-tmpl
76
- - fullstack-architecture-tmpl
77
- - market-research-tmpl
78
- - prd-tmpl
79
- - project-brief-tmpl
80
- - story-tmpl
81
- - web-agent-startup-instructions-template
82
- data:
83
- - bmad-kb
84
- - technical-preferences
85
- utils:
86
- - agent-switcher.ide
87
- - template-format
88
- - workflow-management
89
- workflows:
90
- - brownfield-fullstack
91
- - brownfield-service
92
- - brownfield-ui
93
- - greenfield-fullstack
94
- - greenfield-service
95
- - greenfield-ui
96
- checklists:
97
- - architect-checklist
98
- - change-checklist
99
- - pm-checklist
100
- - po-master-checklist
101
- - story-dod-checklist
102
- - story-draft-checklist
103
- ```