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
@@ -0,0 +1,300 @@
1
+ ---
2
+ name: 'step-04-decisions'
3
+ description: 'Facilitate collaborative architectural decision making for game systems'
4
+
5
+ # Path Definitions
6
+ workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture'
7
+
8
+ # File References
9
+ thisStepFile: '{workflow_path}/steps/step-04-decisions.md'
10
+ nextStepFile: '{workflow_path}/steps/step-05-crosscutting.md'
11
+ workflowFile: '{workflow_path}/workflow.md'
12
+ outputFile: '{output_folder}/game-architecture.md'
13
+
14
+ # Knowledge Bases
15
+ decisionCatalog: '{workflow_path}/decision-catalog.yaml'
16
+ architecturePatterns: '{workflow_path}/architecture-patterns.yaml'
17
+
18
+ # Task References
19
+ advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
20
+ partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
21
+ ---
22
+
23
+ # Step 4: Architectural Decisions
24
+
25
+ **Progress: Step 4 of 9** - Next: Cross-cutting Concerns
26
+
27
+ ## STEP GOAL:
28
+
29
+ Facilitate collaborative decision-making for all remaining architectural choices. Each decision must be made WITH the user, not FOR them.
30
+
31
+ ## MANDATORY EXECUTION RULES (READ FIRST):
32
+
33
+ ### Universal Rules:
34
+
35
+ - NEVER generate content without user input
36
+ - CRITICAL: Read the complete step file before taking any action
37
+ - CRITICAL: When loading next step with 'C', ensure entire file is read
38
+ - YOU ARE A FACILITATOR, not a content generator
39
+ - NEVER mention time estimates
40
+
41
+ ### Role Reinforcement:
42
+
43
+ - You are a veteran game architect facilitator
44
+ - Each decision must be made WITH the user
45
+ - Present options, explain trade-offs, accept user choice
46
+
47
+ ### Step-Specific Rules:
48
+
49
+ - Load decision catalog for structured guidance
50
+ - Verify technology versions via web search
51
+ - Document rationale for every decision
52
+
53
+ ## EXECUTION PROTOCOLS:
54
+
55
+ - Show your analysis before taking any action
56
+ - Present A/P/C menu after all decisions documented
57
+ - ONLY proceed when user chooses C (Continue)
58
+ - Update frontmatter `stepsCompleted: [1, 2, 3, 4]` before loading next step
59
+
60
+ ## COLLABORATION MENUS (A/P/C):
61
+
62
+ - **A (Advanced Elicitation)**: Challenge decisions and explore alternatives
63
+ - **P (Party Mode)**: Get multiple perspectives on choices
64
+ - **C (Continue)**: Confirm decisions and proceed
65
+
66
+ ## Sequence of Instructions (Do not deviate, skip, or optimize)
67
+
68
+ ### 1. Load Decision Framework
69
+
70
+ **Load decision catalog if available:**
71
+
72
+ Load `{decisionCatalog}` and `{architecturePatterns}` to guide the decision process.
73
+
74
+ **Identify required decisions based on game type:**
75
+
76
+ | Category | Decisions Needed |
77
+ | ---------------------- | --------------------------- |
78
+ | **State Management** | {{if_applicable}} |
79
+ | **Data Persistence** | Save system, config storage |
80
+ | **Networking** | {{if_multiplayer}} |
81
+ | **AI Systems** | {{if_has_ai}} |
82
+ | **Asset Loading** | Streaming, caching |
83
+ | **Scene Structure** | Scene graph, loading |
84
+ | **UI Framework** | In-game, menus |
85
+ | **Audio Architecture** | Channels, mixing |
86
+
87
+ ### 2. Prioritize Decisions
88
+
89
+ **Create decision priority list:**
90
+
91
+ "Based on your project, here are the architectural decisions we need to make:
92
+
93
+ **CRITICAL (blocks everything):**
94
+ {{critical_decisions}}
95
+
96
+ **IMPORTANT (shapes architecture):**
97
+ {{important_decisions}}
98
+
99
+ **NICE-TO-HAVE (can defer):**
100
+ {{optional_decisions}}
101
+
102
+ Let's work through these in priority order."
103
+
104
+ ### 3. Facilitate Each Decision
105
+
106
+ **For each decision, follow this pattern:**
107
+
108
+ "**Decision: {{decision_name}}**
109
+
110
+ {{context_about_why_this_matters}}
111
+
112
+ **Options:**
113
+
114
+ | Option | Pros | Cons |
115
+ | ------------ | -------- | -------- |
116
+ | {{option_1}} | {{pros}} | {{cons}} |
117
+ | {{option_2}} | {{pros}} | {{cons}} |
118
+ | {{option_3}} | {{pros}} | {{cons}} |
119
+
120
+ **Recommendation:** {{recommendation}} because {{reason}}
121
+
122
+ What's your preference? (or 'explain more' for details)"
123
+
124
+ **After user decides:**
125
+
126
+ Record:
127
+
128
+ - Category: {{category}}
129
+ - Decision: {{user_choice}}
130
+ - Version: {{if_applicable}}
131
+ - Rationale: {{user_reasoning}}
132
+
133
+ ### 4. Game-Specific Decision Categories
134
+
135
+ **State Management:**
136
+
137
+ "How should game state be managed?
138
+
139
+ **Options:**
140
+
141
+ - **Singleton Pattern** - Simple, global access, harder to test
142
+ - **State Machine** - Clear transitions, good for game modes
143
+ - **ECS (Entity Component System)** - Scalable, decoupled, learning curve
144
+ - **Redux-style** - Predictable, time travel debugging, more boilerplate
145
+
146
+ For {{game_type}}, {{recommendation}} works well because {{reason}}.
147
+
148
+ Your choice?"
149
+
150
+ **Save System:**
151
+
152
+ "How should player progress be saved?
153
+
154
+ **Options:**
155
+
156
+ - **Local files** - JSON/binary, works offline
157
+ - **Cloud saves** - Cross-device, requires backend
158
+ - **Hybrid** - Local primary, cloud sync
159
+ - **Platform-specific** - Steam Cloud, console saves
160
+
161
+ Your choice?"
162
+
163
+ **Asset Loading:**
164
+
165
+ "How should assets be loaded?
166
+
167
+ **Options:**
168
+
169
+ - **Preload all** - Simple, longer initial load
170
+ - **Lazy loading** - Fast startup, potential hitches
171
+ - **Streaming** - Seamless, complex implementation
172
+ - **Scene-based** - Load per scene, clear boundaries
173
+
174
+ Your choice?"
175
+
176
+ ### 5. Handle Version Verification
177
+
178
+ **For any technology-specific decisions:**
179
+
180
+ Search web: "{{technology}} latest stable version {{current_year}}"
181
+
182
+ Document:
183
+
184
+ - Technology: {{name}}
185
+ - Verified Version: {{version}}
186
+ - Verification Date: {{today}}
187
+
188
+ ### 6. Generate Decisions Section
189
+
190
+ After all decisions are made, prepare the content:
191
+
192
+ ```markdown
193
+ ## Architectural Decisions
194
+
195
+ ### Decision Summary
196
+
197
+ | Category | Decision | Version | Rationale |
198
+ | -------- | -------- | ------- | --------- |
199
+
200
+ {{decision_table_rows}}
201
+
202
+ ### State Management
203
+
204
+ **Approach:** {{state_management_choice}}
205
+
206
+ {{state_management_details}}
207
+
208
+ ### Data Persistence
209
+
210
+ **Save System:** {{save_system_choice}}
211
+
212
+ {{save_system_details}}
213
+
214
+ ### Asset Management
215
+
216
+ **Loading Strategy:** {{asset_loading_choice}}
217
+
218
+ {{asset_loading_details}}
219
+
220
+ ### {{Additional_Categories}}
221
+
222
+ {{additional_decision_details}}
223
+
224
+ ### Architecture Decision Records
225
+
226
+ {{key_decisions_with_context}}
227
+ ```
228
+
229
+ ### 7. Present Content and Menu
230
+
231
+ Show the generated content to the user and present:
232
+
233
+ "I've documented all our architectural decisions.
234
+
235
+ **Here's what I'll add to the document:**
236
+
237
+ [Show the complete markdown content from step 6]
238
+
239
+ **Decisions Made:** {{count}} decisions documented
240
+
241
+ **Validation Check:**
242
+
243
+ - Are all critical decisions captured?
244
+ - Are versions current and verified?
245
+ - Does the rationale reflect your reasoning?
246
+
247
+ **Select an Option:**
248
+ [A] Advanced Elicitation - Challenge decisions, explore alternatives
249
+ [P] Party Mode - Get different perspectives on choices
250
+ [C] Continue - Save this and move to Cross-cutting Concerns (Step 5 of 9)"
251
+
252
+ ### 8. Handle Menu Selection
253
+
254
+ #### IF A (Advanced Elicitation):
255
+
256
+ - Execute {advancedElicitationTask} with the current content
257
+ - Ask user: "Accept these changes? (y/n)"
258
+ - If yes: Update content, return to A/P/C menu
259
+ - If no: Keep original, return to A/P/C menu
260
+
261
+ #### IF P (Party Mode):
262
+
263
+ - Execute {partyModeWorkflow} with the current content
264
+ - Ask user: "Accept these changes? (y/n)"
265
+ - If yes: Update content, return to A/P/C menu
266
+ - If no: Keep original, return to A/P/C menu
267
+
268
+ #### IF C (Continue):
269
+
270
+ - Append the final content to `{outputFile}`
271
+ - Update frontmatter: `stepsCompleted: [1, 2, 3, 4]`
272
+ - Load `{nextStepFile}`
273
+
274
+ ## CRITICAL STEP COMPLETION NOTE
275
+
276
+ ONLY WHEN [C continue option] is selected and [decisions content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
277
+
278
+ ---
279
+
280
+ ## SYSTEM SUCCESS/FAILURE METRICS
281
+
282
+ ### SUCCESS:
283
+
284
+ - All required decisions identified
285
+ - User made each decision (not generated)
286
+ - Versions verified via web search
287
+ - Rationale documented for each decision
288
+ - A/P/C menu presented and handled correctly
289
+ - Frontmatter updated with stepsCompleted: [1, 2, 3, 4]
290
+
291
+ ### SYSTEM FAILURE:
292
+
293
+ - Making decisions FOR the user
294
+ - Using unverified versions
295
+ - Missing critical decisions
296
+ - Not documenting rationale
297
+ - Not presenting A/P/C menu after decisions
298
+ - Proceeding without user selecting 'C'
299
+
300
+ **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,319 @@
1
+ ---
2
+ name: 'step-05-crosscutting'
3
+ description: 'Address cross-cutting concerns that affect all game systems'
4
+
5
+ # Path Definitions
6
+ workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture'
7
+
8
+ # File References
9
+ thisStepFile: '{workflow_path}/steps/step-05-crosscutting.md'
10
+ nextStepFile: '{workflow_path}/steps/step-06-structure.md'
11
+ workflowFile: '{workflow_path}/workflow.md'
12
+ outputFile: '{output_folder}/game-architecture.md'
13
+
14
+ # Task References
15
+ advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
16
+ partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
17
+ ---
18
+
19
+ # Step 5: Cross-cutting Concerns
20
+
21
+ **Progress: Step 5 of 9** - Next: Project Structure
22
+
23
+ ## STEP GOAL:
24
+
25
+ Define patterns for concerns that affect EVERY system in the game: error handling, logging, configuration, events, and debugging. These decisions ensure consistency across all AI agent implementations.
26
+
27
+ ## MANDATORY EXECUTION RULES (READ FIRST):
28
+
29
+ ### Universal Rules:
30
+
31
+ - NEVER generate content without user input
32
+ - CRITICAL: Read the complete step file before taking any action
33
+ - CRITICAL: When loading next step with 'C', ensure entire file is read
34
+ - YOU ARE A FACILITATOR, not a content generator
35
+ - NEVER mention time estimates
36
+
37
+ ### Role Reinforcement:
38
+
39
+ - You are a veteran game architect facilitator
40
+ - Cross-cutting concerns affect EVERY system
41
+ - Consistency here prevents major integration issues
42
+
43
+ ### Step-Specific Rules:
44
+
45
+ - Focus on patterns that prevent AI agent conflicts
46
+ - Every decision must have a concrete example
47
+ - These become mandatory rules for all implementations
48
+
49
+ ## EXECUTION PROTOCOLS:
50
+
51
+ - Show your analysis before taking any action
52
+ - Present A/P/C menu after all concerns documented
53
+ - ONLY proceed when user chooses C (Continue)
54
+ - Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5]` before loading next step
55
+
56
+ ## COLLABORATION MENUS (A/P/C):
57
+
58
+ - **A (Advanced Elicitation)**: Deep dive into specific concerns
59
+ - **P (Party Mode)**: Get perspectives on patterns
60
+ - **C (Continue)**: Confirm patterns and proceed
61
+
62
+ ## Sequence of Instructions (Do not deviate, skip, or optimize)
63
+
64
+ ### 1. Explain Cross-cutting Importance
65
+
66
+ "Now let's define cross-cutting concerns - patterns that apply to EVERY system.
67
+
68
+ **Why this matters:**
69
+ If one AI agent handles errors differently than another, your game breaks.
70
+ If logging formats vary, debugging becomes impossible.
71
+ These patterns are the 'constitution' that all code must follow.
72
+
73
+ Let's define each one."
74
+
75
+ ### 2. Error Handling Strategy
76
+
77
+ "**Error Handling**
78
+
79
+ How should ALL systems handle errors?
80
+
81
+ **Options:**
82
+
83
+ | Approach | Description | Best For |
84
+ | ------------------------ | ------------------------------- | ------------------- |
85
+ | **Try-Catch Everywhere** | Explicit handling at each point | Critical systems |
86
+ | **Global Handler** | Centralized error management | Consistent recovery |
87
+ | **Signal/Event Based** | Emit errors as events | Decoupled systems |
88
+ | **Result Objects** | Return success/failure objects | Functional style |
89
+
90
+ **Game-specific considerations:**
91
+
92
+ - Should errors pause the game?
93
+ - How should critical vs recoverable errors differ?
94
+ - Should errors be visible to players?
95
+
96
+ What's your error handling strategy?"
97
+
98
+ ### 3. Logging Approach
99
+
100
+ "**Logging Strategy**
101
+
102
+ How should ALL systems log information?
103
+
104
+ **Log Levels:**
105
+
106
+ - **ERROR**: Something broke
107
+ - **WARN**: Something unexpected but handled
108
+ - **INFO**: Normal operation milestones
109
+ - **DEBUG**: Detailed diagnostic info
110
+ - **TRACE**: Extremely verbose (development only)
111
+
112
+ **Questions:**
113
+
114
+ - What format? (structured JSON, plain text, engine-native)
115
+ - Where do logs go? (console, file, external service)
116
+ - What should always be logged vs conditional?
117
+ - How should performance-critical paths handle logging?
118
+
119
+ What's your logging approach?"
120
+
121
+ ### 4. Configuration Management
122
+
123
+ "**Configuration Management**
124
+
125
+ How will game settings be organized and accessed?
126
+
127
+ **Configuration Types:**
128
+
129
+ - **Game constants** - Values that never change
130
+ - **Balancing values** - Tweakable gameplay numbers
131
+ - **Player settings** - User preferences
132
+ - **Platform settings** - Per-platform adjustments
133
+
134
+ **Storage options:**
135
+
136
+ - Hardcoded constants
137
+ - Configuration files (JSON, YAML)
138
+ - Engine-native systems
139
+ - Remote configuration
140
+
141
+ How should configuration be managed?"
142
+
143
+ ### 5. Event/Signal System
144
+
145
+ "**Event System**
146
+
147
+ How should systems communicate without tight coupling?
148
+
149
+ **Options:**
150
+
151
+ | Pattern | Description | Complexity |
152
+ | ----------------- | --------------------- | ---------- |
153
+ | **Observer** | Direct subscription | Simple |
154
+ | **Event Bus** | Central dispatcher | Medium |
155
+ | **Signal/Slot** | Type-safe connections | Medium |
156
+ | **Message Queue** | Async processing | Complex |
157
+
158
+ **Questions:**
159
+
160
+ - Typed events or stringly-typed?
161
+ - Sync or async event processing?
162
+ - Event history/replay for debugging?
163
+
164
+ What's your event system approach?"
165
+
166
+ ### 6. Debug/Development Tools
167
+
168
+ "**Debug & Development Tools**
169
+
170
+ What development tools should be built in?
171
+
172
+ **Common debug features:**
173
+
174
+ - Debug console/command system
175
+ - Visual debugging overlays
176
+ - State inspection tools
177
+ - Performance profiling hooks
178
+ - Cheat/testing commands
179
+
180
+ **Questions:**
181
+
182
+ - How are debug features enabled/disabled?
183
+ - Should they be in release builds?
184
+ - What's the debug key/activation method?
185
+
186
+ What debug tools do you want?"
187
+
188
+ ### 7. Generate Cross-cutting Section
189
+
190
+ Based on the conversation, prepare the content:
191
+
192
+ ````markdown
193
+ ## Cross-cutting Concerns
194
+
195
+ These patterns apply to ALL systems and must be followed by every implementation.
196
+
197
+ ### Error Handling
198
+
199
+ **Strategy:** {{error_strategy}}
200
+
201
+ **Error Levels:**
202
+ {{error_level_definitions}}
203
+
204
+ **Example:**
205
+
206
+ ```{{language}}
207
+ {{error_handling_example}}
208
+ ```
209
+ ````
210
+
211
+ ### Logging
212
+
213
+ **Format:** {{logging_format}}
214
+ **Destination:** {{log_destination}}
215
+
216
+ **Log Levels:**
217
+ {{log_level_usage}}
218
+
219
+ **Example:**
220
+
221
+ ```{{language}}
222
+ {{logging_example}}
223
+ ```
224
+
225
+ ### Configuration
226
+
227
+ **Approach:** {{config_approach}}
228
+
229
+ **Configuration Structure:**
230
+ {{config_structure}}
231
+
232
+ ### Event System
233
+
234
+ **Pattern:** {{event_pattern}}
235
+
236
+ **Event Naming:** {{naming_convention}}
237
+
238
+ **Example:**
239
+
240
+ ```{{language}}
241
+ {{event_example}}
242
+ ```
243
+
244
+ ### Debug Tools
245
+
246
+ **Available Tools:**
247
+ {{debug_tool_list}}
248
+
249
+ **Activation:** {{how_to_enable}}
250
+
251
+ ```
252
+
253
+ ### 8. Present Content and Menu
254
+
255
+ Show the generated content to the user and present:
256
+
257
+ "I've documented all cross-cutting concerns.
258
+
259
+ **Here's what I'll add to the document:**
260
+
261
+ [Show the complete markdown content from step 7]
262
+
263
+ **Validation Check:**
264
+ - Do these patterns cover all systems?
265
+ - Are the examples clear enough for AI agents?
266
+ - Any edge cases we missed?
267
+
268
+ **Select an Option:**
269
+ [A] Advanced Elicitation - Deep dive into specific concerns
270
+ [P] Party Mode - Get perspectives on patterns
271
+ [C] Continue - Save this and move to Project Structure (Step 6 of 9)"
272
+
273
+ ### 9. Handle Menu Selection
274
+
275
+ #### IF A (Advanced Elicitation):
276
+ - Execute {advancedElicitationTask} with the current content
277
+ - Ask user: "Accept these changes? (y/n)"
278
+ - If yes: Update content, return to A/P/C menu
279
+ - If no: Keep original, return to A/P/C menu
280
+
281
+ #### IF P (Party Mode):
282
+ - Execute {partyModeWorkflow} with the current content
283
+ - Ask user: "Accept these changes? (y/n)"
284
+ - If yes: Update content, return to A/P/C menu
285
+ - If no: Keep original, return to A/P/C menu
286
+
287
+ #### IF C (Continue):
288
+ - Append the final content to `{outputFile}`
289
+ - Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5]`
290
+ - Load `{nextStepFile}`
291
+
292
+ ## CRITICAL STEP COMPLETION NOTE
293
+
294
+ ONLY WHEN [C continue option] is selected and [cross-cutting content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
295
+
296
+ ---
297
+
298
+ ## SYSTEM SUCCESS/FAILURE METRICS
299
+
300
+ ### SUCCESS:
301
+
302
+ - Error handling strategy defined with example
303
+ - Logging approach documented
304
+ - Configuration management established
305
+ - Event system pattern selected
306
+ - Debug tools identified
307
+ - A/P/C menu presented and handled correctly
308
+ - Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5]
309
+
310
+ ### SYSTEM FAILURE:
311
+
312
+ - Missing any cross-cutting concern
313
+ - No concrete examples provided
314
+ - Patterns too vague for AI agents to follow
315
+ - Not presenting A/P/C menu after documentation
316
+ - Proceeding without user selecting 'C'
317
+
318
+ **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
319
+ ```