name: 'step-06-structure' description: 'Define project structure, directory organization, and architectural boundaries'
workflow_path: '{installed_path}'
thisStepFile: './step-06-structure.md' nextStepFile: './step-07-patterns.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md'
engineKnowledge: '{workflow_path}/knowledge/{selected_engine}-engine.md'
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
Progress: Step 6 of 9 - Next: Implementation Patterns
Define the complete project structure including directory organization, file naming conventions, and architectural boundaries. This ensures all AI agents place code consistently.
{communication_language}stepsCompleted: [1, 2, 3, 4, 5, 6] before loading next step"Let's define how your project will be organized.
Organization Patterns:
| Pattern | Description | Best For |
|---|---|---|
| By Feature | All related files together | Feature teams |
| By Type | Scripts, assets, scenes separate | Traditional |
| Hybrid | Types at top, features within | Balanced |
| Domain-Driven | By game domain/system | Complex games |
Engine Conventions:
Consult {engineKnowledge} for engine-specific project structure conventions and naming rules.
What organization pattern do you prefer?"
"Based on {{selected_pattern}}, let's define your root structure.
For {{engine}}, typical root looks like:
{{project_name}}/
├── {{source_folder}}/ # Game source code
├── {{assets_folder}}/ # Art, audio, data
├── {{scenes_folder}}/ # Scene/level files
├── {{tests_folder}}/ # Test files
├── {{docs_folder}}/ # Documentation
└── {{config_files}} # Project config
Does this work, or would you like to adjust?"
"Now let's detail the source code organization.
Based on your systems: {{list_of_systems_from_context}}
Proposed structure:
{{source_folder}}/
├── core/ # Core systems (singletons, managers)
│ ├── {{core_systems}}
├── gameplay/ # Gameplay mechanics
│ ├── {{gameplay_systems}}
├── ui/ # User interface
│ ├── {{ui_organization}}
├── utils/ # Utilities and helpers
│ ├── {{util_types}}
└── data/ # Data structures and models
└── {{data_types}}
What adjustments would you make?"
"Let's organize your assets.
Asset Categories:
Proposed asset structure:
{{assets_folder}}/
├── art/
│ ├── {{art_categories}}
├── audio/
│ ├── music/
│ ├── sfx/
│ └── {{audio_categories}}
├── data/
│ └── {{data_file_types}}
└── ui/
└── {{ui_asset_types}}
How should assets be organized?"
"Let's map each major system to its location.
| System | Location | Notes |
|---|
{{system_location_mapping}}
Does this mapping make sense for your project?"
"Finally, let's establish naming conventions.
Files:
Code Elements:
Game-Specific:
What are your naming preferences?"
Based on the conversation, prepare the content:
## Project Structure
### Organization Pattern
**Pattern:** {{organization_pattern}}
**Rationale:** {{why_this_pattern}}
### Directory Structure
{{project_name}}/ {{complete_directory_tree}}
### System Location Mapping
| System | Location | Responsibility |
| ------ | -------- | -------------- |
{{system_mapping_table}}
### Naming Conventions
#### Files
{{file_naming_rules}}
#### Code Elements
| Element | Convention | Example |
| ------- | ---------- | ------- |
{{code_naming_table}}
#### Game Assets
{{asset_naming_rules}}
### Architectural Boundaries
{{boundary_rules}}
Show the generated content to the user and present:
"I've defined the complete project structure.
Here's what I'll add to the document:
[Show the complete markdown content from step 7]
Validation Check:
Select an Option: [A] Advanced Elicitation - Refine structure organization [P] Party Mode - Get perspectives on layout [C] Continue - Save this and move to Implementation Patterns (Step 7 of 9)"
{outputFile}stepsCompleted: [1, 2, 3, 4, 5, 6]{nextStepFile}ONLY WHEN [C continue option] is selected and [structure 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.