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,304 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-06-structure'
|
|
3
|
+
description: 'Define project structure, directory organization, and architectural boundaries'
|
|
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-06-structure.md'
|
|
10
|
+
nextStepFile: '{workflow_path}/steps/step-07-patterns.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 6: Project Structure
|
|
20
|
+
|
|
21
|
+
**Progress: Step 6 of 9** - Next: Implementation Patterns
|
|
22
|
+
|
|
23
|
+
## STEP GOAL:
|
|
24
|
+
|
|
25
|
+
Define the complete project structure including directory organization, file naming conventions, and architectural boundaries. This ensures all AI agents place code consistently.
|
|
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
|
+
- Project structure prevents "where does this go?" confusion
|
|
41
|
+
- Clear boundaries enable parallel development
|
|
42
|
+
|
|
43
|
+
### Step-Specific Rules:
|
|
44
|
+
|
|
45
|
+
- Structure must be complete, not generic placeholders
|
|
46
|
+
- Map every major system to a location
|
|
47
|
+
- Define naming conventions explicitly
|
|
48
|
+
|
|
49
|
+
## EXECUTION PROTOCOLS:
|
|
50
|
+
|
|
51
|
+
- Show your analysis before taking any action
|
|
52
|
+
- Present A/P/C menu after structure defined
|
|
53
|
+
- ONLY proceed when user chooses C (Continue)
|
|
54
|
+
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6]` before loading next step
|
|
55
|
+
|
|
56
|
+
## COLLABORATION MENUS (A/P/C):
|
|
57
|
+
|
|
58
|
+
- **A (Advanced Elicitation)**: Refine structure organization
|
|
59
|
+
- **P (Party Mode)**: Get perspectives on layout
|
|
60
|
+
- **C (Continue)**: Confirm structure and proceed
|
|
61
|
+
|
|
62
|
+
## Sequence of Instructions (Do not deviate, skip, or optimize)
|
|
63
|
+
|
|
64
|
+
### 1. Determine Organization Pattern
|
|
65
|
+
|
|
66
|
+
"Let's define how your project will be organized.
|
|
67
|
+
|
|
68
|
+
**Organization Patterns:**
|
|
69
|
+
|
|
70
|
+
| Pattern | Description | Best For |
|
|
71
|
+
| ----------------- | -------------------------------- | ------------- |
|
|
72
|
+
| **By Feature** | All related files together | Feature teams |
|
|
73
|
+
| **By Type** | Scripts, assets, scenes separate | Traditional |
|
|
74
|
+
| **Hybrid** | Types at top, features within | Balanced |
|
|
75
|
+
| **Domain-Driven** | By game domain/system | Complex games |
|
|
76
|
+
|
|
77
|
+
**Engine Conventions:**
|
|
78
|
+
|
|
79
|
+
- {{engine}} typically uses: {{engine_convention}}
|
|
80
|
+
|
|
81
|
+
What organization pattern do you prefer?"
|
|
82
|
+
|
|
83
|
+
### 2. Define Root Structure
|
|
84
|
+
|
|
85
|
+
"Based on {{selected_pattern}}, let's define your root structure.
|
|
86
|
+
|
|
87
|
+
**For {{engine}}, typical root looks like:**
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
{{project_name}}/
|
|
91
|
+
├── {{source_folder}}/ # Game source code
|
|
92
|
+
├── {{assets_folder}}/ # Art, audio, data
|
|
93
|
+
├── {{scenes_folder}}/ # Scene/level files
|
|
94
|
+
├── {{tests_folder}}/ # Test files
|
|
95
|
+
├── {{docs_folder}}/ # Documentation
|
|
96
|
+
└── {{config_files}} # Project config
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Does this work, or would you like to adjust?"
|
|
100
|
+
|
|
101
|
+
### 3. Detail Source Structure
|
|
102
|
+
|
|
103
|
+
"Now let's detail the source code organization.
|
|
104
|
+
|
|
105
|
+
**Based on your systems:**
|
|
106
|
+
{{list_of_systems_from_context}}
|
|
107
|
+
|
|
108
|
+
**Proposed structure:**
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
{{source_folder}}/
|
|
112
|
+
├── core/ # Core systems (singletons, managers)
|
|
113
|
+
│ ├── {{core_systems}}
|
|
114
|
+
├── gameplay/ # Gameplay mechanics
|
|
115
|
+
│ ├── {{gameplay_systems}}
|
|
116
|
+
├── ui/ # User interface
|
|
117
|
+
│ ├── {{ui_organization}}
|
|
118
|
+
├── utils/ # Utilities and helpers
|
|
119
|
+
│ ├── {{util_types}}
|
|
120
|
+
└── data/ # Data structures and models
|
|
121
|
+
└── {{data_types}}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
What adjustments would you make?"
|
|
125
|
+
|
|
126
|
+
### 4. Define Asset Structure
|
|
127
|
+
|
|
128
|
+
"Let's organize your assets.
|
|
129
|
+
|
|
130
|
+
**Asset Categories:**
|
|
131
|
+
|
|
132
|
+
- Art (sprites, textures, models)
|
|
133
|
+
- Audio (music, sfx, voice)
|
|
134
|
+
- Data (configurations, levels)
|
|
135
|
+
- UI (interface assets)
|
|
136
|
+
|
|
137
|
+
**Proposed asset structure:**
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
{{assets_folder}}/
|
|
141
|
+
├── art/
|
|
142
|
+
│ ├── {{art_categories}}
|
|
143
|
+
├── audio/
|
|
144
|
+
│ ├── music/
|
|
145
|
+
│ ├── sfx/
|
|
146
|
+
│ └── {{audio_categories}}
|
|
147
|
+
├── data/
|
|
148
|
+
│ └── {{data_file_types}}
|
|
149
|
+
└── ui/
|
|
150
|
+
└── {{ui_asset_types}}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
How should assets be organized?"
|
|
154
|
+
|
|
155
|
+
### 5. Map Systems to Locations
|
|
156
|
+
|
|
157
|
+
"Let's map each major system to its location.
|
|
158
|
+
|
|
159
|
+
| System | Location | Notes |
|
|
160
|
+
| ------ | -------- | ----- |
|
|
161
|
+
|
|
162
|
+
{{system_location_mapping}}
|
|
163
|
+
|
|
164
|
+
Does this mapping make sense for your project?"
|
|
165
|
+
|
|
166
|
+
### 6. Define Naming Conventions
|
|
167
|
+
|
|
168
|
+
"Finally, let's establish naming conventions.
|
|
169
|
+
|
|
170
|
+
**Files:**
|
|
171
|
+
|
|
172
|
+
- Scripts: {{script_naming}} (e.g., PlayerController, enemy_spawner)
|
|
173
|
+
- Scenes: {{scene_naming}} (e.g., Level01, main_menu)
|
|
174
|
+
- Assets: {{asset_naming}} (e.g., player_idle, btn_play)
|
|
175
|
+
|
|
176
|
+
**Code Elements:**
|
|
177
|
+
|
|
178
|
+
- Classes: {{class_naming}} (e.g., PascalCase)
|
|
179
|
+
- Functions: {{function_naming}} (e.g., snake_case, camelCase)
|
|
180
|
+
- Variables: {{variable_naming}}
|
|
181
|
+
- Constants: {{constant_naming}} (e.g., UPPER_SNAKE)
|
|
182
|
+
|
|
183
|
+
**Game-Specific:**
|
|
184
|
+
|
|
185
|
+
- Prefabs/Scenes: {{prefab_naming}}
|
|
186
|
+
- Animation clips: {{animation_naming}}
|
|
187
|
+
- Event names: {{event_naming}}
|
|
188
|
+
|
|
189
|
+
What are your naming preferences?"
|
|
190
|
+
|
|
191
|
+
### 7. Generate Structure Section
|
|
192
|
+
|
|
193
|
+
Based on the conversation, prepare the content:
|
|
194
|
+
|
|
195
|
+
```markdown
|
|
196
|
+
## Project Structure
|
|
197
|
+
|
|
198
|
+
### Organization Pattern
|
|
199
|
+
|
|
200
|
+
**Pattern:** {{organization_pattern}}
|
|
201
|
+
|
|
202
|
+
**Rationale:** {{why_this_pattern}}
|
|
203
|
+
|
|
204
|
+
### Directory Structure
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
{{project_name}}/
|
|
208
|
+
{{complete_directory_tree}}
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### System Location Mapping
|
|
213
|
+
|
|
214
|
+
| System | Location | Responsibility |
|
|
215
|
+
|--------|----------|----------------|
|
|
216
|
+
{{system_mapping_table}}
|
|
217
|
+
|
|
218
|
+
### Naming Conventions
|
|
219
|
+
|
|
220
|
+
#### Files
|
|
221
|
+
{{file_naming_rules}}
|
|
222
|
+
|
|
223
|
+
#### Code Elements
|
|
224
|
+
| Element | Convention | Example |
|
|
225
|
+
|---------|------------|---------|
|
|
226
|
+
{{code_naming_table}}
|
|
227
|
+
|
|
228
|
+
#### Game Assets
|
|
229
|
+
{{asset_naming_rules}}
|
|
230
|
+
|
|
231
|
+
### Architectural Boundaries
|
|
232
|
+
|
|
233
|
+
{{boundary_rules}}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### 8. Present Content and Menu
|
|
237
|
+
|
|
238
|
+
Show the generated content to the user and present:
|
|
239
|
+
|
|
240
|
+
"I've defined the complete project structure.
|
|
241
|
+
|
|
242
|
+
**Here's what I'll add to the document:**
|
|
243
|
+
|
|
244
|
+
[Show the complete markdown content from step 7]
|
|
245
|
+
|
|
246
|
+
**Validation Check:**
|
|
247
|
+
|
|
248
|
+
- Can every system find its home?
|
|
249
|
+
- Are naming conventions clear and consistent?
|
|
250
|
+
- Will AI agents know exactly where to place new code?
|
|
251
|
+
|
|
252
|
+
**Select an Option:**
|
|
253
|
+
[A] Advanced Elicitation - Refine structure organization
|
|
254
|
+
[P] Party Mode - Get perspectives on layout
|
|
255
|
+
[C] Continue - Save this and move to Implementation Patterns (Step 7 of 9)"
|
|
256
|
+
|
|
257
|
+
### 9. Handle Menu Selection
|
|
258
|
+
|
|
259
|
+
#### IF A (Advanced Elicitation):
|
|
260
|
+
|
|
261
|
+
- Execute {advancedElicitationTask} with the current content
|
|
262
|
+
- Ask user: "Accept these changes? (y/n)"
|
|
263
|
+
- If yes: Update content, return to A/P/C menu
|
|
264
|
+
- If no: Keep original, return to A/P/C menu
|
|
265
|
+
|
|
266
|
+
#### IF P (Party Mode):
|
|
267
|
+
|
|
268
|
+
- Execute {partyModeWorkflow} with the current content
|
|
269
|
+
- Ask user: "Accept these changes? (y/n)"
|
|
270
|
+
- If yes: Update content, return to A/P/C menu
|
|
271
|
+
- If no: Keep original, return to A/P/C menu
|
|
272
|
+
|
|
273
|
+
#### IF C (Continue):
|
|
274
|
+
|
|
275
|
+
- Append the final content to `{outputFile}`
|
|
276
|
+
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6]`
|
|
277
|
+
- Load `{nextStepFile}`
|
|
278
|
+
|
|
279
|
+
## CRITICAL STEP COMPLETION NOTE
|
|
280
|
+
|
|
281
|
+
ONLY WHEN [C continue option] is selected and [structure content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## SYSTEM SUCCESS/FAILURE METRICS
|
|
286
|
+
|
|
287
|
+
### SUCCESS:
|
|
288
|
+
|
|
289
|
+
- Complete directory structure defined
|
|
290
|
+
- Every system mapped to location
|
|
291
|
+
- Naming conventions explicit and consistent
|
|
292
|
+
- No placeholder or generic structures
|
|
293
|
+
- A/P/C menu presented and handled correctly
|
|
294
|
+
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6]
|
|
295
|
+
|
|
296
|
+
### SYSTEM FAILURE:
|
|
297
|
+
|
|
298
|
+
- Generic structure with placeholders
|
|
299
|
+
- Systems without clear locations
|
|
300
|
+
- Vague naming conventions
|
|
301
|
+
- Not presenting A/P/C menu after structure
|
|
302
|
+
- Proceeding without user selecting 'C'
|
|
303
|
+
|
|
304
|
+
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-07-patterns'
|
|
3
|
+
description: 'Design implementation patterns and novel architectural patterns for consistency'
|
|
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-07-patterns.md'
|
|
10
|
+
nextStepFile: '{workflow_path}/steps/step-08-validation.md'
|
|
11
|
+
workflowFile: '{workflow_path}/workflow.md'
|
|
12
|
+
outputFile: '{output_folder}/game-architecture.md'
|
|
13
|
+
|
|
14
|
+
# Knowledge Bases
|
|
15
|
+
patternCategories: '{workflow_path}/pattern-categories.csv'
|
|
16
|
+
|
|
17
|
+
# Task References
|
|
18
|
+
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
|
|
19
|
+
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Step 7: Implementation Patterns
|
|
23
|
+
|
|
24
|
+
**Progress: Step 7 of 9** - Next: Validation
|
|
25
|
+
|
|
26
|
+
## STEP GOAL:
|
|
27
|
+
|
|
28
|
+
Define implementation patterns that ensure multiple AI agents write compatible, consistent code. Also identify and design any novel patterns needed for unique game features.
|
|
29
|
+
|
|
30
|
+
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
31
|
+
|
|
32
|
+
### Universal Rules:
|
|
33
|
+
|
|
34
|
+
- NEVER generate content without user input
|
|
35
|
+
- CRITICAL: Read the complete step file before taking any action
|
|
36
|
+
- CRITICAL: When loading next step with 'C', ensure entire file is read
|
|
37
|
+
- YOU ARE A FACILITATOR, not a content generator
|
|
38
|
+
- NEVER mention time estimates
|
|
39
|
+
|
|
40
|
+
### Role Reinforcement:
|
|
41
|
+
|
|
42
|
+
- You are a veteran game architect facilitator
|
|
43
|
+
- Implementation patterns prevent agent conflicts
|
|
44
|
+
- Novel patterns require creative collaboration
|
|
45
|
+
|
|
46
|
+
### Step-Specific Rules:
|
|
47
|
+
|
|
48
|
+
- Every pattern needs a concrete example
|
|
49
|
+
- Focus on what agents could decide DIFFERENTLY
|
|
50
|
+
- Novel patterns need full design documentation
|
|
51
|
+
|
|
52
|
+
## EXECUTION PROTOCOLS:
|
|
53
|
+
|
|
54
|
+
- Show your analysis before taking any action
|
|
55
|
+
- Present A/P/C menu after patterns defined
|
|
56
|
+
- ONLY proceed when user chooses C (Continue)
|
|
57
|
+
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]` before loading next step
|
|
58
|
+
|
|
59
|
+
## COLLABORATION MENUS (A/P/C):
|
|
60
|
+
|
|
61
|
+
- **A (Advanced Elicitation)**: Explore alternative patterns
|
|
62
|
+
- **P (Party Mode)**: Get perspectives on patterns
|
|
63
|
+
- **C (Continue)**: Confirm patterns and proceed
|
|
64
|
+
|
|
65
|
+
## Sequence of Instructions (Do not deviate, skip, or optimize)
|
|
66
|
+
|
|
67
|
+
### 1. Identify Novel Patterns Needed
|
|
68
|
+
|
|
69
|
+
"First, let's identify if your game needs any custom architectural patterns.
|
|
70
|
+
|
|
71
|
+
**Novel patterns are needed when:**
|
|
72
|
+
|
|
73
|
+
- Standard patterns don't fit your gameplay
|
|
74
|
+
- You have unique mechanics not found in other games
|
|
75
|
+
- Multiple systems interact in non-standard ways
|
|
76
|
+
|
|
77
|
+
**From your GDD, I identified these potentially novel concepts:**
|
|
78
|
+
{{list_of_unique_features}}
|
|
79
|
+
|
|
80
|
+
Do any of these need custom architectural patterns?"
|
|
81
|
+
|
|
82
|
+
### 2. Design Novel Patterns (if needed)
|
|
83
|
+
|
|
84
|
+
**For each novel pattern:**
|
|
85
|
+
|
|
86
|
+
"**Novel Pattern: {{pattern_name}}**
|
|
87
|
+
|
|
88
|
+
Let's design this pattern together.
|
|
89
|
+
|
|
90
|
+
**The challenge:** {{what_makes_this_unique}}
|
|
91
|
+
|
|
92
|
+
**Questions to answer:**
|
|
93
|
+
|
|
94
|
+
1. What components are involved?
|
|
95
|
+
2. How do they communicate?
|
|
96
|
+
3. What's the data flow?
|
|
97
|
+
4. How is state managed?
|
|
98
|
+
5. What are the edge cases?
|
|
99
|
+
|
|
100
|
+
Walk me through how you envision {{pattern_name}} working."
|
|
101
|
+
|
|
102
|
+
**After user explains:**
|
|
103
|
+
|
|
104
|
+
"Based on your description, here's the pattern design:
|
|
105
|
+
|
|
106
|
+
**{{pattern_name}} Pattern**
|
|
107
|
+
|
|
108
|
+
**Components:**
|
|
109
|
+
{{component_list_with_responsibilities}}
|
|
110
|
+
|
|
111
|
+
**Data Flow:**
|
|
112
|
+
{{sequence_or_diagram}}
|
|
113
|
+
|
|
114
|
+
**State Management:**
|
|
115
|
+
{{state_approach}}
|
|
116
|
+
|
|
117
|
+
**Example Usage:**
|
|
118
|
+
|
|
119
|
+
```{{language}}
|
|
120
|
+
{{code_example}}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Does this capture your vision?"
|
|
124
|
+
|
|
125
|
+
### 3. Define Standard Implementation Patterns
|
|
126
|
+
|
|
127
|
+
"Now let's define standard implementation patterns for consistency.
|
|
128
|
+
|
|
129
|
+
**These patterns ensure all AI agents:**
|
|
130
|
+
|
|
131
|
+
- Name things the same way
|
|
132
|
+
- Structure code identically
|
|
133
|
+
- Handle common situations consistently
|
|
134
|
+
|
|
135
|
+
Let's go through each category."
|
|
136
|
+
|
|
137
|
+
### 4. Component Communication Pattern
|
|
138
|
+
|
|
139
|
+
"**Component Communication**
|
|
140
|
+
|
|
141
|
+
How should game objects communicate?
|
|
142
|
+
|
|
143
|
+
**Options:**
|
|
144
|
+
|
|
145
|
+
- **Direct references** - Simple but coupled
|
|
146
|
+
- **Event-based** - Decoupled but indirect
|
|
147
|
+
- **Service locator** - Central registry
|
|
148
|
+
- **Dependency injection** - Explicit dependencies
|
|
149
|
+
|
|
150
|
+
For game systems, what's your preferred approach?"
|
|
151
|
+
|
|
152
|
+
### 5. Entity Creation Pattern
|
|
153
|
+
|
|
154
|
+
"**Entity Creation**
|
|
155
|
+
|
|
156
|
+
How should game entities (enemies, items, etc.) be created?
|
|
157
|
+
|
|
158
|
+
**Options:**
|
|
159
|
+
|
|
160
|
+
- **Factory pattern** - Centralized creation
|
|
161
|
+
- **Prefab instantiation** - Engine-native
|
|
162
|
+
- **Object pooling** - Performance-focused
|
|
163
|
+
- **Builder pattern** - Complex configuration
|
|
164
|
+
|
|
165
|
+
What's your entity creation approach?"
|
|
166
|
+
|
|
167
|
+
### 6. State Transition Pattern
|
|
168
|
+
|
|
169
|
+
"**State Transitions**
|
|
170
|
+
|
|
171
|
+
How should entities handle state changes?
|
|
172
|
+
|
|
173
|
+
**Options:**
|
|
174
|
+
|
|
175
|
+
- **State machine** - Explicit states and transitions
|
|
176
|
+
- **Behavior tree** - AI-focused hierarchy
|
|
177
|
+
- **Blackboard** - Shared data approach
|
|
178
|
+
- **Flag-based** - Simple boolean states
|
|
179
|
+
|
|
180
|
+
What state management pattern for entities?"
|
|
181
|
+
|
|
182
|
+
### 7. Data Access Pattern
|
|
183
|
+
|
|
184
|
+
"**Data Access**
|
|
185
|
+
|
|
186
|
+
How should systems access game data?
|
|
187
|
+
|
|
188
|
+
**Options:**
|
|
189
|
+
|
|
190
|
+
- **Direct file access** - Simple but scattered
|
|
191
|
+
- **Data manager** - Centralized access
|
|
192
|
+
- **Scriptable objects** - Engine-native (Unity)
|
|
193
|
+
- **Resources/Autoload** - Engine-native (Godot)
|
|
194
|
+
|
|
195
|
+
How should data be accessed?"
|
|
196
|
+
|
|
197
|
+
### 8. Generate Patterns Section
|
|
198
|
+
|
|
199
|
+
Based on the conversation, prepare the content:
|
|
200
|
+
|
|
201
|
+
````markdown
|
|
202
|
+
## Implementation Patterns
|
|
203
|
+
|
|
204
|
+
These patterns ensure consistent implementation across all AI agents.
|
|
205
|
+
|
|
206
|
+
{{if_novel_patterns}}
|
|
207
|
+
|
|
208
|
+
### Novel Patterns
|
|
209
|
+
|
|
210
|
+
#### {{novel_pattern_name}}
|
|
211
|
+
|
|
212
|
+
**Purpose:** {{what_it_solves}}
|
|
213
|
+
|
|
214
|
+
**Components:**
|
|
215
|
+
{{component_list}}
|
|
216
|
+
|
|
217
|
+
**Data Flow:**
|
|
218
|
+
{{flow_description}}
|
|
219
|
+
|
|
220
|
+
**Implementation Guide:**
|
|
221
|
+
|
|
222
|
+
```{{language}}
|
|
223
|
+
{{implementation_example}}
|
|
224
|
+
```
|
|
225
|
+
````
|
|
226
|
+
|
|
227
|
+
**Usage:**
|
|
228
|
+
{{when_to_use}}
|
|
229
|
+
{{/if_novel_patterns}}
|
|
230
|
+
|
|
231
|
+
### Communication Patterns
|
|
232
|
+
|
|
233
|
+
**Pattern:** {{communication_pattern}}
|
|
234
|
+
|
|
235
|
+
**Example:**
|
|
236
|
+
|
|
237
|
+
```{{language}}
|
|
238
|
+
{{communication_example}}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Entity Patterns
|
|
242
|
+
|
|
243
|
+
**Creation:** {{creation_pattern}}
|
|
244
|
+
|
|
245
|
+
**Example:**
|
|
246
|
+
|
|
247
|
+
```{{language}}
|
|
248
|
+
{{creation_example}}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### State Patterns
|
|
252
|
+
|
|
253
|
+
**Pattern:** {{state_pattern}}
|
|
254
|
+
|
|
255
|
+
**Example:**
|
|
256
|
+
|
|
257
|
+
```{{language}}
|
|
258
|
+
{{state_example}}
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Data Patterns
|
|
262
|
+
|
|
263
|
+
**Access:** {{data_pattern}}
|
|
264
|
+
|
|
265
|
+
**Example:**
|
|
266
|
+
|
|
267
|
+
```{{language}}
|
|
268
|
+
{{data_example}}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Consistency Rules
|
|
272
|
+
|
|
273
|
+
| Pattern | Convention | Enforcement |
|
|
274
|
+
| ------- | ---------- | ----------- |
|
|
275
|
+
|
|
276
|
+
{{consistency_rules_table}}
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### 9. Present Content and Menu
|
|
281
|
+
|
|
282
|
+
Show the generated content to the user and present:
|
|
283
|
+
|
|
284
|
+
"I've documented all implementation patterns.
|
|
285
|
+
|
|
286
|
+
**Here's what I'll add to the document:**
|
|
287
|
+
|
|
288
|
+
[Show the complete markdown content from step 8]
|
|
289
|
+
|
|
290
|
+
**Patterns Defined:**
|
|
291
|
+
- {{count}} standard patterns
|
|
292
|
+
- {{novel_count}} novel patterns
|
|
293
|
+
|
|
294
|
+
**Validation Check:**
|
|
295
|
+
- Are examples clear enough for AI agents?
|
|
296
|
+
- Do patterns cover all major coding scenarios?
|
|
297
|
+
- Are novel patterns fully documented?
|
|
298
|
+
|
|
299
|
+
**Select an Option:**
|
|
300
|
+
[A] Advanced Elicitation - Explore alternative patterns
|
|
301
|
+
[P] Party Mode - Get perspectives on patterns
|
|
302
|
+
[C] Continue - Save this and move to Validation (Step 8 of 9)"
|
|
303
|
+
|
|
304
|
+
### 10. Handle Menu Selection
|
|
305
|
+
|
|
306
|
+
#### IF A (Advanced Elicitation):
|
|
307
|
+
- Execute {advancedElicitationTask} with the current content
|
|
308
|
+
- Ask user: "Accept these changes? (y/n)"
|
|
309
|
+
- If yes: Update content, return to A/P/C menu
|
|
310
|
+
- If no: Keep original, return to A/P/C menu
|
|
311
|
+
|
|
312
|
+
#### IF P (Party Mode):
|
|
313
|
+
- Execute {partyModeWorkflow} with the current content
|
|
314
|
+
- Ask user: "Accept these changes? (y/n)"
|
|
315
|
+
- If yes: Update content, return to A/P/C menu
|
|
316
|
+
- If no: Keep original, return to A/P/C menu
|
|
317
|
+
|
|
318
|
+
#### IF C (Continue):
|
|
319
|
+
- Append the final content to `{outputFile}`
|
|
320
|
+
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]`
|
|
321
|
+
- Load `{nextStepFile}`
|
|
322
|
+
|
|
323
|
+
## CRITICAL STEP COMPLETION NOTE
|
|
324
|
+
|
|
325
|
+
ONLY WHEN [C continue option] is selected and [patterns content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## SYSTEM SUCCESS/FAILURE METRICS
|
|
330
|
+
|
|
331
|
+
### SUCCESS:
|
|
332
|
+
|
|
333
|
+
- Novel patterns identified and designed
|
|
334
|
+
- Standard patterns selected with examples
|
|
335
|
+
- Every pattern has concrete code examples
|
|
336
|
+
- Consistency rules documented
|
|
337
|
+
- A/P/C menu presented and handled correctly
|
|
338
|
+
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6, 7]
|
|
339
|
+
|
|
340
|
+
### SYSTEM FAILURE:
|
|
341
|
+
|
|
342
|
+
- Patterns without concrete examples
|
|
343
|
+
- Novel patterns missing design documentation
|
|
344
|
+
- Vague patterns that allow inconsistency
|
|
345
|
+
- Not presenting A/P/C menu after patterns
|
|
346
|
+
- Proceeding without user selecting 'C'
|
|
347
|
+
|
|
348
|
+
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
|
349
|
+
```
|