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,348 @@
1
+ <!-- Powered by BMAD-CORE™ -->
2
+
3
+ # Game Test Framework Setup
4
+
5
+ **Workflow ID**: `_bmad/bmgd/gametest/framework`
6
+ **Version**: 1.0 (BMad v6)
7
+
8
+ ---
9
+
10
+ ## Overview
11
+
12
+ Initialize a production-ready game test framework for Unity, Unreal Engine, or Godot projects. This workflow scaffolds the complete testing infrastructure including unit tests, integration tests, and play mode tests appropriate for the detected game engine.
13
+
14
+ ---
15
+
16
+ ## Preflight Requirements
17
+
18
+ **Critical:** Verify these requirements before proceeding. If any fail, HALT and notify the user.
19
+
20
+ - ✅ Game project exists with identifiable engine
21
+ - ✅ No test framework already configured (check for existing test directories)
22
+ - ✅ Project structure is accessible
23
+
24
+ ---
25
+
26
+ ## Step 1: Detect Game Engine
27
+
28
+ ### Actions
29
+
30
+ 1. **Identify Engine Type**
31
+
32
+ Look for engine-specific files:
33
+ - **Unity**: `Assets/`, `ProjectSettings/ProjectSettings.asset`, `*.unity` scene files
34
+ - **Unreal**: `*.uproject`, `Source/`, `Config/DefaultEngine.ini`
35
+ - **Godot**: `project.godot`, `*.tscn`, `*.gd` files
36
+
37
+ 2. **Verify Engine Version**
38
+ - Unity: Check `ProjectSettings/ProjectVersion.txt`
39
+ - Unreal: Check `*.uproject` file for `EngineAssociation`
40
+ - Godot: Check `project.godot` for `config_version`
41
+
42
+ 3. **Check for Existing Test Framework**
43
+ - Unity: Check for `Tests/` folder, `*.Tests.asmdef`
44
+ - Unreal: Check for `Tests/` in Source, `*Tests.Build.cs`
45
+ - Godot: Check for `tests/` folder, GUT plugin in `addons/gut/`
46
+
47
+ **Halt Condition:** If existing framework detected, offer upgrade path or HALT.
48
+
49
+ ---
50
+
51
+ ## Step 2: Scaffold Framework
52
+
53
+ ### Unity Test Framework
54
+
55
+ **Knowledge Base Reference**: `knowledge/unity-testing.md`
56
+
57
+ 1. **Create Directory Structure**
58
+
59
+ ```
60
+ Assets/
61
+ ├── Tests/
62
+ │ ├── EditMode/
63
+ │ │ ├── EditModeTests.asmdef
64
+ │ │ └── ExampleEditModeTest.cs
65
+ │ └── PlayMode/
66
+ │ ├── PlayModeTests.asmdef
67
+ │ └── ExamplePlayModeTest.cs
68
+ ```
69
+
70
+ 2. **Generate Assembly Definitions**
71
+
72
+ `EditModeTests.asmdef`:
73
+
74
+ ```json
75
+ {
76
+ "name": "EditModeTests",
77
+ "references": ["<GameAssembly>"],
78
+ "includePlatforms": ["Editor"],
79
+ "defineConstraints": ["UNITY_INCLUDE_TESTS"],
80
+ "optionalUnityReferences": ["TestAssemblies"]
81
+ }
82
+ ```
83
+
84
+ `PlayModeTests.asmdef`:
85
+
86
+ ```json
87
+ {
88
+ "name": "PlayModeTests",
89
+ "references": ["<GameAssembly>"],
90
+ "includePlatforms": [],
91
+ "defineConstraints": ["UNITY_INCLUDE_TESTS"],
92
+ "optionalUnityReferences": ["TestAssemblies"]
93
+ }
94
+ ```
95
+
96
+ 3. **Generate Sample Tests**
97
+
98
+ Edit Mode test example:
99
+
100
+ ```csharp
101
+ using NUnit.Framework;
102
+
103
+ [TestFixture]
104
+ public class DamageCalculatorTests
105
+ {
106
+ [Test]
107
+ public void Calculate_BaseDamage_ReturnsCorrectValue()
108
+ {
109
+ // Arrange
110
+ var calculator = new DamageCalculator();
111
+
112
+ // Act
113
+ float result = calculator.Calculate(100f, 1f);
114
+
115
+ // Assert
116
+ Assert.AreEqual(100f, result);
117
+ }
118
+ }
119
+ ```
120
+
121
+ Play Mode test example:
122
+
123
+ ```csharp
124
+ using System.Collections;
125
+ using NUnit.Framework;
126
+ using UnityEngine;
127
+ using UnityEngine.TestTools;
128
+
129
+ public class PlayerMovementTests
130
+ {
131
+ [UnityTest]
132
+ public IEnumerator Player_WhenInputApplied_Moves()
133
+ {
134
+ // Arrange
135
+ var playerGO = new GameObject("Player");
136
+ var controller = playerGO.AddComponent<PlayerController>();
137
+
138
+ // Act
139
+ controller.SetMoveInput(Vector2.right);
140
+ yield return new WaitForSeconds(0.5f);
141
+
142
+ // Assert
143
+ Assert.Greater(playerGO.transform.position.x, 0f);
144
+
145
+ // Cleanup
146
+ Object.Destroy(playerGO);
147
+ }
148
+ }
149
+ ```
150
+
151
+ ---
152
+
153
+ ### Unreal Engine Automation
154
+
155
+ **Knowledge Base Reference**: `knowledge/unreal-testing.md`
156
+
157
+ 1. **Create Directory Structure**
158
+
159
+ ```
160
+ Source/
161
+ ├── <ProjectName>/
162
+ │ └── ...
163
+ └── <ProjectName>Tests/
164
+ ├── <ProjectName>Tests.Build.cs
165
+ └── Private/
166
+ ├── DamageCalculationTests.cpp
167
+ └── PlayerCombatTests.cpp
168
+ ```
169
+
170
+ 2. **Generate Module Build File**
171
+
172
+ `<ProjectName>Tests.Build.cs`:
173
+
174
+ ```csharp
175
+ using UnrealBuildTool;
176
+
177
+ public class <ProjectName>Tests : ModuleRules
178
+ {
179
+ public <ProjectName>Tests(ReadOnlyTargetRules Target) : base(Target)
180
+ {
181
+ PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
182
+
183
+ PublicDependencyModuleNames.AddRange(new string[] {
184
+ "Core",
185
+ "CoreUObject",
186
+ "Engine",
187
+ "<ProjectName>"
188
+ });
189
+
190
+ PrivateDependencyModuleNames.AddRange(new string[] {
191
+ "AutomationController"
192
+ });
193
+ }
194
+ }
195
+ ```
196
+
197
+ 3. **Generate Sample Tests**
198
+
199
+ ```cpp
200
+ #include "Misc/AutomationTest.h"
201
+
202
+ IMPLEMENT_SIMPLE_AUTOMATION_TEST(
203
+ FDamageCalculationTest,
204
+ "<ProjectName>.Combat.DamageCalculation",
205
+ EAutomationTestFlags::ApplicationContextMask |
206
+ EAutomationTestFlags::ProductFilter
207
+ )
208
+
209
+ bool FDamageCalculationTest::RunTest(const FString& Parameters)
210
+ {
211
+ // Arrange
212
+ float BaseDamage = 100.f;
213
+ float CritMultiplier = 2.f;
214
+
215
+ // Act
216
+ float Result = UDamageCalculator::Calculate(BaseDamage, CritMultiplier);
217
+
218
+ // Assert
219
+ TestEqual("Critical hit doubles damage", Result, 200.f);
220
+
221
+ return true;
222
+ }
223
+ ```
224
+
225
+ ---
226
+
227
+ ### Godot GUT Framework
228
+
229
+ **Knowledge Base Reference**: `knowledge/godot-testing.md`
230
+
231
+ 1. **Create Directory Structure**
232
+
233
+ ```
234
+ project/
235
+ ├── addons/
236
+ │ └── gut/ (plugin files)
237
+ ├── tests/
238
+ │ ├── unit/
239
+ │ │ └── test_damage_calculator.gd
240
+ │ └── integration/
241
+ │ └── test_player_combat.gd
242
+ └── gut_config.json
243
+ ```
244
+
245
+ 2. **Generate GUT Configuration**
246
+
247
+ `gut_config.json`:
248
+
249
+ ```json
250
+ {
251
+ "dirs": ["res://tests/"],
252
+ "include_subdirs": true,
253
+ "prefix": "test_",
254
+ "suffix": ".gd",
255
+ "should_exit": true,
256
+ "should_exit_on_success": true,
257
+ "log_level": 1,
258
+ "junit_xml_file": "results.xml"
259
+ }
260
+ ```
261
+
262
+ 3. **Generate Sample Tests**
263
+
264
+ `tests/unit/test_damage_calculator.gd`:
265
+
266
+ ```gdscript
267
+ extends GutTest
268
+
269
+ var calculator: DamageCalculator
270
+
271
+ func before_each():
272
+ calculator = DamageCalculator.new()
273
+
274
+ func after_each():
275
+ calculator.free()
276
+
277
+ func test_calculate_base_damage():
278
+ var result = calculator.calculate(100.0, 1.0)
279
+ assert_eq(result, 100.0, "Base damage should equal input")
280
+
281
+ func test_calculate_critical_hit():
282
+ var result = calculator.calculate(100.0, 2.0)
283
+ assert_eq(result, 200.0, "Critical hit should double damage")
284
+ ```
285
+
286
+ ---
287
+
288
+ ## Step 3: Generate Documentation
289
+
290
+ Create `tests/README.md` with:
291
+
292
+ - Test framework overview for the detected engine
293
+ - Directory structure explanation
294
+ - Running tests locally
295
+ - CI integration commands
296
+ - Best practices for game testing
297
+ - Links to knowledge base fragments
298
+
299
+ ---
300
+
301
+ ## Step 4: Deliverables
302
+
303
+ ### Primary Artifacts Created
304
+
305
+ 1. **Directory Structure** - Engine-appropriate test folders
306
+ 2. **Configuration Files** - Framework-specific config (asmdef, Build.cs, gut_config.json)
307
+ 3. **Sample Tests** - Working examples for unit and integration tests
308
+ 4. **Documentation** - `tests/README.md`
309
+
310
+ ---
311
+
312
+ ## Output Summary
313
+
314
+ After completing this workflow, provide a summary:
315
+
316
+ ```markdown
317
+ ## Game Test Framework Scaffold Complete
318
+
319
+ **Engine Detected**: {Unity | Unreal | Godot}
320
+ **Framework**: {Unity Test Framework | Unreal Automation | GUT}
321
+
322
+ **Artifacts Created**:
323
+
324
+ - ✅ Test directory structure
325
+ - ✅ Framework configuration
326
+ - ✅ Sample unit tests
327
+ - ✅ Sample integration/play mode tests
328
+ - ✅ Documentation
329
+
330
+ **Next Steps**:
331
+
332
+ 1. Review sample tests and adapt to your game
333
+ 2. Run initial tests to verify setup
334
+ 3. Use `test-design` workflow to plan comprehensive test coverage
335
+ 4. Use `automate` workflow to generate additional tests
336
+
337
+ **Knowledge Base References Applied**:
338
+
339
+ - {engine}-testing.md
340
+ - qa-automation.md
341
+ - test-priorities.md
342
+ ```
343
+
344
+ ---
345
+
346
+ ## Validation
347
+
348
+ Refer to `checklist.md` for comprehensive validation criteria.
@@ -0,0 +1,48 @@
1
+ # Game QA workflow: framework
2
+ name: gametest-framework
3
+ description: "Initialize game test framework architecture for Unity, Unreal Engine, or Godot projects"
4
+ author: "BMad"
5
+
6
+ # Critical variables from config
7
+ config_source: "{project-root}/_bmad/bmgd/config.yaml"
8
+ output_folder: "{config_source}:output_folder"
9
+ user_name: "{config_source}:user_name"
10
+ communication_language: "{config_source}:communication_language"
11
+ document_output_language: "{config_source}:document_output_language"
12
+ date: system-generated
13
+
14
+ # Workflow components
15
+ installed_path: "{project-root}/_bmad/bmgd/workflows/gametest/test-framework"
16
+ instructions: "{installed_path}/instructions.md"
17
+ validation: "{installed_path}/checklist.md"
18
+
19
+ # Variables and inputs
20
+ variables:
21
+ test_dir: "{project-root}/tests" # Root test directory
22
+ game_engine: "auto" # auto, unity, unreal, godot
23
+ test_framework: "auto" # auto, gut (godot), unity-test-framework, unreal-automation
24
+
25
+ # Output configuration
26
+ default_output_file: "{test_dir}/README.md"
27
+
28
+ # Required tools
29
+ required_tools:
30
+ - read_file
31
+ - write_file
32
+ - create_directory
33
+ - list_files
34
+ - search_repo
35
+
36
+ tags:
37
+ - qa
38
+ - setup
39
+ - game-testing
40
+ - framework
41
+ - initialization
42
+
43
+ execution_hints:
44
+ interactive: false
45
+ autonomous: true
46
+ iterative: true
47
+
48
+ web_bundle: false
@@ -0,0 +1,87 @@
1
+ # Test Review - Validation Checklist
2
+
3
+ ---
4
+
5
+ ## Prerequisites
6
+
7
+ - [ ] Test suite accessible
8
+ - [ ] Test results available
9
+ - [ ] Feature list known
10
+ - [ ] Access to CI/CD pipeline
11
+
12
+ ---
13
+
14
+ ## Metrics Collection
15
+
16
+ - [ ] Test counts by type gathered
17
+ - [ ] Pass rates calculated
18
+ - [ ] Average durations measured
19
+ - [ ] Flaky tests identified
20
+ - [ ] Slow tests identified
21
+ - [ ] Disabled tests listed
22
+
23
+ ---
24
+
25
+ ## Quality Assessment
26
+
27
+ - [ ] Determinism evaluated
28
+ - [ ] Isolation checked
29
+ - [ ] Speed benchmarked
30
+ - [ ] Readability assessed
31
+ - [ ] Anti-patterns documented
32
+
33
+ ---
34
+
35
+ ## Coverage Analysis
36
+
37
+ - [ ] All features listed
38
+ - [ ] Test coverage mapped
39
+ - [ ] P0/P1 coverage verified
40
+ - [ ] Critical gaps identified
41
+ - [ ] Gap priorities assigned
42
+
43
+ ---
44
+
45
+ ## Infrastructure Review
46
+
47
+ - [ ] CI integration verified
48
+ - [ ] Results visibility confirmed
49
+ - [ ] Failure blocking assessed
50
+ - [ ] Fixture quality evaluated
51
+ - [ ] Maintenance burden estimated
52
+
53
+ ---
54
+
55
+ ## Recommendations
56
+
57
+ - [ ] Findings prioritized
58
+ - [ ] Effort estimated
59
+ - [ ] Immediate actions identified
60
+ - [ ] Short-term improvements listed
61
+ - [ ] Long-term strategy outlined
62
+
63
+ ---
64
+
65
+ ## Report
66
+
67
+ - [ ] Executive summary complete
68
+ - [ ] Metrics section complete
69
+ - [ ] Quality assessment documented
70
+ - [ ] Coverage analysis included
71
+ - [ ] Recommendations actionable
72
+ - [ ] Appendices populated
73
+
74
+ ---
75
+
76
+ ## Completion Criteria
77
+
78
+ - [ ] All test types reviewed
79
+ - [ ] Critical gaps identified
80
+ - [ ] Actionable recommendations provided
81
+ - [ ] Report delivered to stakeholders
82
+
83
+ ---
84
+
85
+ **Completed by:** {name}
86
+ **Date:** {date}
87
+ **Tests Reviewed:** {count}