bmad-method 6.0.0-alpha.17 → 6.0.0-alpha.18
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.
- package/CHANGELOG.md +97 -0
- package/package.json +1 -1
- package/src/modules/bmgd/_module-installer/installer.js +160 -0
- package/src/modules/bmgd/_module-installer/platform-specifics/claude-code.js +23 -0
- package/src/modules/bmgd/_module-installer/platform-specifics/windsurf.js +18 -0
- package/src/modules/bmgd/agents/game-architect.agent.yaml +23 -8
- package/src/modules/bmgd/agents/game-designer.agent.yaml +38 -18
- package/src/modules/bmgd/agents/game-dev.agent.yaml +30 -14
- package/src/modules/bmgd/agents/game-qa.agent.yaml +64 -0
- package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +27 -39
- package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +56 -0
- package/src/modules/bmgd/docs/README.md +180 -0
- package/src/modules/bmgd/docs/agents-guide.md +407 -0
- package/src/modules/bmgd/docs/game-types-guide.md +503 -0
- package/src/modules/bmgd/docs/glossary.md +294 -0
- package/src/modules/bmgd/docs/quick-flow-guide.md +288 -0
- package/src/modules/bmgd/docs/quick-start.md +250 -0
- package/src/modules/bmgd/docs/troubleshooting.md +259 -0
- package/src/modules/bmgd/docs/workflow-overview.jpg +0 -0
- package/src/modules/bmgd/docs/workflows-guide.md +463 -0
- package/src/modules/bmgd/gametest/knowledge/balance-testing.md +220 -0
- package/src/modules/bmgd/gametest/knowledge/certification-testing.md +319 -0
- package/src/modules/bmgd/gametest/knowledge/compatibility-testing.md +228 -0
- package/src/modules/bmgd/gametest/knowledge/godot-testing.md +376 -0
- package/src/modules/bmgd/gametest/knowledge/input-testing.md +315 -0
- package/src/modules/bmgd/gametest/knowledge/localization-testing.md +304 -0
- package/src/modules/bmgd/gametest/knowledge/multiplayer-testing.md +322 -0
- package/src/modules/bmgd/gametest/knowledge/performance-testing.md +204 -0
- package/src/modules/bmgd/gametest/knowledge/playtesting.md +384 -0
- package/src/modules/bmgd/gametest/knowledge/qa-automation.md +190 -0
- package/src/modules/bmgd/gametest/knowledge/regression-testing.md +280 -0
- package/src/modules/bmgd/gametest/knowledge/save-testing.md +280 -0
- package/src/modules/bmgd/gametest/knowledge/smoke-testing.md +404 -0
- package/src/modules/bmgd/gametest/knowledge/test-priorities.md +271 -0
- package/src/modules/bmgd/gametest/knowledge/unity-testing.md +383 -0
- package/src/modules/bmgd/gametest/knowledge/unreal-testing.md +388 -0
- package/src/modules/bmgd/gametest/qa-index.csv +17 -0
- package/src/modules/bmgd/module.yaml +25 -9
- package/src/modules/bmgd/teams/default-party.csv +2 -0
- package/src/modules/bmgd/teams/team-gamedev.yaml +12 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +164 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +210 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +289 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +275 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +49 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +29 -8
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +223 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +151 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +218 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +218 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +231 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +242 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +224 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +282 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +296 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.md +62 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +40 -9
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +248 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +173 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +332 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +245 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +229 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +258 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +249 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +266 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +272 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +264 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +255 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +275 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +284 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +250 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +335 -0
- package/src/modules/bmgd/workflows/2-design/gdd/workflow.md +61 -0
- package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +27 -7
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +228 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +163 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +262 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +238 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +297 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +262 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +250 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +244 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +264 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +254 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +262 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +331 -0
- package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +57 -0
- package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +53 -8
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +223 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +153 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +262 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +290 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +300 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +319 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +304 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +349 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +293 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +302 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +55 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +50 -21
- package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +23 -0
- package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +225 -0
- package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +18 -15
- package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +1 -1
- package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +1 -1
- package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +11 -6
- package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +332 -214
- package/src/modules/bmgd/workflows/4-production/create-story/instructions.xml +298 -0
- package/src/modules/bmgd/workflows/4-production/create-story/template.md +3 -5
- package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +12 -7
- package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +65 -23
- package/src/modules/bmgd/workflows/4-production/dev-story/instructions.xml +409 -0
- package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +13 -3
- package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +4 -4
- package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +12 -7
- package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +32 -41
- package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +13 -13
- package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +6 -1
- package/src/modules/bmgd/workflows/4-production/sprint-status/instructions.md +229 -0
- package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +35 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/instructions.md +140 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml +27 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/checklist.md +37 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/instructions.md +220 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml +45 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/checklist.md +26 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/instructions.md +156 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml +36 -0
- package/src/modules/bmgd/workflows/gametest/automate/checklist.md +93 -0
- package/src/modules/bmgd/workflows/gametest/automate/instructions.md +317 -0
- package/src/modules/bmgd/workflows/gametest/automate/workflow.yaml +50 -0
- package/src/modules/bmgd/workflows/gametest/performance/checklist.md +96 -0
- package/src/modules/bmgd/workflows/gametest/performance/instructions.md +323 -0
- package/src/modules/bmgd/workflows/gametest/performance/performance-template.md +256 -0
- package/src/modules/bmgd/workflows/gametest/performance/workflow.yaml +48 -0
- package/src/modules/bmgd/workflows/gametest/playtest-plan/checklist.md +93 -0
- package/src/modules/bmgd/workflows/gametest/playtest-plan/instructions.md +297 -0
- package/src/modules/bmgd/workflows/gametest/playtest-plan/playtest-template.md +208 -0
- package/src/modules/bmgd/workflows/gametest/playtest-plan/workflow.yaml +59 -0
- package/src/modules/bmgd/workflows/gametest/test-design/checklist.md +98 -0
- package/src/modules/bmgd/workflows/gametest/test-design/instructions.md +280 -0
- package/src/modules/bmgd/workflows/gametest/test-design/test-design-template.md +205 -0
- package/src/modules/bmgd/workflows/gametest/test-design/workflow.yaml +47 -0
- package/src/modules/bmgd/workflows/gametest/test-framework/checklist.md +103 -0
- package/src/modules/bmgd/workflows/gametest/test-framework/instructions.md +348 -0
- package/src/modules/bmgd/workflows/gametest/test-framework/workflow.yaml +48 -0
- package/src/modules/bmgd/workflows/gametest/test-review/checklist.md +87 -0
- package/src/modules/bmgd/workflows/gametest/test-review/instructions.md +272 -0
- package/src/modules/bmgd/workflows/gametest/test-review/test-review-template.md +203 -0
- package/src/modules/bmgd/workflows/gametest/test-review/workflow.yaml +48 -0
- package/src/modules/bmgd/workflows/workflow-status/init/instructions.md +299 -0
- package/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml +29 -0
- package/src/modules/bmgd/workflows/workflow-status/instructions.md +395 -0
- package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-brownfield.yaml +65 -0
- package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-greenfield.yaml +71 -0
- package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +29 -0
- package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-greenfield.yaml +39 -0
- package/src/modules/bmgd/workflows/workflow-status/project-levels.yaml +63 -0
- package/src/modules/bmgd/workflows/workflow-status/workflow-status-template.yaml +24 -0
- package/src/modules/bmgd/workflows/workflow-status/workflow.yaml +30 -0
- package/tools/cli/commands/install.js +9 -0
- package/tools/cli/installers/lib/core/installer.js +109 -109
- package/tools/cli/installers/lib/core/installer.js.bak +3204 -0
- package/tools/cli/installers/lib/modules/manager.js +16 -4
- package/tools/cli/lib/agent/compiler.js +99 -0
- package/tools/cli/lib/ui.js +78 -27
- package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +0 -502
- package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +0 -398
- package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +0 -256
- package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +0 -267
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +0 -17
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +0 -164
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +0 -76
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +0 -58
- package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +0 -16
- package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +0 -34
- package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +0 -209
- package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +0 -63
- package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +0 -111
- package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +0 -28
- package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +0 -117
- package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +0 -25
- /package/src/modules/bmgd/workflows/1-preproduction/game-brief/{template.md → templates/game-brief-template.md} +0 -0
- /package/src/modules/bmgd/workflows/2-design/gdd/{gdd-template.md → templates/gdd-template.md} +0 -0
- /package/src/modules/bmgd/workflows/2-design/narrative/{narrative-template.md → templates/narrative-template.md} +0 -0
- /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.
|
package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md
ADDED
|
@@ -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
|
+
```
|