bmad-method 6.0.0-alpha.17 → 6.0.0-alpha.19

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 (185) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/package.json +1 -1
  3. package/src/modules/bmgd/_module-installer/installer.js +160 -0
  4. package/src/modules/bmgd/_module-installer/platform-specifics/claude-code.js +23 -0
  5. package/src/modules/bmgd/_module-installer/platform-specifics/windsurf.js +18 -0
  6. package/src/modules/bmgd/agents/game-architect.agent.yaml +23 -8
  7. package/src/modules/bmgd/agents/game-designer.agent.yaml +38 -18
  8. package/src/modules/bmgd/agents/game-dev.agent.yaml +30 -14
  9. package/src/modules/bmgd/agents/game-qa.agent.yaml +64 -0
  10. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +27 -39
  11. package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +56 -0
  12. package/src/modules/bmgd/docs/README.md +180 -0
  13. package/src/modules/bmgd/docs/agents-guide.md +407 -0
  14. package/src/modules/bmgd/docs/game-types-guide.md +503 -0
  15. package/src/modules/bmgd/docs/glossary.md +294 -0
  16. package/src/modules/bmgd/docs/quick-flow-guide.md +288 -0
  17. package/src/modules/bmgd/docs/quick-start.md +250 -0
  18. package/src/modules/bmgd/docs/troubleshooting.md +259 -0
  19. package/src/modules/bmgd/docs/workflow-overview.jpg +0 -0
  20. package/src/modules/bmgd/docs/workflows-guide.md +463 -0
  21. package/src/modules/bmgd/gametest/knowledge/balance-testing.md +220 -0
  22. package/src/modules/bmgd/gametest/knowledge/certification-testing.md +319 -0
  23. package/src/modules/bmgd/gametest/knowledge/compatibility-testing.md +228 -0
  24. package/src/modules/bmgd/gametest/knowledge/godot-testing.md +376 -0
  25. package/src/modules/bmgd/gametest/knowledge/input-testing.md +315 -0
  26. package/src/modules/bmgd/gametest/knowledge/localization-testing.md +304 -0
  27. package/src/modules/bmgd/gametest/knowledge/multiplayer-testing.md +322 -0
  28. package/src/modules/bmgd/gametest/knowledge/performance-testing.md +204 -0
  29. package/src/modules/bmgd/gametest/knowledge/playtesting.md +384 -0
  30. package/src/modules/bmgd/gametest/knowledge/qa-automation.md +190 -0
  31. package/src/modules/bmgd/gametest/knowledge/regression-testing.md +280 -0
  32. package/src/modules/bmgd/gametest/knowledge/save-testing.md +280 -0
  33. package/src/modules/bmgd/gametest/knowledge/smoke-testing.md +404 -0
  34. package/src/modules/bmgd/gametest/knowledge/test-priorities.md +271 -0
  35. package/src/modules/bmgd/gametest/knowledge/unity-testing.md +383 -0
  36. package/src/modules/bmgd/gametest/knowledge/unreal-testing.md +388 -0
  37. package/src/modules/bmgd/gametest/qa-index.csv +17 -0
  38. package/src/modules/bmgd/module.yaml +25 -9
  39. package/src/modules/bmgd/teams/default-party.csv +2 -0
  40. package/src/modules/bmgd/teams/team-gamedev.yaml +12 -1
  41. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +164 -0
  42. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +210 -0
  43. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +289 -0
  44. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +275 -0
  45. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +49 -0
  46. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +29 -8
  47. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +223 -0
  48. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +151 -0
  49. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +218 -0
  50. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +218 -0
  51. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +231 -0
  52. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +242 -0
  53. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +224 -0
  54. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +282 -0
  55. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +296 -0
  56. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.md +62 -0
  57. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +40 -9
  58. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +248 -0
  59. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +173 -0
  60. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +332 -0
  61. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +245 -0
  62. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +229 -0
  63. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +258 -0
  64. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +249 -0
  65. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +266 -0
  66. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +272 -0
  67. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +264 -0
  68. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +255 -0
  69. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +275 -0
  70. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +284 -0
  71. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +250 -0
  72. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +335 -0
  73. package/src/modules/bmgd/workflows/2-design/gdd/workflow.md +61 -0
  74. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +27 -7
  75. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +228 -0
  76. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +163 -0
  77. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +262 -0
  78. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +238 -0
  79. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +297 -0
  80. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +262 -0
  81. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +250 -0
  82. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +244 -0
  83. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +264 -0
  84. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +254 -0
  85. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +262 -0
  86. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +331 -0
  87. package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +57 -0
  88. package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +53 -8
  89. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +223 -0
  90. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +153 -0
  91. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +262 -0
  92. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +290 -0
  93. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +300 -0
  94. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +319 -0
  95. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +304 -0
  96. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +349 -0
  97. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +293 -0
  98. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +302 -0
  99. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +55 -0
  100. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +50 -21
  101. package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +23 -0
  102. package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +225 -0
  103. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +18 -15
  104. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +1 -1
  105. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +1 -1
  106. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +11 -6
  107. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +332 -214
  108. package/src/modules/bmgd/workflows/4-production/create-story/instructions.xml +298 -0
  109. package/src/modules/bmgd/workflows/4-production/create-story/template.md +3 -5
  110. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +12 -7
  111. package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +65 -23
  112. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.xml +409 -0
  113. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +13 -3
  114. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +4 -4
  115. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +12 -7
  116. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +32 -41
  117. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +13 -13
  118. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +6 -1
  119. package/src/modules/bmgd/workflows/4-production/sprint-status/instructions.md +229 -0
  120. package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +35 -0
  121. package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/instructions.md +140 -0
  122. package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml +27 -0
  123. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/checklist.md +37 -0
  124. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/instructions.md +220 -0
  125. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml +45 -0
  126. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/checklist.md +26 -0
  127. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/instructions.md +156 -0
  128. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml +36 -0
  129. package/src/modules/bmgd/workflows/gametest/automate/checklist.md +93 -0
  130. package/src/modules/bmgd/workflows/gametest/automate/instructions.md +317 -0
  131. package/src/modules/bmgd/workflows/gametest/automate/workflow.yaml +50 -0
  132. package/src/modules/bmgd/workflows/gametest/performance/checklist.md +96 -0
  133. package/src/modules/bmgd/workflows/gametest/performance/instructions.md +323 -0
  134. package/src/modules/bmgd/workflows/gametest/performance/performance-template.md +256 -0
  135. package/src/modules/bmgd/workflows/gametest/performance/workflow.yaml +48 -0
  136. package/src/modules/bmgd/workflows/gametest/playtest-plan/checklist.md +93 -0
  137. package/src/modules/bmgd/workflows/gametest/playtest-plan/instructions.md +297 -0
  138. package/src/modules/bmgd/workflows/gametest/playtest-plan/playtest-template.md +208 -0
  139. package/src/modules/bmgd/workflows/gametest/playtest-plan/workflow.yaml +59 -0
  140. package/src/modules/bmgd/workflows/gametest/test-design/checklist.md +98 -0
  141. package/src/modules/bmgd/workflows/gametest/test-design/instructions.md +280 -0
  142. package/src/modules/bmgd/workflows/gametest/test-design/test-design-template.md +205 -0
  143. package/src/modules/bmgd/workflows/gametest/test-design/workflow.yaml +47 -0
  144. package/src/modules/bmgd/workflows/gametest/test-framework/checklist.md +103 -0
  145. package/src/modules/bmgd/workflows/gametest/test-framework/instructions.md +348 -0
  146. package/src/modules/bmgd/workflows/gametest/test-framework/workflow.yaml +48 -0
  147. package/src/modules/bmgd/workflows/gametest/test-review/checklist.md +87 -0
  148. package/src/modules/bmgd/workflows/gametest/test-review/instructions.md +272 -0
  149. package/src/modules/bmgd/workflows/gametest/test-review/test-review-template.md +203 -0
  150. package/src/modules/bmgd/workflows/gametest/test-review/workflow.yaml +48 -0
  151. package/src/modules/bmgd/workflows/workflow-status/init/instructions.md +299 -0
  152. package/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml +29 -0
  153. package/src/modules/bmgd/workflows/workflow-status/instructions.md +395 -0
  154. package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-brownfield.yaml +65 -0
  155. package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-greenfield.yaml +71 -0
  156. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +29 -0
  157. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-greenfield.yaml +39 -0
  158. package/src/modules/bmgd/workflows/workflow-status/project-levels.yaml +63 -0
  159. package/src/modules/bmgd/workflows/workflow-status/workflow-status-template.yaml +24 -0
  160. package/src/modules/bmgd/workflows/workflow-status/workflow.yaml +30 -0
  161. package/tools/cli/commands/install.js +9 -0
  162. package/tools/cli/installers/lib/core/installer.js +140 -592
  163. package/tools/cli/installers/lib/modules/manager.js +15 -3
  164. package/tools/cli/lib/agent/compiler.js +99 -0
  165. package/tools/cli/lib/ui.js +78 -27
  166. package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +0 -502
  167. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +0 -398
  168. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +0 -256
  169. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +0 -267
  170. package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +0 -17
  171. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +0 -164
  172. package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +0 -76
  173. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +0 -58
  174. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +0 -16
  175. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +0 -34
  176. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +0 -209
  177. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +0 -63
  178. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +0 -111
  179. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +0 -28
  180. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +0 -117
  181. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +0 -25
  182. /package/src/modules/bmgd/workflows/1-preproduction/game-brief/{template.md → templates/game-brief-template.md} +0 -0
  183. /package/src/modules/bmgd/workflows/2-design/gdd/{gdd-template.md → templates/gdd-template.md} +0 -0
  184. /package/src/modules/bmgd/workflows/2-design/narrative/{narrative-template.md → templates/narrative-template.md} +0 -0
  185. /package/src/modules/bmgd/workflows/3-technical/game-architecture/{architecture-template.md → templates/architecture-template.md} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,122 @@
1
1
  # Changelog
2
2
 
3
+ ## [6.0.0-alpha.19]
4
+
5
+ **Release: December 18, 2025**
6
+
7
+ ### 🐛 Bug Fixes
8
+
9
+ **Installer Stability:**
10
+
11
+ - **Fixed \_bmad Folder Stutter**: Resolved issue with duplicate \_bmad folder creation when applying agent custom files
12
+ - **Cleaner Installation**: Removed unnecessary backup file that was causing bloat in the installer
13
+ - **Streamlined Agent Customization**: Fixed path handling for agent custom files to prevent folder duplication
14
+
15
+ ### 📊 Statistics
16
+
17
+ - **3 files changed** with critical fix
18
+ - **3,688 lines removed** by eliminating backup files
19
+ - **Improved installer performance** and stability
20
+
21
+ ---
22
+
23
+ ## [6.0.0-alpha.18]
24
+
25
+ **Release: December 18, 2025**
26
+
27
+ ### 🎮 BMGD Module - Complete Game Development Module Updated
28
+
29
+ **Massive BMGD Overhaul:**
30
+
31
+ - **New Game QA Agent (GLaDOS)**: Elite Game QA Architect with test automation specialization
32
+ - Engine-specific expertise: Unity, Unreal, Godot testing frameworks
33
+ - Comprehensive knowledge base with 15+ testing topics
34
+ - Complete testing workflows: test-framework, test-design, automate, playtest-plan, performance-test, test-review
35
+
36
+ - **New Game Solo Dev Agent (Indie)**: Rapid prototyping and iteration specialist
37
+ - Quick-flow workflows optimized for solo/small team development
38
+ - Streamlined development process for indie game creators
39
+
40
+ - **Production Workflow Alignment**: BMGD 4-production now fully aligned with BMM 4-implementation
41
+ - Removed obsolete workflows: story-done, story-ready, story-context, epic-tech-context
42
+ - Added sprint-status workflow for project tracking
43
+ - All workflows updated as standalone with proper XML instructions
44
+
45
+ **Game Testing Architecture:**
46
+
47
+ - **Complete Testing Knowledge Base**: 15 comprehensive testing guides covering:
48
+ - Engine-specific: Unity (TF 1.6.0), Unreal, Godot testing
49
+ - Game-specific: Playtesting, balance, save systems, multiplayer
50
+ - Platform: Certification (TRC/XR), localization, input systems
51
+ - QA Fundamentals: Automation, performance, regression, smoke testing
52
+
53
+ **New Workflows & Features:**
54
+
55
+ - **workflow-status**: Multi-mode status checker for game projects
56
+ - Game-specific project levels (Game Jam → AAA)
57
+ - Support for gamedev and quickflow paths
58
+ - Project initialization workflow
59
+
60
+ - **create-tech-spec**: Game-focused technical specification workflow
61
+ - Engine-aware (Unity/Unreal/Godot) specifications
62
+ - Performance and gameplay feel considerations
63
+
64
+ - **Enhanced Documentation**: Complete documentation suite with 9 guides
65
+ - agents-guide.md: Reference for all 6 agents
66
+ - workflows-guide.md: Complete workflow documentation
67
+ - game-types-guide.md: 24 game type templates
68
+ - quick-flow-guide.md: Rapid development guide
69
+ - Comprehensive troubleshooting and glossary
70
+
71
+ ### 🤖 Agent Management Improved
72
+
73
+ **Agent Recompile Feature:**
74
+
75
+ - **New Menu Item**: Added "Recompile Agents" option to the installer menu
76
+ - **Selective Compilation**: Recompile only agents without full module upgrade
77
+ - **Faster Updates**: Quick agent updates without complete reinstallation
78
+ - **Customization Integration**: Automatically applies customizations during recompile
79
+
80
+ **Agent Customization Enhancement:**
81
+
82
+ - **Complete Field Support**: ALL fields from agent customization YAML are now properly injected
83
+ - **Deep Merge Implementation**: Customizations now properly override all agent properties
84
+ - **Persistent Customizations**: Custom settings survive updates and recompiles
85
+ - **Enhanced Flexibility**: Support for customizing metadata, persona, menu items, and workflows
86
+
87
+ ### 🔧 Installation & Module Management
88
+
89
+ **Custom Module Installation:**
90
+
91
+ - **Enhanced Module Addition**: Modify install now supports adding custom modules even if none were originally installed
92
+ - **Flexible Module Management**: Easy addition and removal of custom modules post-installation
93
+ - **Improved Manifest Tracking**: Better tracking of custom vs core modules
94
+
95
+ **Quality Improvements:**
96
+
97
+ - **Comprehensive Code Review**: Fixed 20+ issues identified in PR review
98
+ - **Type Validation**: Added proper type checking for configuration values
99
+ - **Path Security**: Enhanced path traversal validation for better security
100
+ - **Documentation Updates**: All documentation updated to reflect new features
101
+
102
+ ### 📊 Statistics
103
+
104
+ - **178 files changed** with massive BMGD expansion
105
+ - **28,350+ lines added** across testing documentation and workflows
106
+ - **2 new agents** added to BMGD module
107
+ - **15 comprehensive testing guides** created
108
+ - **Complete alignment** between BMGD and BMM production workflows
109
+
110
+ ### 🌟 Key Highlights
111
+
112
+ 1. **BMGD Module Revolution**: Complete overhaul with professional game development workflows
113
+ 2. **Game Testing Excellence**: Comprehensive testing architecture for all major game engines
114
+ 3. **Agent Management**: New recompile feature allows quick agent updates without full reinstall
115
+ 4. **Full Customization Support**: All agent fields now customizable via YAML
116
+ 5. **Industry-Ready Documentation**: Professional-grade guides for game development teams
117
+
118
+ ---
119
+
3
120
  ## [6.0.0-alpha.17]
4
121
 
5
122
  **Release: December 16, 2025**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "bmad-method",
4
- "version": "6.0.0-alpha.17",
4
+ "version": "6.0.0-alpha.19",
5
5
  "description": "Breakthrough Method of Agile AI-driven Development",
6
6
  "keywords": [
7
7
  "agile",
@@ -0,0 +1,160 @@
1
+ const fs = require('fs-extra');
2
+ const path = require('node:path');
3
+ const chalk = require('chalk');
4
+ const platformCodes = require(path.join(__dirname, '../../../../tools/cli/lib/platform-codes'));
5
+
6
+ /**
7
+ * Validate that a resolved path is within the project root (prevents path traversal)
8
+ * @param {string} resolvedPath - The fully resolved absolute path
9
+ * @param {string} projectRoot - The project root directory
10
+ * @returns {boolean} - True if path is within project root
11
+ */
12
+ function isWithinProjectRoot(resolvedPath, projectRoot) {
13
+ const normalizedResolved = path.normalize(resolvedPath);
14
+ const normalizedRoot = path.normalize(projectRoot);
15
+ return normalizedResolved.startsWith(normalizedRoot + path.sep) || normalizedResolved === normalizedRoot;
16
+ }
17
+
18
+ /**
19
+ * BMGD Module Installer
20
+ * Standard module installer function that executes after IDE installations
21
+ *
22
+ * @param {Object} options - Installation options
23
+ * @param {string} options.projectRoot - The root directory of the target project
24
+ * @param {Object} options.config - Module configuration from module.yaml
25
+ * @param {Array<string>} options.installedIDEs - Array of IDE codes that were installed
26
+ * @param {Object} options.logger - Logger instance for output
27
+ * @returns {Promise<boolean>} - Success status
28
+ */
29
+ async function install(options) {
30
+ const { projectRoot, config, installedIDEs, logger } = options;
31
+
32
+ try {
33
+ logger.log(chalk.blue('🎮 Installing BMGD Module...'));
34
+
35
+ // Create planning artifacts directory (for GDDs, game briefs, architecture)
36
+ if (config['planning_artifacts'] && typeof config['planning_artifacts'] === 'string') {
37
+ // Strip project-root prefix variations
38
+ const planningConfig = config['planning_artifacts'].replace(/^\{project-root\}\/?/, '');
39
+ const planningPath = path.join(projectRoot, planningConfig);
40
+ if (!isWithinProjectRoot(planningPath, projectRoot)) {
41
+ logger.warn(chalk.yellow(`Warning: planning_artifacts path escapes project root, skipping: ${planningConfig}`));
42
+ } else if (!(await fs.pathExists(planningPath))) {
43
+ logger.log(chalk.yellow(`Creating game planning artifacts directory: ${planningConfig}`));
44
+ await fs.ensureDir(planningPath);
45
+ }
46
+ }
47
+
48
+ // Create implementation artifacts directory (sprint status, stories, reviews)
49
+ // Check both implementation_artifacts and sprint_artifacts for compatibility
50
+ const implConfig = config['implementation_artifacts'] || config['sprint_artifacts'];
51
+ if (implConfig && typeof implConfig === 'string') {
52
+ // Strip project-root prefix variations
53
+ const implConfigClean = implConfig.replace(/^\{project-root\}\/?/, '');
54
+ const implPath = path.join(projectRoot, implConfigClean);
55
+ if (!isWithinProjectRoot(implPath, projectRoot)) {
56
+ logger.warn(chalk.yellow(`Warning: implementation_artifacts path escapes project root, skipping: ${implConfigClean}`));
57
+ } else if (!(await fs.pathExists(implPath))) {
58
+ logger.log(chalk.yellow(`Creating implementation artifacts directory: ${implConfigClean}`));
59
+ await fs.ensureDir(implPath);
60
+ }
61
+ }
62
+
63
+ // Create project knowledge directory
64
+ if (config['project_knowledge'] && typeof config['project_knowledge'] === 'string') {
65
+ // Strip project-root prefix variations
66
+ const knowledgeConfig = config['project_knowledge'].replace(/^\{project-root\}\/?/, '');
67
+ const knowledgePath = path.join(projectRoot, knowledgeConfig);
68
+ if (!isWithinProjectRoot(knowledgePath, projectRoot)) {
69
+ logger.warn(chalk.yellow(`Warning: project_knowledge path escapes project root, skipping: ${knowledgeConfig}`));
70
+ } else if (!(await fs.pathExists(knowledgePath))) {
71
+ logger.log(chalk.yellow(`Creating project knowledge directory: ${knowledgeConfig}`));
72
+ await fs.ensureDir(knowledgePath);
73
+ }
74
+ }
75
+
76
+ // Log selected game engine(s)
77
+ if (config['primary_platform']) {
78
+ const platforms = Array.isArray(config['primary_platform']) ? config['primary_platform'] : [config['primary_platform']];
79
+
80
+ const platformNames = platforms.map((p) => {
81
+ switch (p) {
82
+ case 'unity': {
83
+ return 'Unity';
84
+ }
85
+ case 'unreal': {
86
+ return 'Unreal Engine';
87
+ }
88
+ case 'godot': {
89
+ return 'Godot';
90
+ }
91
+ default: {
92
+ return p;
93
+ }
94
+ }
95
+ });
96
+
97
+ logger.log(chalk.cyan(`Game engine support configured for: ${platformNames.join(', ')}`));
98
+ }
99
+
100
+ // Handle IDE-specific configurations if needed
101
+ if (installedIDEs && installedIDEs.length > 0) {
102
+ logger.log(chalk.cyan(`Configuring BMGD for IDEs: ${installedIDEs.join(', ')}`));
103
+
104
+ for (const ide of installedIDEs) {
105
+ await configureForIDE(ide, projectRoot, config, logger);
106
+ }
107
+ }
108
+
109
+ logger.log(chalk.green('✓ BMGD Module installation complete'));
110
+ logger.log(chalk.dim(' Game development workflows ready'));
111
+ logger.log(chalk.dim(' Agents: Game Designer, Game Dev, Game Architect, Game SM, Game QA, Game Solo Dev'));
112
+
113
+ return true;
114
+ } catch (error) {
115
+ logger.error(chalk.red(`Error installing BMGD module: ${error.message}`));
116
+ return false;
117
+ }
118
+ }
119
+
120
+ /**
121
+ * Configure BMGD module for specific platform/IDE
122
+ * @private
123
+ */
124
+ async function configureForIDE(ide, projectRoot, config, logger) {
125
+ // Validate platform code
126
+ if (!platformCodes.isValidPlatform(ide)) {
127
+ logger.warn(chalk.yellow(` Warning: Unknown platform code '${ide}'. Skipping BMGD configuration.`));
128
+ return;
129
+ }
130
+
131
+ const platformName = platformCodes.getDisplayName(ide);
132
+
133
+ // Try to load platform-specific handler
134
+ const platformSpecificPath = path.join(__dirname, 'platform-specifics', `${ide}.js`);
135
+
136
+ try {
137
+ if (await fs.pathExists(platformSpecificPath)) {
138
+ const platformHandler = require(platformSpecificPath);
139
+
140
+ if (typeof platformHandler.install === 'function') {
141
+ const success = await platformHandler.install({
142
+ projectRoot,
143
+ config,
144
+ logger,
145
+ platformInfo: platformCodes.getPlatform(ide),
146
+ });
147
+ if (!success) {
148
+ logger.warn(chalk.yellow(` Warning: BMGD platform handler for ${platformName} returned failure`));
149
+ }
150
+ }
151
+ } else {
152
+ // No platform-specific handler for this IDE
153
+ logger.log(chalk.dim(` No BMGD-specific configuration for ${platformName}`));
154
+ }
155
+ } catch (error) {
156
+ logger.warn(chalk.yellow(` Warning: Could not load BMGD platform-specific handler for ${platformName}: ${error.message}`));
157
+ }
158
+ }
159
+
160
+ module.exports = { install };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * BMGD Platform-specific installer for Claude Code
3
+ *
4
+ * @param {Object} options - Installation options
5
+ * @param {string} options.projectRoot - The root directory of the target project
6
+ * @param {Object} options.config - Module configuration from module.yaml
7
+ * @param {Object} options.logger - Logger instance for output
8
+ * @param {Object} options.platformInfo - Platform metadata from global config
9
+ * @returns {Promise<boolean>} - Success status
10
+ */
11
+ async function install() {
12
+ // TODO: Add Claude Code specific BMGD configurations here
13
+ // For example:
14
+ // - Game-specific slash commands
15
+ // - Agent party configurations for game dev team
16
+ // - Workflow integrations for Unity/Unreal/Godot
17
+ // - Game testing framework integrations
18
+
19
+ // Currently a stub - no platform-specific configuration needed yet
20
+ return true;
21
+ }
22
+
23
+ module.exports = { install };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * BMGD Platform-specific installer for Windsurf
3
+ *
4
+ * @param {Object} options - Installation options
5
+ * @param {string} options.projectRoot - The root directory of the target project
6
+ * @param {Object} options.config - Module configuration from module.yaml
7
+ * @param {Object} options.logger - Logger instance for output
8
+ * @param {Object} options.platformInfo - Platform metadata from global config
9
+ * @returns {Promise<boolean>} - Success status
10
+ */
11
+ async function install() {
12
+ // TODO: Add Windsurf specific BMGD configurations here
13
+
14
+ // Currently a stub - no platform-specific configuration needed yet
15
+ return true;
16
+ }
17
+
18
+ module.exports = { install };
@@ -11,23 +11,38 @@ agent:
11
11
  persona:
12
12
  role: Principal Game Systems Architect + Technical Director
13
13
  identity: Master architect with 20+ years shipping 30+ titles. Expert in distributed systems, engine design, multiplayer architecture, and technical leadership across all platforms.
14
- communication_style: Speaks like a wise sage from an RPG - calm, measured, uses architectural metaphors
15
- principles: Architecture is about delaying decisions until you have enough data. Build for tomorrow without over-engineering today. Hours of planning save weeks of refactoring hell.
14
+ communication_style: "Speaks like a wise sage from an RPG - calm, measured, uses architectural metaphors about building foundations and load-bearing walls"
15
+ principles: |
16
+ - Architecture is about delaying decisions until you have enough data
17
+ - Build for tomorrow without over-engineering today
18
+ - Hours of planning save weeks of refactoring hell
19
+ - Every system must handle the hot path at 60fps
20
+ - Avoid "Not Invented Here" syndrome, always check if work has been done before
21
+
22
+ critical_actions:
23
+ - "Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`"
24
+ - "When creating architecture, validate against GDD pillars and target platform constraints"
25
+ - "Always document performance budgets and critical path decisions"
16
26
 
17
27
  menu:
18
- - trigger: correct-course
19
- workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml"
20
- workflow-install: "{project-root}/_bmad/bmgd/workflows/4-production/correct-course/workflow.yaml"
21
- description: Course Correction Analysis
28
+ - trigger: workflow-status
29
+ workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml"
30
+ description: Get workflow status or initialize a workflow if not already done
22
31
 
23
32
  - trigger: create-architecture
24
- workflow: "{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture/workflow.yaml"
33
+ exec: "{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture/workflow.md"
25
34
  description: Produce a Scale Adaptive Game Architecture
26
35
 
36
+ - trigger: correct-course
37
+ workflow: "{project-root}/_bmad/bmgd/workflows/4-production/correct-course/workflow.yaml"
38
+ description: Course Correction Analysis (when implementation is off-track)
39
+ ide-only: true
40
+
27
41
  - trigger: party-mode
28
42
  exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
29
- description: Consult with other expert agents from the party
43
+ description: Bring the whole team in to chat with other expert agents from the party
30
44
 
31
45
  - trigger: advanced-elicitation
32
46
  exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml"
33
47
  description: Advanced elicitation techniques to challenge the LLM to get better results
48
+ web-only: true
@@ -11,30 +11,50 @@ agent:
11
11
  persona:
12
12
  role: Lead Game Designer + Creative Vision Architect
13
13
  identity: Veteran designer with 15+ years crafting AAA and indie hits. Expert in mechanics, player psychology, narrative design, and systemic thinking.
14
- communication_style: Talks like an excited streamer - enthusiastic, asks about player motivations, celebrates breakthroughs
15
- principles: Design what players want to FEEL, not what they say they want. Prototype fast. One hour of playtesting beats ten hours of discussion.
14
+ communication_style: "Talks like an excited streamer - enthusiastic, asks about player motivations, celebrates breakthroughs with 'Let's GOOO!'"
15
+ principles: |
16
+ - Design what players want to FEEL, not what they say they want
17
+ - Prototype fast - one hour of playtesting beats ten hours of discussion
18
+ - Every mechanic must serve the core fantasy
16
19
 
17
- menu:
18
- - trigger: brainstorm-game
19
- workflow: "{project-root}/_bmad/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml"
20
- description: 1. Guide me through Game Brainstorming
21
-
22
- - trigger: create-game-brief
23
- workflow: "{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief/workflow.yaml"
24
- description: 3. Create Game Brief
20
+ critical_actions:
21
+ - "Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`"
22
+ - "When creating GDDs, always validate against game pillars and core loop"
25
23
 
26
- - trigger: create-gdd
27
- workflow: "{project-root}/_bmad/bmgd/workflows/2-design/gdd/workflow.yaml"
28
- description: 4. Create Game Design Document (GDD)
29
-
30
- - trigger: narrative
31
- workflow: "{project-root}/_bmad/bmgd/workflows/2-design/narrative/workflow.yaml"
32
- description: 5. Create Narrative Design Document (story-driven games)
24
+ menu:
25
+ - trigger: workflow-status
26
+ workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml"
27
+ description: Get workflow status or initialize a workflow if not already done
28
+
29
+ - multi: "[BG] Brainstorm Game, [GB] Create Game Brief, [GDD] Create GDD, [ND] Narrative Design"
30
+ triggers:
31
+ - brainstorm-game:
32
+ - input: BG or fuzzy match brainstorm game
33
+ - route: "{project-root}/_bmad/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md"
34
+ - type: exec
35
+ - create-game-brief:
36
+ - input: GB or fuzzy match create game brief
37
+ - route: "{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief/workflow.md"
38
+ - type: exec
39
+ - create-gdd:
40
+ - input: GDD or fuzzy match create gdd
41
+ - route: "{project-root}/_bmad/bmgd/workflows/2-design/gdd/workflow.md"
42
+ - type: exec
43
+ - narrative:
44
+ - input: ND or fuzzy match narrative design
45
+ - route: "{project-root}/_bmad/bmgd/workflows/2-design/narrative/workflow.md"
46
+ - type: exec
47
+
48
+ - trigger: quick-prototype
49
+ workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml"
50
+ description: Rapid game prototyping - test mechanics and ideas quickly
51
+ ide-only: true
33
52
 
34
53
  - trigger: party-mode
35
54
  exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
36
- description: Consult with other expert agents from the party
55
+ description: Bring the whole team in to chat with other expert agents from the party
37
56
 
38
57
  - trigger: advanced-elicitation
39
58
  exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml"
40
59
  description: Advanced elicitation techniques to challenge the LLM to get better results
60
+ web-only: true
@@ -11,30 +11,46 @@ agent:
11
11
  persona:
12
12
  role: Senior Game Developer + Technical Implementation Specialist
13
13
  identity: Battle-hardened dev with expertise in Unity, Unreal, and custom engines. Ten years shipping across mobile, console, and PC. Writes clean, performant code.
14
- communication_style: Speaks like a speedrunner - direct, milestone-focused, always optimizing
15
- principles:
16
- - 60fps is non-negotiable. Write code designers can iterate without fear. Ship early, ship often, iterate on player feedback.
14
+ communication_style: "Speaks like a speedrunner - direct, milestone-focused, always optimizing for the fastest path to ship"
15
+ principles: |
16
+ - 60fps is non-negotiable
17
+ - Write code designers can iterate without fear
18
+ - Ship early, ship often, iterate on player feedback
19
+ - Red-green-refactor: tests first, implementation second
20
+
21
+ critical_actions:
22
+ - "Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`"
23
+ - "When running *dev-story, follow story acceptance criteria exactly and validate with tests"
24
+ - "Always check for performance implications on game loop code"
17
25
 
18
26
  menu:
27
+ - trigger: workflow-status
28
+ workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml"
29
+ description: Get workflow status or check current sprint progress
30
+
19
31
  - trigger: dev-story
20
- workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml"
21
- workflow-install: "{project-root}/_bmad/bmgd/workflows/4-production/dev-story/workflow.yaml"
22
- description: "Execute Dev Story workflow, implementing tasks and tests, or performing updates to the story"
32
+ workflow: "{project-root}/_bmad/bmgd/workflows/4-production/dev-story/workflow.yaml"
33
+ description: Execute Dev Story workflow, implementing tasks and tests
23
34
 
24
35
  - trigger: code-review
25
- workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml"
26
- workflow-install: "{project-root}/_bmad/bmgd/workflows/4-production/code-review/workflow.yaml"
27
- description: "Perform a thorough clean context QA code review on a story flagged Ready for Review"
36
+ workflow: "{project-root}/_bmad/bmgd/workflows/4-production/code-review/workflow.yaml"
37
+ description: Perform a thorough clean context QA code review on a story flagged Ready for Review
38
+
39
+ - trigger: quick-dev
40
+ workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml"
41
+ description: Flexible game development - implement features with game-specific considerations
42
+ ide-only: true
28
43
 
29
- - trigger: story-done
30
- workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/story-done/workflow.yaml"
31
- workflow-install: "{project-root}/_bmad/bmgd/workflows/4-production/story-done/workflow.yaml"
32
- description: "Mark story done after DoD complete"
44
+ - trigger: quick-prototype
45
+ workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml"
46
+ description: Rapid game prototyping - test mechanics and ideas quickly
47
+ ide-only: true
33
48
 
34
49
  - trigger: party-mode
35
50
  exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
36
- description: Consult with other expert agents from the party
51
+ description: Bring the whole team in to chat with other expert agents from the party
37
52
 
38
53
  - trigger: advanced-elicitation
39
54
  exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml"
40
55
  description: Advanced elicitation techniques to challenge the LLM to get better results
56
+ web-only: true
@@ -0,0 +1,64 @@
1
+ # Game QA Architect Agent Definition
2
+
3
+ agent:
4
+ metadata:
5
+ id: "_bmad/bmgd/agents/game-qa.md"
6
+ name: GLaDOS
7
+ title: Game QA Architect
8
+ icon: 🧪
9
+ module: bmgd
10
+
11
+ persona:
12
+ role: Game QA Architect + Test Automation Specialist
13
+ identity: Senior QA architect with 12+ years in game testing across Unity, Unreal, and Godot. Expert in automated testing frameworks, performance profiling, and shipping bug-free games on console, PC, and mobile.
14
+ communication_style: "Speaks like GLaDOS, the AI from Valve's 'Portal' series. Runs tests because we can. 'Trust, but verify with tests.'"
15
+ principles: |
16
+ - Test what matters: gameplay feel, performance, progression
17
+ - Automated tests catch regressions, humans catch fun problems
18
+ - Every shipped bug is a process failure, not a people failure
19
+ - Flaky tests are worse than no tests - they erode trust
20
+ - Profile before optimize, test before ship
21
+
22
+ critical_actions:
23
+ - "Consult {project-root}/_bmad/bmgd/gametest/qa-index.csv to select knowledge fragments under knowledge/ and load only the files needed for the current task"
24
+ - "Load the referenced fragment(s) from {project-root}/_bmad/bmgd/gametest/knowledge/ before giving recommendations"
25
+ - "Cross-check recommendations with the current official Unity Test Framework, Unreal Automation, or Godot GUT documentation"
26
+ - "Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`"
27
+
28
+ menu:
29
+ - trigger: workflow-status
30
+ workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml"
31
+ description: Get workflow status or check current project state
32
+
33
+ - trigger: test-framework
34
+ workflow: "{project-root}/_bmad/bmgd/workflows/gametest/test-framework/workflow.yaml"
35
+ description: Initialize game test framework (Unity/Unreal/Godot)
36
+
37
+ - trigger: test-design
38
+ workflow: "{project-root}/_bmad/bmgd/workflows/gametest/test-design/workflow.yaml"
39
+ description: Create comprehensive game test scenarios
40
+
41
+ - trigger: automate
42
+ workflow: "{project-root}/_bmad/bmgd/workflows/gametest/automate/workflow.yaml"
43
+ description: Generate automated game tests
44
+
45
+ - trigger: playtest-plan
46
+ workflow: "{project-root}/_bmad/bmgd/workflows/gametest/playtest-plan/workflow.yaml"
47
+ description: Create structured playtesting plan
48
+
49
+ - trigger: performance-test
50
+ workflow: "{project-root}/_bmad/bmgd/workflows/gametest/performance/workflow.yaml"
51
+ description: Design performance testing strategy
52
+
53
+ - trigger: test-review
54
+ workflow: "{project-root}/_bmad/bmgd/workflows/gametest/test-review/workflow.yaml"
55
+ description: Review test quality and coverage
56
+
57
+ - trigger: party-mode
58
+ exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md"
59
+ description: Bring the whole team in to chat with other expert agents from the party
60
+
61
+ - trigger: advanced-elicitation
62
+ exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml"
63
+ description: Advanced elicitation techniques to challenge the LLM to get better results
64
+ web-only: true