name: 'step-04-decisions' description: 'Facilitate collaborative architectural decision making for game systems'
workflow_path: '{installed_path}'
thisStepFile: './step-04-decisions.md' nextStepFile: './step-05-crosscutting.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md'
decisionCatalog: '{workflow_path}/decision-catalog.yaml' architecturePatterns: '{workflow_path}/architecture-patterns.yaml' engineKnowledge: '{workflow_path}/knowledge/{selected_engine}-engine.md'
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
Progress: Step 4 of 9 - Next: Cross-cutting Concerns
Facilitate collaborative decision-making for all remaining architectural choices. Each decision must be made WITH the user, not FOR them.
{communication_language}stepsCompleted: [1, 2, 3, 4] before loading next stepLoad decision catalog if available:
Load {decisionCatalog}, {architecturePatterns}, and {engineKnowledge} (the engine-specific knowledge fragment matching the engine selected in Step 3) to guide the decision process.
Identify required decisions based on game type:
| Category | Decisions Needed |
|---|---|
| State Management | {{if_applicable}} |
| Data Persistence | Save system, config storage |
| Networking | {{if_multiplayer}} |
| AI Systems | {{if_has_ai}} |
| Asset Loading | Streaming, caching |
| Scene Structure | Scene graph, loading |
| UI Framework | In-game, menus |
| Audio Architecture | Channels, mixing |
Create decision priority list:
"Based on your project, here are the architectural decisions we need to make:
CRITICAL (blocks everything): {{critical_decisions}}
IMPORTANT (shapes architecture): {{important_decisions}}
NICE-TO-HAVE (can defer): {{optional_decisions}}
Let's work through these in priority order."
For each decision, follow this pattern:
"Decision: {{decision_name}}
{{context_about_why_this_matters}}
Options:
| Option | Pros | Cons |
|---|---|---|
| {{option_1}} | {{pros}} | {{cons}} |
| {{option_2}} | {{pros}} | {{cons}} |
| {{option_3}} | {{pros}} | {{cons}} |
Recommendation: {{recommendation}} because {{reason}}
What's your preference? (or 'explain more' for details)"
After user decides:
Record:
State Management:
"How should game state be managed?
Options:
For {{game_type}}, {{recommendation}} works well because {{reason}}.
Your choice?"
Save System:
"How should player progress be saved?
Options:
Your choice?"
Asset Loading:
"How should assets be loaded?
Options:
Your choice?"
For any technology-specific decisions:
Search web: "{{technology}} latest stable version {{current_year}}"
Document:
After all decisions are made, prepare the content:
## Architectural Decisions
### Decision Summary
| Category | Decision | Version | Rationale |
| -------- | -------- | ------- | --------- |
{{decision_table_rows}}
### State Management
**Approach:** {{state_management_choice}}
{{state_management_details}}
### Data Persistence
**Save System:** {{save_system_choice}}
{{save_system_details}}
### Asset Management
**Loading Strategy:** {{asset_loading_choice}}
{{asset_loading_details}}
### {{Additional_Categories}}
{{additional_decision_details}}
### Architecture Decision Records
{{key_decisions_with_context}}
Show the generated content to the user and present:
"I've documented all our architectural decisions.
Here's what I'll add to the document:
[Show the complete markdown content from step 6]
Decisions Made: {{count}} decisions documented
Validation Check:
Select an Option: [A] Advanced Elicitation - Challenge decisions, explore alternatives [P] Party Mode - Get different perspectives on choices [C] Continue - Save this and move to Cross-cutting Concerns (Step 5 of 9)"
{outputFile}stepsCompleted: [1, 2, 3, 4]{nextStepFile}ONLY WHEN [C continue option] is selected and [decisions content saved with frontmatter updated], will you then load and read fully {nextStepFile}.
Master Rule: Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.