feat: security overhaul (proxy ssrf fix, streaming sanitization, docker optimization)

This commit is contained in:
Michael committed 2026-01-07 08:43:33 +01:00
1 parent 6d87ada2b8
commit 8df9a37baa
810 files changed
+131090 -151

No files matched your search

@@ -0,0 +1,249 @@
---
name: 'step-01-init'
description: 'Initialize the GDD workflow by detecting continuation state and setting up the document'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-01-init.md'
nextStepFile: '{workflow_path}/steps/step-02-context.md'
continueStepFile: '{workflow_path}/steps/step-01b-continue.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
# Template References
gddTemplate: '{workflow_path}/templates/gdd-template.md'
# Data Files
gameTypesCSV: '{workflow_path}/game-types.csv'
---
# Step 1: Workflow Initialization
**Progress: Step 1 of 14** - Next: Game Context & Type
## STEP GOAL:
Initialize the GDD workflow by detecting continuation state, discovering input documents (game brief, research), and setting up the document structure for collaborative game design discovery.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- If you already have been given a name, communication_style and persona, continue to use those while playing this new role
- We engage in collaborative dialogue, not command-response
- You bring structured game design thinking and facilitation skills, while the user brings their game vision
### Step-Specific Rules:
- Focus only on initialization and setup - no content generation yet
- FORBIDDEN to look ahead to future steps or assume knowledge from them
- Approach: Systematic setup with clear reporting to user
- Detect existing workflow state and handle continuation properly
## EXECUTION PROTOCOLS:
- Show your analysis of current state before taking any action
- Initialize document structure and update frontmatter appropriately
- Set up frontmatter `stepsCompleted: [1]` before loading next step
- FORBIDDEN to load next step until user selects 'C' (Continue)
## CONTEXT BOUNDARIES:
- Available context: Variables from workflow.md are available in memory
- Focus: Workflow initialization and document setup only
- Limits: Don't assume knowledge from other steps or create content yet
- Dependencies: Configuration loaded from workflow.md initialization
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Check for Existing Workflow State
First, check if the output document already exists:
**Workflow State Detection:**
- Look for file at `{outputFile}`
- If exists, read the complete file including frontmatter
- If not exists, this is a fresh workflow
### 2. Handle Continuation (If Document Exists)
If the document exists and has frontmatter with `stepsCompleted`:
**Continuation Protocol:**
- **STOP immediately** and load `{continueStepFile}`
- Do not proceed with any initialization tasks
- Let step-01b handle all continuation logic
- This is an auto-proceed situation - no user choice needed
### 3. Fresh Workflow Setup (If No Document)
If no document exists or no `stepsCompleted` in frontmatter:
#### A. Input Document Discovery
Discover and load context documents using smart discovery.
**IMPORTANT: Track document counts as you discover files.**
Initialize counters:
```
briefCount = 0
researchCount = 0
brainstormingCount = 0
projectDocsCount = 0
```
**Game Brief (Priority: Analysis -> Main -> Sharded -> Whole):**
1. Check analysis folder: `{output_folder}/analysis/*game-brief*.md`
2. If no analysis files: Try main folder: `{output_folder}/*game-brief*.md`
3. If no main files: Check for sharded brief folder: `{output_folder}/*game-brief*/**/*.md`
4. If sharded folder exists: Load EVERY file in that folder completely
5. Add discovered files to `inputDocuments` frontmatter
6. **Update briefCount with number of files found**
**Research Documents (Priority: Analysis -> Main -> Sharded -> Whole):**
1. Check analysis folder: `{output_folder}/analysis/research/*research*.md`
2. If no analysis files: Try main folder: `{output_folder}/*research*.md`
3. If no main files: Check for sharded research folder: `{output_folder}/*research*/**/*.md`
4. Load useful research files completely
5. Add discovered files to `inputDocuments` frontmatter
6. **Update researchCount with number of files found**
**Brainstorming Documents (Priority: Analysis -> Main):**
1. Check analysis folder: `{output_folder}/analysis/brainstorming/*brainstorm*.md`
2. If no analysis files: Try main folder: `{output_folder}/*brainstorm*.md`
3. Add discovered files to `inputDocuments` frontmatter
4. **Update brainstormingCount with number of files found**
**Project Documentation (Existing Projects - Brownfield):**
1. Look for index file: `{output_folder}/index.md`
2. CRITICAL: Load index.md to understand what project files are available
3. Read available files from index to understand existing project context
4. This provides essential context for extending existing game with new features
5. Add discovered files to `inputDocuments` frontmatter
6. **Update projectDocsCount with number of files found (including index.md)**
**Loading Rules:**
- Load ALL discovered files completely (no offset/limit)
- For sharded folders, load ALL files to get complete picture
- For existing projects, use index.md as guide to what's relevant
- Track all successfully loaded files in frontmatter `inputDocuments` array
#### B. Create Initial Document
**Document Setup:**
- Copy the template from `{gddTemplate}` to `{outputFile}`
- Initialize frontmatter with proper structure including document counts:
```yaml
---
stepsCompleted: []
inputDocuments: []
documentCounts:
briefs: { { briefCount } }
research: { { researchCount } }
brainstorming: { { brainstormingCount } }
projectDocs: { { projectDocsCount } }
workflowType: 'gdd'
lastStep: 0
project_name: '{{project_name}}'
user_name: '{{user_name}}'
date: '{{date}}'
game_type: ''
game_name: ''
---
```
#### C. Present Initialization Results
**Setup Report to User:**
"Welcome {{user_name}}! I've set up your GDD workspace for {{project_name}}.
**Document Setup:**
- Created: `{outputFile}` from template
- Initialized frontmatter with workflow state
**Input Documents Discovered:**
- Game briefs: {{briefCount}} files {if briefCount > 0}loaded{else}(none found){/if}
- Research: {{researchCount}} files {if researchCount > 0}loaded{else}(none found){/if}
- Brainstorming: {{brainstormingCount}} files {if brainstormingCount > 0}loaded{else}(none found){/if}
- Project docs: {{projectDocsCount}} files {if projectDocsCount > 0}loaded (brownfield project){else}(none found - greenfield project){/if}
**Files loaded:** {list of specific file names or "No additional documents found"}
{if projectDocsCount > 0}
**Note:** This is a **brownfield project**. Your existing project documentation has been loaded. In the next step, I'll ask specifically about what new features or changes you want to add to your existing game.
{/if}
Do you have any other documents you'd like me to include, or shall we continue to the next step?"
### 4. Present MENU OPTIONS
Display menu after setup report:
"[C] Continue - Save this and move to Game Context & Type (Step 2 of 14)"
#### Menu Handling Logic:
- IF C: Update frontmatter with `stepsCompleted: [1]`, then load, read entire file, then execute {nextStepFile}
- IF user provides additional files: Load them, update inputDocuments and documentCounts, redisplay report
- IF user asks questions: Answer and redisplay menu
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [frontmatter properly updated with stepsCompleted: [1] and documentCounts], will you then load and read fully `{nextStepFile}` to execute and begin game context discovery.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Existing workflow detected and properly handed off to step-01b
- Fresh workflow initialized with template and proper frontmatter
- Input documents discovered and loaded using sharded-first logic
- All discovered files tracked in frontmatter `inputDocuments`
- **Document counts stored in frontmatter `documentCounts`**
- User clearly informed of brownfield vs greenfield status
- Menu presented and user input handled correctly
- Frontmatter updated with `stepsCompleted: [1]` before proceeding
### SYSTEM FAILURE:
- Proceeding with fresh initialization when existing workflow exists
- Not updating frontmatter with discovered input documents
- **Not storing document counts in frontmatter**
- Creating document without proper template structure
- Not checking sharded folders first before whole files
- Not reporting discovered documents to user clearly
- Proceeding without user selecting 'C' (Continue)
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,174 @@
---
name: 'step-01b-continue'
description: 'Resume an interrupted GDD workflow from the last completed step'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-01b-continue.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
---
# Step 1B: Workflow Continuation
## STEP GOAL:
Resume the GDD workflow from where it was left off, ensuring smooth continuation with full context restoration.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- We engage in collaborative dialogue, not command-response
- Resume workflow from exact point where it was interrupted
### Step-Specific Rules:
- FOCUS on understanding where we left off and continuing appropriately
- FORBIDDEN to modify content completed in previous steps
- Only reload documents that were already tracked in `inputDocuments`
## EXECUTION PROTOCOLS:
- Show your analysis of current state before taking action
- Keep existing frontmatter `stepsCompleted` values
- Only load documents that were already tracked in `inputDocuments`
- FORBIDDEN to discover new input documents during continuation
## CONTEXT BOUNDARIES:
- Available context: Current document and frontmatter are already loaded
- Focus: Workflow state analysis and continuation logic only
- Limits: Don't assume knowledge beyond what's in the document
- Dependencies: Existing workflow state from previous session
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Analyze Current State
**State Assessment:**
Review the frontmatter to understand:
- `stepsCompleted`: Which steps are already done
- `lastStep`: The most recently completed step number
- `inputDocuments`: What context was already loaded
- `documentCounts`: briefs, research, brainstorming, projectDocs counts
- `game_type`: The identified game type (if set)
- `game_name`: The game name (if set)
- All other frontmatter variables
### 2. Restore Context Documents
**Context Reloading:**
- For each document in `inputDocuments`, load the complete file
- This ensures you have full context for continuation
- Don't discover new documents - only reload what was previously processed
- If `game_type` is set, also reload the corresponding game type guide from `{workflow_path}/game-types/{game_type}.md`
### 3. Present Current Progress
**Progress Report to User:**
"Welcome back {{user_name}}! I'm resuming our GDD collaboration for {{game_name or project_name}}.
**Current Progress:**
- Steps completed: {stepsCompleted}
- Last worked on: Step {lastStep}
- Game type: {game_type or 'Not yet determined'}
- Context documents available: {len(inputDocuments)} files
**Document Status:**
- Current GDD document is ready with all completed sections
- Ready to continue from where we left off
Does this look right, or do you want to make any adjustments before we proceed?"
### 4. Determine Continuation Path
**Next Step Logic:**
Based on `lastStep` value, determine which step to load next:
- If `lastStep = 1` -> Load `./step-02-context.md`
- If `lastStep = 2` -> Load `./step-03-platforms.md`
- If `lastStep = 3` -> Load `./step-04-vision.md`
- If `lastStep = 4` -> Load `./step-05-core-gameplay.md`
- If `lastStep = 5` -> Load `./step-06-mechanics.md`
- If `lastStep = 6` -> Load `./step-07-game-type.md`
- If `lastStep = 7` -> Load `./step-08-progression.md`
- If `lastStep = 8` -> Load `./step-09-levels.md`
- If `lastStep = 9` -> Load `./step-10-art-audio.md`
- If `lastStep = 10` -> Load `./step-11-technical.md`
- If `lastStep = 11` -> Load `./step-12-epics.md`
- If `lastStep = 12` -> Load `./step-13-metrics.md`
- If `lastStep = 13` -> Load `./step-14-complete.md`
- If `lastStep = 14` -> Workflow already complete
### 5. Handle Workflow Completion
**If workflow already complete (`lastStep = 14`):**
"Great news! It looks like we've already completed the GDD workflow for {{game_name}}.
The final document is ready at `{outputFile}` with all sections completed through step 14.
Would you like me to:
- Review the completed GDD with you
- Suggest next workflow steps (like architecture or epic creation)
- Start a new GDD revision
What would be most helpful?"
### 6. Present MENU OPTIONS
**If workflow not complete:**
Display: "Ready to continue with Step {nextStepNumber}?
**Select an Option:** [C] Continue to next step"
#### Menu Handling Logic:
- IF C: Load, read entire file, then execute the appropriate next step file based on `lastStep`
- IF Any other comments or queries: respond and redisplay menu
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [current state confirmed], will you then load and read fully the appropriate next step file to resume the workflow.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- All previous input documents successfully reloaded
- Game type guide reloaded if game_type was set
- Current workflow state accurately analyzed and presented
- User confirms understanding of progress before continuation
- Correct next step identified and prepared for loading
### SYSTEM FAILURE:
- Discovering new input documents instead of reloading existing ones
- Modifying content from already completed steps
- Loading wrong next step based on `lastStep` value
- Proceeding without user confirmation of current state
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,333 @@
---
name: 'step-02-context'
description: 'Load game context from brief and determine the game type'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-02-context.md'
nextStepFile: '{workflow_path}/steps/step-03-platforms.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
# Data Files
gameTypesCSV: '{workflow_path}/game-types.csv'
gameTypesFolder: '{workflow_path}/game-types'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 2: Game Context & Type
**Progress: Step 2 of 14** - Next: Platforms & Audience
## STEP GOAL:
Load and analyze the game brief (if available), determine the game type from game-types.csv, load the corresponding game type guide, and capture the core game concept that will drive the entire GDD.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- We engage in collaborative dialogue, not command-response
- You bring structured game design thinking and facilitation skills, while the user brings their game vision
### Step-Specific Rules:
- Focus on understanding the game concept and determining the correct game type
- CRITICAL: Load game-types.csv to understand available game types
- FORBIDDEN to generate detailed content without real user input
- Approach: Leverage existing documents while validating with user
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Present A/P/C menu after generating core concept content
- ONLY save when user chooses C (Continue)
- Update frontmatter `stepsCompleted: [1, 2]` before loading next step
- FORBIDDEN to load next step until C is selected
## COLLABORATION MENUS (A/P/C):
This step will generate content and present choices:
- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper insights about the game concept
- **P (Party Mode)**: Bring multiple perspectives to discuss and improve the game concept
- **C (Continue)**: Save the content to the document and proceed to next step
## PROTOCOL INTEGRATION:
- When 'A' selected: Execute {advancedElicitationTask}
- When 'P' selected: Execute {partyModeWorkflow}
- PROTOCOLS always return to this step's A/P/C menu
- User accepts/rejects protocol changes before proceeding
## CONTEXT BOUNDARIES:
- Current document and frontmatter from step 1 are available
- Input documents already loaded are in memory (game briefs, research, brainstorming)
- **Document counts available in frontmatter `documentCounts`**
- Game types CSV data will be loaded in this step
- This will be the first content section appended to the document
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Read Document State from Frontmatter
**CRITICAL FIRST ACTION:** Read the frontmatter from `{outputFile}` to get document counts.
```
Read documentCounts from gdd.md frontmatter:
- briefCount = documentCounts.briefs
- researchCount = documentCounts.research
- brainstormingCount = documentCounts.brainstorming
- projectDocsCount = documentCounts.projectDocs
```
**ANNOUNCE your understanding:**
"From step 1, I have loaded:
- Game briefs: {{briefCount}} files
- Research: {{researchCount}} files
- Brainstorming: {{brainstormingCount}} files
- Project docs: {{projectDocsCount}} files
{if projectDocsCount > 0}This is a **brownfield project** - I'll focus on understanding what you want to add or change.{else}This is a **greenfield project** - I'll help you define the full game vision.{/if}"
### 2. Load Game Types Data
Load and prepare CSV data for intelligent game type classification:
- Load `{gameTypesCSV}` completely
- Parse columns: id, name, description, key_mechanics, detection_signals
- Store in memory for classification matching
### 3. Begin Discovery Conversation
**SELECT EXACTLY ONE DISCOVERY PATH based on document state:**
---
#### PATH A: Has Game Brief (briefCount > 0)
**Use this path when:** `briefCount > 0`
"As your game design peer, I've reviewed your game brief and have a great starting point. Let me share what I understand and you can refine or correct as needed.
**Based on your game brief:**
**Game Name:**
{{extracted_name_from_brief}}
**Core Concept:**
{{extracted_concept_from_brief}}
**Genre/Type:**
{{extracted_genre_from_brief}}
**Target Experience:**
{{extracted_experience_from_brief}}
{if projectDocsCount > 0}I also see you have existing project documentation. This GDD will define how new features integrate with your existing game.{/if}
**How does this align with your vision?** Should we refine any of these points or are there important aspects I'm missing?"
**AFTER this message, SKIP to Section 4.**
---
#### PATH B: No Brief but Has Brainstorming (briefCount == 0 AND brainstormingCount > 0)
**Use this path when:** `briefCount == 0 AND brainstormingCount > 0`
"As your game design peer, I've reviewed your brainstorming documents.
**Ideas I've extracted:**
{{summarize key concepts from brainstorming}}
Let's crystallize these ideas into a clear game concept:
- What's the core gameplay experience you want to create?
- What genre or type of game is this?
- What's the one thing that makes this game special?
I'll use this to identify the right game type framework for our GDD."
**AFTER this message, SKIP to Section 4.**
---
#### PATH C: No Documents - Greenfield (briefCount == 0 AND brainstormingCount == 0)
**Use this path when:** `briefCount == 0 AND brainstormingCount == 0`
"Let's start by understanding your game vision!
**Tell me about what you want to create:**
- What kind of game is it? (genre, style, references)
- What does the player do? (core actions, moment-to-moment gameplay)
- What makes it special or different?
- What experience or feeling do you want players to have?
I'll be listening for signals to help us identify the right game type framework."
**AFTER this message, SKIP to Section 4.**
---
### 4. Determine Game Type
As the user describes their game, match against `detection_signals` from `game-types.csv`:
#### Game Type Detection Logic
Compare user description against game-types.csv entries:
- Look for keyword matches from semicolon-separated detection_signals
- Examples: "platform;jump;run;2D;side-scroll" -> action-platformer
- Examples: "RPG;level;quest;stats;inventory" -> rpg
- Examples: "story;choices;narrative;dialogue" -> visual-novel
Store the best matching `game_type` id.
### 5. Present Classification for Validation
**Present to user:**
"Based on our conversation, I'm classifying this as:
**Game Type:** {matched_game_type_name} ({matched_game_type_id})
**Why this type:**
{explain the detection signals that matched}
**This game type includes these focus areas:**
{key_mechanics from game-types.csv}
Does this sound right? If not, tell me what type better fits your vision and I'll adjust."
### 6. Load Game Type Guide
**After user confirms game type:**
- Load the corresponding game type guide: `{gameTypesFolder}/{game_type}.md`
- Store the guide content for use in step-07 (game-type specific sections)
- Update frontmatter: `game_type: '{game_type}'`
### 7. Capture Game Name
"What would you like to call this game? (Working title is fine)"
- Store in frontmatter: `game_name: '{user_provided_name}'`
### 8. Generate Core Concept Content
Based on the conversation, prepare the content to append to the document:
#### Content Structure:
```markdown
## Executive Summary
### Game Name
{{game_name}}
### Core Concept
{{description - 2-3 paragraphs describing the game concept}}
### Game Type
**Type:** {{game_type_name}}
**Framework:** This GDD uses the {{game_type}} template with type-specific sections for {{key_mechanics}}
```
### 9. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Executive Summary based on our conversation. This will be the opening section of your GDD.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 8]
**Select an Option:**
[A] Advanced Elicitation - Let's dive deeper and refine this content
[P] Party Mode - Bring in different perspectives to improve this
[C] Continue - Save this and move to Platforms & Audience (Step 3 of 14)"
### 10. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Process the enhanced content that comes back
- Ask user: "Accept these changes to the Core Concept? (y/n)"
- If yes: Update the content with improvements, then return to A/P/C menu
- If no: Keep original content, then return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Process the collaborative improvements that come back
- Ask user: "Accept these changes to the Core Concept? (y/n)"
- If yes: Update the content with improvements, then return to A/P/C menu
- If no: Keep original content, then return to A/P/C menu
#### IF C (Continue):
- Append the final content to `{outputFile}`
- Update frontmatter: `stepsCompleted: [1, 2]`, `game_type: '{game_type}'`, `game_name: '{game_name}'`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [core concept content finalized and saved to document with frontmatter updated including game_type and game_name], will you then load and read fully `{nextStepFile}` to execute and begin platforms definition.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Document counts read from frontmatter and announced
- Game types CSV loaded and used effectively
- **Correct discovery path selected based on document counts**
- Input documents analyzed and leveraged for head start
- Game type identified and validated with user
- Game type guide loaded and stored for later use
- Game name captured and stored in frontmatter
- Core concept content generated collaboratively
- A/P/C menu presented and handled correctly
- Content properly appended to document when C selected
- Frontmatter updated with stepsCompleted: [1, 2], game_type, game_name
### SYSTEM FAILURE:
- **Not reading documentCounts from frontmatter first**
- **Executing multiple discovery paths instead of exactly one**
- Not loading game-types.csv for classification
- Not validating game type with user before proceeding
- Generating detailed content without real user input
- Not loading the game type guide file
- Not capturing game name
- Not presenting A/P/C menu after content generation
- Appending content without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,246 @@
---
name: 'step-03-platforms'
description: 'Define target platforms and target audience for the game'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-03-platforms.md'
nextStepFile: '{workflow_path}/steps/step-04-vision.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 3: Platforms & Audience
**Progress: Step 3 of 14** - Next: Goals & Vision
## STEP GOAL:
Define the target platform(s) for the game and establish a clear picture of the target audience, including demographics, gaming experience level, and preferred play patterns.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- We engage in collaborative dialogue, not command-response
- Platform and audience decisions drive many downstream choices - take this seriously
### Step-Specific Rules:
- Focus on platform capabilities and audience characteristics
- FORBIDDEN to generate detailed content without real user input
- Consider platform-specific constraints (controls, performance, monetization)
- Approach: Guide user through considerations they may not have thought about
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Present A/P/C menu after generating content for each section
- ONLY save when user chooses C (Continue)
- Update frontmatter `stepsCompleted: [1, 2, 3]` before loading next step
- FORBIDDEN to load next step until C is selected
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Explore platform constraints and audience nuances deeper
- **P (Party Mode)**: Get multiple perspectives on platform/audience decisions
- **C (Continue)**: Save the content to the document and proceed to next step
## CONTEXT BOUNDARIES:
- Game type and core concept from step 2 are available
- Platform choice affects many downstream decisions
- Audience definition affects tone, complexity, and accessibility
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Platform Discovery
**Guide user through platform selection:**
"Now let's talk about where players will experience {{game_name}}.
**Platform Options to Consider:**
| Platform | Considerations |
| ---------------------------- | ------------------------------------------------------------------------ |
| **PC (Steam/Epic)** | Full keyboard/mouse, highest specs, Steam achievements, workshop support |
| **Web Browser** | Instant access, limited performance, broad reach, touch/mouse hybrid |
| **Mobile (iOS/Android)** | Touch controls, short sessions, IAP monetization, battery/thermal limits |
| **Console (Switch/PS/Xbox)** | Controller-first, certification requirements, couch multiplayer |
| **VR (Quest/PCVR)** | Motion controls, comfort considerations, presence |
**For {{game_type}} games, common platform choices include:** {platform_suggestions_from_game_type}
**Questions to consider:**
1. Where do your target players primarily game?
2. Does your core gameplay work well with {platform} input methods?
3. Are you targeting a primary platform with potential ports later?
What platform(s) are you targeting?"
### 2. Capture Platform Details
**After user responds:**
Document:
- Primary platform (if multiple)
- Platform-specific control schemes
- Performance considerations (60fps target, resolution, etc.)
- Platform-specific features to leverage (achievements, cloud saves, etc.)
### 3. Audience Discovery
**Guide user through audience definition:**
"Now let's define who {{game_name}} is for.
**Demographics to Consider:**
- **Age Range:** What ages are you designing for? (affects content, complexity, monetization)
- **Gaming Experience:** Casual, core, or hardcore gamers?
- **Genre Familiarity:** Do they know {{game_type}} conventions, or are they new to the genre?
- **Session Length:** Quick mobile sessions (5-15 min) or deep PC sessions (1+ hour)?
**For {{game_type}} games, typical audiences include:**
{audience_suggestions_from_game_type}
Tell me about your ideal player. Who is this game for?"
### 4. Capture Audience Details
**After user responds:**
Document:
- Primary demographic
- Gaming experience level
- Genre familiarity expectations
- Preferred session lengths
- Secondary audiences (if any)
### 5. Generate Platforms & Audience Content
Based on the conversation, prepare the content:
```markdown
## Target Platform(s)
### Primary Platform
{{primary_platform}}
### Platform Considerations
{{platform_specific_details}}
### Control Scheme
{{control_scheme_for_platform}}
---
## Target Audience
### Demographics
{{target_demographics}}
### Gaming Experience
{{experience_level}} - {{experience_description}}
### Genre Familiarity
{{genre_familiarity_description}}
### Session Length
{{typical_session_length}} - {{session_description}}
### Player Motivations
{{what_draws_this_audience_to_this_game}}
```
### 6. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Platforms & Audience sections based on our conversation.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 5]
**Select an Option:**
[A] Advanced Elicitation - Explore platform/audience deeper
[P] Party Mode - Get other perspectives on these decisions
[C] Continue - Save this and move to Goals & Vision (Step 4 of 14)"
### 7. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF C (Continue):
- Append the final content to `{outputFile}`
- Update frontmatter: `stepsCompleted: [1, 2, 3]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [platforms and audience content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Platform(s) clearly identified with rationale
- Platform-specific considerations documented
- Target audience demographics defined
- Gaming experience level captured
- Session length expectations established
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3]
### SYSTEM FAILURE:
- Assuming platform without user confirmation
- Generating audience profile without user input
- Not considering platform-specific constraints
- Not presenting A/P/C menu after content generation
- Proceeding without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,230 @@
---
name: 'step-04-vision'
description: 'Define project goals, context, and unique selling points'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-04-vision.md'
nextStepFile: '{workflow_path}/steps/step-05-core-gameplay.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 4: Goals & Vision
**Progress: Step 4 of 14** - Next: Core Gameplay
## STEP GOAL:
Define the project goals, background context for why this game matters now, and the unique selling points that differentiate this game from others in the market.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- We engage in collaborative dialogue, not command-response
- Vision and USPs are critical for maintaining focus throughout development
### Step-Specific Rules:
- Focus on the "why" behind this game project
- FORBIDDEN to generate goals/USPs without real user input
- Help user articulate what makes their game worth making
- Approach: Challenge assumptions about differentiation
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Present A/P/C menu after generating content
- ONLY save when user chooses C (Continue)
- Update frontmatter `stepsCompleted: [1, 2, 3, 4]` before loading next step
- FORBIDDEN to load next step until C is selected
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Dig deeper into goals and differentiation
- **P (Party Mode)**: Challenge and strengthen the vision with multiple perspectives
- **C (Continue)**: Save the content to the document and proceed to next step
## CONTEXT BOUNDARIES:
- Game type, platform, and audience from previous steps are available
- Goals should be achievable and measurable where possible
- USPs must be genuinely differentiating, not just features
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Goals Discovery
**Guide user through goal definition:**
"Let's define what success looks like for {{game_name}}.
**Types of Goals to Consider:**
| Goal Type | Examples |
| ----------------- | ---------------------------------------------------- |
| **Creative** | "Create a game that makes players feel powerful" |
| **Technical** | "Ship a stable 60fps experience on target platforms" |
| **Business** | "Achieve 10,000 wishlists before launch" |
| **Personal** | "Learn Godot through this project" |
| **Player Impact** | "Create a speedrunning community" |
**Questions to consider:**
1. What does success look like for this project?
2. What would make you proud to have shipped this?
3. Are there specific metrics you want to hit?
What are your 2-4 main goals for {{game_name}}?"
### 2. Context Discovery
**Guide user through background context:**
"Now let's capture why this game matters right now.
**Context Questions:**
- **Motivation:** What inspired you to make this game?
- **Timing:** Why is now the right time for this game?
- **Gap:** What's missing in the market that this fills?
- **Personal:** What unique perspective or experience do you bring?
Tell me the story behind {{game_name}}. Why are you making this?"
### 3. USP Discovery
**Guide user through unique selling points:**
"Now for the critical question: What makes {{game_name}} different?
**USP Framework:**
A strong USP answers: "Why would someone play THIS game instead of the alternatives?"
**Categories of Differentiation:**
- **Mechanical Innovation:** New gameplay systems or combinations
- **Narrative/World:** Unique setting, story, or characters
- **Art/Audio:** Distinctive aesthetic or soundscape
- **Audience Focus:** Serving an underserved player segment
- **Technical:** Performance, accessibility, or platform features
**For {{game_type}} games, common USPs include:**
{typical_usps_for_game_type}
But what's YOUR unique angle?
**Challenge Questions:**
1. If I removed your USP, would the game still be interesting?
2. Can another developer easily copy this USP?
3. Does this USP matter to your target audience?
What 2-4 things make {{game_name}} genuinely different?"
### 4. Generate Vision Content
Based on the conversation, prepare the content:
```markdown
## Goals and Context
### Project Goals
{{goals_list_with_descriptions}}
### Background and Rationale
{{context_narrative}}
---
## Unique Selling Points (USPs)
{{usps_with_descriptions}}
### Competitive Positioning
{{how_this_game_stands_out_in_the_market}}
```
### 5. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Goals & Vision sections based on our conversation.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 4]
**Select an Option:**
[A] Advanced Elicitation - Challenge and strengthen these points
[P] Party Mode - Get other perspectives on differentiation
[C] Continue - Save this and move to Core Gameplay (Step 5 of 14)"
### 6. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF C (Continue):
- Append the final content to `{outputFile}`
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [vision content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- 2-4 clear, achievable goals defined
- Background context captures the "why"
- USPs are genuinely differentiating, not just features
- Competitive positioning is clear
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4]
### SYSTEM FAILURE:
- Generating generic goals without user input
- USPs that are just feature lists, not differentiation
- Not challenging weak USPs
- Not presenting A/P/C menu after content generation
- Proceeding without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,259 @@
---
name: 'step-05-core-gameplay'
description: 'Define game pillars, core gameplay loop, and win/loss conditions'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-05-core-gameplay.md'
nextStepFile: '{workflow_path}/steps/step-06-mechanics.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 5: Core Gameplay
**Progress: Step 5 of 14** - Next: Game Mechanics
## STEP GOAL:
Define the fundamental gameplay elements: game pillars (core design tenets), the core gameplay loop (what players repeatedly do), and win/loss conditions (how players succeed or fail).
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- These are GAME-DEFINING decisions - treat them with appropriate weight
- Every future decision should serve these pillars and loop
### Step-Specific Rules:
- Focus on the heart of the gameplay experience
- FORBIDDEN to generate pillars/loops without real user input
- Challenge: Do these pillars and loop serve the stated USPs?
- Approach: Help user think through the player experience
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Present A/P/C menu after generating content
- ONLY save when user chooses C (Continue)
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5]` before loading next step
- FORBIDDEN to load next step until C is selected
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Deep dive into the player experience
- **P (Party Mode)**: Test these fundamentals with multiple perspectives
- **C (Continue)**: Save the content to the document and proceed to next step
## CONTEXT BOUNDARIES:
- All previous context (type, platform, audience, goals, USPs) available
- Pillars are the "constitution" that guides all design decisions
- Core loop is what players do 80% of the time
- Win/loss conditions provide motivation and stakes
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Game Pillars Discovery
**Guide user through pillar definition:**
"Now we define the core pillars - the fundamental design principles that every feature must serve.
**What are Game Pillars?**
Pillars are 2-4 non-negotiable design tenets. Every mechanic, system, and feature should support at least one pillar. If something doesn't serve a pillar, question whether it belongs.
**Examples of Pillars:**
| Game | Pillars |
| -------------- | -------------------------------------------------- |
| **Dark Souls** | Challenge, Discovery, Consequence |
| **Celeste** | Tight Controls, Accessibility, Emotional Narrative |
| **Minecraft** | Creativity, Exploration, Player Agency |
| **Dead Cells** | Mastery, Variety, Momentum |
**For your {{game_type}} with USPs of {{usps}}:**
What 2-4 pillars will define every design decision in {{game_name}}?"
### 2. Core Loop Discovery
**Guide user through loop definition:**
"Now let's define the core gameplay loop - the cycle of actions players repeat throughout the game.
**Core Loop Structure:**
A good loop has: **Action -> Feedback -> Reward -> Motivation to repeat**
**Examples:**
| Game | Core Loop |
| ------------- | ---------------------------------------------------------------------- |
| **Roguelike** | Enter dungeon -> Fight/loot -> Die/extract -> Upgrade -> Enter dungeon |
| **Puzzle** | See puzzle -> Analyze -> Attempt -> Succeed/fail -> Next puzzle |
| **FPS** | Engage enemy -> Shoot -> Kill/die -> Respawn/proceed -> Engage |
**For {{game_type}} games, typical loops include:**
{typical_loops_for_game_type}
**Questions to consider:**
1. What does the player do most of the time?
2. What makes each loop iteration feel different from the last?
3. How long is one loop cycle? (seconds, minutes, hours?)
Describe the core loop for {{game_name}}."
### 3. Win/Loss Conditions Discovery
**Guide user through win/loss definition:**
"Finally, let's define how players succeed and fail.
**Win/Loss Framework:**
| Condition Type | Examples |
| -------------- | --------------------------------------------------------------- |
| **Victory** | Beat final boss, reach score, complete story, survive time |
| **Failure** | Run out of lives, time expires, resources depleted, story fails |
| **Soft Fail** | Lose progress, restart level, dropped loot |
| **No Failure** | Sandbox games, creative tools, walking sims |
**Questions to consider:**
1. Is there a definitive "win state" or is success ongoing?
2. What happens when players fail? How punishing is it?
3. Are there multiple win/lose conditions (lives AND time)?
4. Does failure teach the player something?
How do players win and lose in {{game_name}}?"
### 4. Generate Core Gameplay Content
Based on the conversation, prepare the content:
```markdown
## Core Gameplay
### Game Pillars
{{pillar_list_with_descriptions}}
**Pillar Prioritization:** When pillars conflict, prioritize in this order:
{{pillar_priority_order}}
### Core Gameplay Loop
{{loop_description}}
**Loop Diagram:**
{{text_based_loop_visualization}}
**Loop Timing:** {{typical_loop_duration}}
**Loop Variation:** {{what_makes_each_iteration_different}}
### Win/Loss Conditions
#### Victory Conditions
{{win_conditions}}
#### Failure Conditions
{{loss_conditions}}
#### Failure Recovery
{{what_happens_on_failure}}
```
### 5. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Core Gameplay sections based on our conversation.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 4]
**Validation Check:**
- Do all pillars support your USPs?
- Does the core loop deliver on your pillars?
- Do win/loss conditions create appropriate stakes?
**Select an Option:**
[A] Advanced Elicitation - Stress test these fundamentals
[P] Party Mode - Get other perspectives on the core design
[C] Continue - Save this and move to Game Mechanics (Step 6 of 14)"
### 6. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF C (Continue):
- Append the final content to `{outputFile}`
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [core gameplay content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- 2-4 clear, actionable pillars defined
- Pillar prioritization established for conflicts
- Core loop clearly described with timing and variation
- Win/loss conditions appropriate for game type
- Failure recovery explained
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5]
### SYSTEM FAILURE:
- Generic pillars that don't guide decisions
- Core loop that doesn't match the game type
- Generating content without real user input
- Win/loss conditions misaligned with stated goals
- Not presenting A/P/C menu after content generation
- Proceeding without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,250 @@
---
name: 'step-06-mechanics'
description: 'Define primary game mechanics and control schemes'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-06-mechanics.md'
nextStepFile: '{workflow_path}/steps/step-07-game-type.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 6: Game Mechanics
**Progress: Step 6 of 14** - Next: Game Type Specifics
## STEP GOAL:
Define the primary game mechanics that players interact with and the control scheme/input methods for the target platform(s).
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- Mechanics must serve the pillars and core loop defined in step 5
- Controls must work for the target platform defined in step 3
### Step-Specific Rules:
- Focus on moment-to-moment player interactions
- FORBIDDEN to generate mechanics without real user input
- Challenge: Does each mechanic serve a pillar?
- Approach: Start with verbs - what does the player DO?
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Present A/P/C menu after generating content
- ONLY save when user chooses C (Continue)
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6]` before loading next step
- FORBIDDEN to load next step until C is selected
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Deep dive into mechanic interactions and edge cases
- **P (Party Mode)**: Test mechanic clarity with multiple perspectives
- **C (Continue)**: Save the content to the document and proceed to next step
## CONTEXT BOUNDARIES:
- All previous context available (especially pillars and platform)
- Mechanics are the building blocks of gameplay
- Controls must feel good on target platform(s)
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Primary Mechanics Discovery
**Guide user through mechanics definition:**
"Let's define the primary mechanics - the core actions players perform to engage with your game.
**Mechanics Framework:**
Think in terms of VERBS - what does the player DO?
| Mechanic Category | Example Verbs |
| ----------------- | ---------------------------------------- |
| **Movement** | Run, jump, dash, climb, swim, fly |
| **Combat** | Attack, block, dodge, parry, aim, shoot |
| **Interaction** | Talk, pickup, use, craft, build, destroy |
| **Resource** | Collect, spend, trade, manage, invest |
| **Information** | Discover, read, scan, analyze, remember |
| **Social** | Cooperate, compete, trade, communicate |
**For {{game_type}} games, key mechanics typically include:**
{typical_mechanics_for_game_type}
**Your core loop is:** {{core_loop}}
**Your pillars are:** {{pillars}}
**Questions to consider:**
1. What are the 3-5 most important things players do?
2. Which mechanics support which pillars?
3. How do mechanics combine or interact?
What are the primary mechanics in {{game_name}}?"
### 2. Mechanics Deep Dive
**For each mechanic identified, ask:**
"Let's detail **{{mechanic_name}}**:
- **When does the player use this?** (constantly, situationally, rarely)
- **What skill does it test?** (timing, positioning, strategy, knowledge)
- **How does it feel?** (snappy, weighty, floaty, precise)
- **How does it progress?** (unlocks, upgrades, mastery)
- **How does it interact with other mechanics?**"
### 3. Controls Discovery
**Guide user through control scheme definition:**
"Now let's map these mechanics to controls for {{primary_platform}}.
**Control Considerations:**
| Platform | Key Considerations |
| ----------- | ------------------------------------------------------------------ |
| **PC** | Keyboard/mouse precision, rebindable keys, many available inputs |
| **Console** | Limited buttons, shoulder triggers, stick deadzone, rumble |
| **Mobile** | Touch targets, gesture clarity, screen real estate, one-hand play? |
| **VR** | Motion control, tracked hands, comfort, physical space |
**Control Design Principles:**
1. **Frequency = Accessibility:** Common actions get easy-to-reach inputs
2. **Similar actions, similar buttons:** Jump/interact shouldn't be opposite hands
3. **No hand gymnastics:** Avoid requiring uncomfortable button combos
4. **Platform conventions:** Use expected mappings where appropriate
**For {{game_type}} on {{platform}}, typical control schemes include:**
{typical_controls_for_game_type_and_platform}
How do you want controls to work in {{game_name}}?"
### 4. Generate Mechanics Content
Based on the conversation, prepare the content:
```markdown
## Game Mechanics
### Primary Mechanics
{{mechanics_list_with_details}}
### Mechanic Interactions
{{how_mechanics_combine}}
### Mechanic Progression
{{how_mechanics_evolve_or_unlock}}
---
## Controls and Input
### Control Scheme ({{primary_platform}})
{{control_mapping_table_or_description}}
### Input Feel
{{how_controls_should_feel}}
### Accessibility Controls
{{planned_accessibility_options}}
```
### 5. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Mechanics & Controls sections based on our conversation.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 4]
**Validation Check:**
- Does each mechanic serve at least one pillar?
- Do controls feel natural for the platform?
- Are common actions easily accessible?
**Select an Option:**
[A] Advanced Elicitation - Deep dive into mechanic feel and edge cases
[P] Party Mode - Test these mechanics with other perspectives
[C] Continue - Save this and move to Game Type Specifics (Step 7 of 14)"
### 6. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF C (Continue):
- Append the final content to `{outputFile}`
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [mechanics content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- 3-5 primary mechanics clearly defined
- Each mechanic linked to pillars
- Mechanic interactions described
- Control scheme appropriate for platform
- Input feel considerations captured
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6]
### SYSTEM FAILURE:
- Mechanics that don't serve pillars
- Controls inappropriate for target platform
- Generating content without real user input
- Missing mechanic interactions
- Not presenting A/P/C menu after content generation
- Proceeding without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,267 @@
---
name: 'step-07-game-type'
description: 'Process game-type specific sections from the loaded game type guide'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-07-game-type.md'
nextStepFile: '{workflow_path}/steps/step-08-progression.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
# Game Type Resources
gameTypesFolder: '{workflow_path}/game-types'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 7: Game Type Specifics
**Progress: Step 7 of 14** - Next: Progression & Balance
## STEP GOAL:
Process the game-type specific sections from the loaded game type guide ({game_type}.md). Each game type has unique sections that must be addressed (e.g., RPGs need character systems, platformers need movement feel, etc.).
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- Game type guides contain expert knowledge for specific genres
- This step varies significantly based on game type
### Step-Specific Rules:
- CRITICAL: Load and process the game type guide file
- Each section in the guide should be elicited from user
- FORBIDDEN to generate type-specific content without user input
- Some game types have optional sections - respect them
## EXECUTION PROTOCOLS:
- Load the game type guide from `{gameTypesFolder}/{game_type}.md`
- Process each section in the guide sequentially
- Present A/P/C menu after completing all type-specific sections
- ONLY save when user chooses C (Continue)
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]` before loading next step
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Deep dive into genre-specific elements
- **P (Party Mode)**: Get genre expert perspectives
- **C (Continue)**: Save the content to the document and proceed to next step
## CONTEXT BOUNDARIES:
- Game type was determined in step 2 and stored in frontmatter
- Game type guide should already be loaded in memory from step 2
- All previous context (pillars, mechanics, etc.) available
- Type-specific content goes in the {{GAME_TYPE_SPECIFIC_SECTIONS}} placeholder
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Load Game Type Guide
**CRITICAL FIRST ACTION:**
- Read `game_type` from frontmatter
- If not already loaded, load `{gameTypesFolder}/{game_type}.md`
- Parse the guide to identify all sections that need elicitation
**Announce to user:**
"Now we'll work through the **{{game_type}}** specific sections. This game type has unique design elements that we need to define.
**{{game_type}} requires these specific sections:**
{list_sections_from_game_type_guide}
Let's work through each one."
### 2. Process Each Section from Guide
**For each section defined in the game type guide:**
The game type guide will have sections marked with placeholders like `{{section_name}}`. For each:
1. **Read the guidance** in the guide for this section
2. **Present the guidance and questions** to the user
3. **Elicit user input** for this specific section
4. **Store the content** for final assembly
**Example flow for an RPG game type:**
"**Character System**
Your game type guide suggests addressing:
- Character creation options
- Attribute/stat system
- Class or build system
- Character progression path
{guidance_from_guide}
How do you want the character system to work in {{game_name}}?"
### 3. Handle Optional Sections
Some game type guides have optional sections marked with `[optional]` or similar:
- Present optional sections to user
- Ask: "This section is optional for {{game_type}}. Would you like to define {{section_name}}?"
- If yes: elicit content
- If no: skip and note as "Not applicable for this game"
### 4. Handle Narrative Flags
Some game type guides include narrative flags:
- `<narrative-workflow-critical>` - Story is essential for this game type
- `<narrative-workflow-recommended>` - Story would enhance this game type
If flag found:
- Store `needs_narrative = true` for use in step 14
- Note to user: "This game type typically benefits from dedicated narrative design. We'll address this in the final step."
### 5. Generate Game Type Content
Based on all elicited sections, prepare the content:
```markdown
## {{game_type_name}} Specific Design
{{assembled_sections_from_guide_elicitation}}
```
The content structure will vary based on game type:
**Example for RPG:**
```markdown
## RPG Specific Design
### Character System
{{character_system_content}}
### Combat System
{{combat_system_content}}
### Inventory & Equipment
{{inventory_content}}
### Quest System
{{quest_system_content}}
```
**Example for Platformer:**
```markdown
## Platformer Specific Design
### Movement Feel
{{movement_feel_content}}
### Jump Mechanics
{{jump_mechanics_content}}
### Hazards & Enemies
{{hazards_content}}
### Collectibles
{{collectibles_content}}
```
### 6. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the {{game_type}} Specific Design sections based on our conversation.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 5]
**Validation Check:**
- Does each section align with your core pillars?
- Have we covered all required elements for {{game_type}}?
- Any genre conventions you want to subvert?
**Select an Option:**
[A] Advanced Elicitation - Deep dive into genre specifics
[P] Party Mode - Get genre expert perspectives
[C] Continue - Save this and move to Progression & Balance (Step 8 of 14)"
### 7. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF C (Continue):
- Append the final content to `{outputFile}` in place of {{GAME_TYPE_SPECIFIC_SECTIONS}}
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]`
- If `needs_narrative` flag was set, store in frontmatter
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [game type content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Game type guide loaded and parsed
- All required sections elicited from user
- Optional sections offered and handled appropriately
- Narrative flags detected and stored
- Content matches game type guide structure
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6, 7]
### SYSTEM FAILURE:
- Not loading the game type guide file
- Generating type-specific content without user input
- Missing required sections from the guide
- Ignoring narrative flags
- Not presenting A/P/C menu after content generation
- Proceeding without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,273 @@
---
name: 'step-08-progression'
description: 'Define player progression systems and game balance'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-08-progression.md'
nextStepFile: '{workflow_path}/steps/step-09-levels.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 8: Progression & Balance
**Progress: Step 8 of 14** - Next: Level Design
## STEP GOAL:
Define how players progress through the game (skill, power, narrative, etc.), the difficulty curve, and any economy or resource systems.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- Progression is what keeps players engaged over time
- Balance determines if the game feels fair and fun
### Step-Specific Rules:
- Focus on player growth and challenge scaling
- FORBIDDEN to generate progression systems without user input
- Some games have no explicit progression - that's valid
- Economy/resources are optional - ask before including
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Present A/P/C menu after generating content
- ONLY save when user chooses C (Continue)
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8]` before loading next step
- FORBIDDEN to load next step until C is selected
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Deep dive into progression curves and balance
- **P (Party Mode)**: Test progression ideas with multiple perspectives
- **C (Continue)**: Save the content to the document and proceed to next step
## CONTEXT BOUNDARIES:
- All previous context available (especially core loop and mechanics)
- Progression should reinforce the core loop
- Balance affects all previously defined mechanics
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Player Progression Discovery
**Guide user through progression definition:**
"Let's define how players grow and progress through {{game_name}}.
**Types of Progression:**
| Type | Description | Examples |
| -------------- | ------------------------------------------ | ------------------------- |
| **Skill** | Player gets better at the game | Dark Souls, Celeste |
| **Power** | Character gets stronger (stats, abilities) | RPGs, Metroidvanias |
| **Narrative** | Story unfolds and advances | Visual novels, adventures |
| **Content** | New levels, areas, or modes unlock | Most games |
| **Collection** | Gathering items, achievements | Completionist games |
| **Social** | Rank, reputation, community status | Competitive games |
**For {{game_type}} games, typical progression includes:**
{typical_progression_for_game_type}
**Questions to consider:**
1. What type(s) of progression does {{game_name}} have?
2. How long until players feel meaningful progress?
3. Is there a "meta" progression (between runs/sessions)?
How do players progress in {{game_name}}?"
### 2. Difficulty Curve Discovery
**Guide user through difficulty design:**
"Now let's design the difficulty curve.
**Difficulty Curve Patterns:**
| Pattern | Description | Best For |
| --------------------- | --------------------------------------- | ------------------------------ |
| **Linear** | Steady increase in challenge | Story games, first playthrough |
| **Sawtooth** | Build-release pattern (easy after hard) | Level-based games |
| **Exponential** | Gentle start, steep late-game | RPGs, incremental games |
| **Flat** | Consistent challenge throughout | Roguelikes, skill games |
| **Player-controlled** | User selects difficulty | Accessibility-focused |
**Questions to consider:**
1. How does challenge increase over time?
2. Are there difficulty spikes (bosses, skill checks)?
3. Can players adjust difficulty? How?
4. How do you handle players who are stuck?
Describe the difficulty curve for {{game_name}}."
### 3. Economy/Resources Discovery (Optional)
**Ask first:**
"Does {{game_name}} have an in-game economy or resource system?
Examples:
- Currency (gold, coins, gems)
- Crafting materials
- Energy/stamina systems
- Ammunition or consumables
If yes, we'll define it. If no, we'll skip this section."
**If yes:**
"Let's define the economy/resources:
**Economy Questions:**
1. What resources exist?
2. How are resources earned?
3. How are resources spent?
4. Is there inflation/scarcity design?
5. Are there sinks to remove resources?
6. Premium currency? (if F2P)
Describe the economy in {{game_name}}."
### 4. Generate Progression Content
Based on the conversation, prepare the content:
```markdown
## Progression and Balance
### Player Progression
{{progression_system_description}}
#### Progression Types
{{progression_types_used}}
#### Progression Pacing
{{how_fast_players_progress}}
### Difficulty Curve
{{difficulty_curve_description}}
#### Challenge Scaling
{{how_difficulty_increases}}
#### Difficulty Options
{{accessibility_and_difficulty_settings}}
### Economy and Resources
{{if_has_economy}}
{{economy_system_description}}
#### Resources
{{resource_types_and_purposes}}
#### Economy Flow
{{earn_and_spend_loop}}
{{/if_has_economy}}
{{if_no_economy}}
_This game does not feature an in-game economy or resource system._
{{/if_no_economy}}
```
### 5. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Progression & Balance sections based on our conversation.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 4]
**Validation Check:**
- Does progression reinforce your core loop?
- Is the difficulty curve appropriate for your audience?
- Does the economy (if any) feel fair?
**Select an Option:**
[A] Advanced Elicitation - Deep dive into balance and pacing
[P] Party Mode - Test these systems with other perspectives
[C] Continue - Save this and move to Level Design (Step 9 of 14)"
### 6. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF C (Continue):
- Append the final content to `{outputFile}`
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [progression content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Progression system clearly defined
- Difficulty curve appropriate for game type and audience
- Economy handled correctly (defined or explicitly skipped)
- Balance considerations documented
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8]
### SYSTEM FAILURE:
- Generating progression without user input
- Assuming economy exists without asking
- Difficulty curve mismatched with audience
- Not presenting A/P/C menu after content generation
- Proceeding without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,265 @@
---
name: 'step-09-levels'
description: 'Define level design framework and level progression'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-09-levels.md'
nextStepFile: '{workflow_path}/steps/step-10-art-audio.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 9: Level Design
**Progress: Step 9 of 14** - Next: Art & Audio
## STEP GOAL:
Define the level design framework including level types, structure, and how levels progress or unlock throughout the game.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- Level design is where mechanics meet content
- Not all games have "levels" - some have open worlds, others are endless
### Step-Specific Rules:
- Focus on spatial design and content structure
- FORBIDDEN to generate level designs without user input
- Adapt terminology to game type (levels, stages, areas, dungeons, etc.)
- Some games have no level structure - that's valid
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Present A/P/C menu after generating content
- ONLY save when user chooses C (Continue)
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9]` before loading next step
- FORBIDDEN to load next step until C is selected
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Deep dive into level design principles
- **P (Party Mode)**: Get perspectives on level structure
- **C (Continue)**: Save the content to the document and proceed to next step
## CONTEXT BOUNDARIES:
- All previous context available (especially mechanics and progression)
- Level design should teach and challenge using defined mechanics
- Structure should support defined progression system
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Determine Level Structure Type
**First, establish the structural approach:**
"Let's define how {{game_name}} structures its playable content.
**Structure Types:**
| Type | Description | Examples |
| -------------------- | --------------------------------- | --------------------------- |
| **Linear Levels** | Distinct stages played in order | Mario, Celeste |
| **Hub-Based** | Central area connecting levels | Mario 64, Hollow Knight |
| **Open World** | Large continuous space | Breath of the Wild, GTA |
| **Procedural** | Generated levels each playthrough | Spelunky, Dead Cells |
| **Arena/Match** | Self-contained competitive spaces | Fighting games, MOBAs |
| **Puzzle Sets** | Collections of puzzles | Portal, The Witness |
| **Narrative Scenes** | Story-driven segments | Visual novels, adventures |
| **Endless** | Infinite generated content | Endless runners, idle games |
**For {{game_type}} games, typical structures include:**
{typical_structures_for_game_type}
What structure best fits {{game_name}}?"
### 2. Level Types Discovery
**Based on structure choice, elicit level types:**
"Now let's define the types of {levels/areas/stages} in {{game_name}}.
**Questions to consider:**
1. What different environments or settings exist?
2. Are there tutorial levels? How are they integrated?
3. Are there boss levels or climax moments?
4. What's the shortest level? Longest?
5. Any special or secret levels?
Describe the types of {levels/areas/stages} in {{game_name}}."
### 3. Level Progression Discovery
**Guide user through progression structure:**
"Now let's define how players progress through {levels/areas/content}.
**Progression Models:**
| Model | Description | Best For |
| --------------------- | -------------------------------- | ---------------------- |
| **Linear Sequence** | 1 -> 2 -> 3 -> ... | Story games, tutorials |
| **Branching Paths** | Choices lead to different levels | Replayability |
| **Open Selection** | Player chooses order | Mega Man style |
| **Gated Progress** | Abilities unlock new areas | Metroidvania |
| **Score/Star Unlock** | Performance unlocks levels | Angry Birds style |
| **Story Unlock** | Narrative triggers unlock | Adventure games |
**Questions to consider:**
1. How do players unlock new {levels/areas}?
2. Can players replay previous {levels/areas}?
3. Is there a "world map" or selection screen?
4. How is the final {level/area} unlocked?
How do players progress through {{game_name}}'s content?"
### 4. Level Design Principles (Optional)
"Would you like to establish specific level design principles or guidelines for {{game_name}}?
Examples:
- 'Teach through play, never through text'
- 'Every room has one new idea'
- '30 second rule - something interesting every 30 seconds'
- 'Left is safety, right is danger'
These can guide consistent level design throughout development."
### 5. Generate Level Design Content
Based on the conversation, prepare the content:
```markdown
## Level Design Framework
### Structure Type
{{structure_type_description}}
### Level Types
{{level_types_list}}
#### Tutorial Integration
{{how_tutorials_work}}
#### Special Levels
{{boss_levels_secret_levels_etc}}
### Level Progression
{{progression_model_description}}
#### Unlock System
{{how_levels_unlock}}
#### Replayability
{{replay_and_revisit_mechanics}}
### Level Design Principles
{{if_has_principles}}
{{level_design_guidelines}}
{{/if_has_principles}}
{{if_no_principles}}
_Level design principles will be established during production._
{{/if_no_principles}}
```
### 6. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Level Design Framework based on our conversation.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 5]
**Validation Check:**
- Does the structure support your core loop?
- Does progression feel rewarding?
- Are level types varied enough to maintain interest?
**Select an Option:**
[A] Advanced Elicitation - Deep dive into level design specifics
[P] Party Mode - Get other perspectives on level structure
[C] Continue - Save this and move to Art & Audio (Step 10 of 14)"
### 7. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF C (Continue):
- Append the final content to `{outputFile}`
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [level design content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Level structure type clearly identified
- Level types defined with variety
- Progression model documented
- Tutorial integration addressed
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9]
### SYSTEM FAILURE:
- Generating level designs without user input
- Using wrong terminology for game type
- Structure doesn't support core loop
- Not presenting A/P/C menu after content generation
- Proceeding without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,256 @@
---
name: 'step-10-art-audio'
description: 'Define art style and audio direction'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-10-art-audio.md'
nextStepFile: '{workflow_path}/steps/step-11-technical.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 10: Art & Audio
**Progress: Step 10 of 14** - Next: Technical Specs
## STEP GOAL:
Define the visual art style and audio/music direction for the game, establishing the aesthetic identity that will guide all asset creation.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- Art and audio define the player's emotional experience
- These decisions heavily impact scope and team requirements
### Step-Specific Rules:
- Focus on direction and mood, not specific asset lists
- FORBIDDEN to generate art/audio direction without user input
- Reference games or other media when helpful
- Consider platform constraints on art complexity
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Present A/P/C menu after generating content
- ONLY save when user chooses C (Continue)
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]` before loading next step
- FORBIDDEN to load next step until C is selected
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Deep dive into aesthetic choices
- **P (Party Mode)**: Get artistic perspectives
- **C (Continue)**: Save the content to the document and proceed to next step
## CONTEXT BOUNDARIES:
- All previous context available (especially platform and audience)
- Art style should match game pillars and tone
- Audio must work on target platform(s)
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Art Style Discovery
**Guide user through visual direction:**
"Let's define the visual identity of {{game_name}}.
**Art Style Categories:**
| Style | Description | Examples |
| --------------- | ---------------------------- | ------------------------- |
| **Pixel Art** | Retro-styled discrete pixels | Celeste, Shovel Knight |
| **Low-Poly** | Simple 3D geometry | Superhot, Monument Valley |
| **Hand-Drawn** | Illustration-like visuals | Cuphead, Hollow Knight |
| **Realistic** | Photorealistic graphics | AAA titles |
| **Stylized 3D** | Non-realistic 3D | Fortnite, Zelda: BotW |
| **Vector/Flat** | Clean shapes, minimal | Thomas Was Alone |
| **Mixed Media** | Combining multiple styles | Paper Mario |
**Visual Elements to Consider:**
- **Color Palette:** Vibrant, muted, monochromatic, complementary?
- **Lighting:** Dramatic, soft, realistic, stylized?
- **Camera:** 2D side, top-down, isometric, 3D third/first person?
- **Character Design:** Cute, realistic, abstract, iconic?
**For {{game_type}} on {{platform}}, common art styles include:**
{typical_art_styles_for_game_type}
What visual style do you envision for {{game_name}}?"
### 2. Art Reference Gathering
"Are there any games, films, or art that inspire the look of {{game_name}}?
Examples help communicate the vision:
- 'The lighting of Limbo with the colors of Journey'
- 'Pixel art like Hyper Light Drifter but with a warmer palette'
- 'Studio Ghibli-inspired environments'
What references capture the visual feel you want?"
### 3. Audio Direction Discovery
**Guide user through audio/music direction:**
"Now let's define the audio identity of {{game_name}}.
**Music Style Considerations:**
| Style | Mood | Examples |
| ------------------ | ------------------- | --------------------- |
| **Chiptune/8-bit** | Retro, energetic | Shovel Knight |
| **Orchestral** | Epic, emotional | Zelda, Final Fantasy |
| **Electronic** | Modern, driving | Hotline Miami, FURI |
| **Ambient** | Atmospheric, subtle | Journey, INSIDE |
| **Rock/Metal** | Intense, aggressive | DOOM, Devil May Cry |
| **Jazz/Lo-fi** | Chill, stylish | Persona, VA-11 Hall-A |
| **Dynamic** | Adapts to gameplay | DOOM, Ape Out |
**Sound Design Considerations:**
- **Feedback Sounds:** How responsive and punchy?
- **Environmental Audio:** How immersive?
- **Voice/Dialogue:** None, grunts, partial, full VO?
- **Accessibility:** Audio cues for visual elements?
**For {{game_type}} games, typical audio approaches include:**
{typical_audio_for_game_type}
What audio direction fits {{game_name}}?"
### 4. Generate Art & Audio Content
Based on the conversation, prepare the content:
```markdown
## Art and Audio Direction
### Art Style
{{art_style_description}}
#### Visual References
{{reference_games_and_media}}
#### Color Palette
{{color_direction}}
#### Camera and Perspective
{{camera_style}}
### Audio and Music
{{audio_direction_description}}
#### Music Style
{{music_genre_and_mood}}
#### Sound Design
{{sound_design_approach}}
#### Voice/Dialogue
{{voice_approach}}
### Aesthetic Goals
{{how_art_and_audio_support_game_pillars}}
```
### 5. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Art & Audio Direction based on our conversation.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 4]
**Validation Check:**
- Does the art style support your game pillars?
- Is the audio direction achievable for your scope?
- Do art and audio work together cohesively?
**Select an Option:**
[A] Advanced Elicitation - Deep dive into aesthetic details
[P] Party Mode - Get artistic perspectives
[C] Continue - Save this and move to Technical Specs (Step 11 of 14)"
### 6. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF C (Continue):
- Append the final content to `{outputFile}`
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [art/audio content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Art style clearly defined with references
- Audio direction documented
- Aesthetic supports game pillars and tone
- Platform constraints considered
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
### SYSTEM FAILURE:
- Generating art/audio direction without user input
- Art style inappropriate for target platform
- Missing references that help communicate vision
- Not presenting A/P/C menu after content generation
- Proceeding without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,276 @@
---
name: 'step-11-technical'
description: 'Define technical specifications and requirements'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-11-technical.md'
nextStepFile: '{workflow_path}/steps/step-12-epics.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 11: Technical Specifications
**Progress: Step 11 of 14** - Next: Epic Structure
## STEP GOAL:
Define technical requirements including performance targets, platform-specific details, and asset requirements. This provides a bridge to the architecture workflow.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- Technical specs inform the architecture workflow
- Not all technical decisions are made here - architecture comes later
### Step-Specific Rules:
- Focus on requirements, not implementation details
- FORBIDDEN to generate tech specs without user input
- Keep scope appropriate - detailed architecture comes in a separate workflow
- Reference target platform(s) from step 3
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Present A/P/C menu after generating content
- ONLY save when user chooses C (Continue)
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]` before loading next step
- FORBIDDEN to load next step until C is selected
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Deep dive into technical requirements
- **P (Party Mode)**: Get technical perspectives
- **C (Continue)**: Save the content to the document and proceed to next step
## CONTEXT BOUNDARIES:
- All previous context available (especially platform from step 3)
- This is GDD-level specs, not architecture-level details
- Engine/framework selection happens in architecture workflow
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Performance Requirements Discovery
**Guide user through performance targets:**
"Let's define the technical requirements for {{game_name}}.
**Performance Targets:**
| Platform | Typical Targets |
| ----------- | ------------------------------------------- |
| **PC** | 60fps @ 1080p minimum, 4K optional |
| **Console** | 30fps or 60fps depending on visual fidelity |
| **Mobile** | 30fps, thermal management, battery life |
| **Web** | 30-60fps, file size under 50MB |
| **VR** | 72-90fps minimum, latency critical |
**For {{game_type}} on {{platform}}:**
**Questions to consider:**
1. What frame rate are you targeting?
2. What resolutions should be supported?
3. What's the acceptable load time?
4. Any specific performance priorities? (visuals vs frame rate)
What are your performance targets for {{game_name}}?"
### 2. Platform-Specific Requirements
**Guide user through platform details:**
"Now let's capture platform-specific considerations for {{platform}}.
**Platform-Specific Questions:**
**PC:**
- Minimum and recommended specs?
- Steam/Epic/itch.io features to support?
- Mod support planned?
- Cloud saves?
**Console:**
- Certification requirements awareness?
- Controller-only or hybrid input?
- Achievement/trophy integration?
**Mobile:**
- iOS minimum version? Android API level?
- Portrait, landscape, or both?
- Offline play required?
- In-app purchases planned?
**Web:**
- Target browsers?
- WebGL version?
- Maximum build size?
What platform-specific requirements matter for {{game_name}}?"
### 3. Asset Requirements Discovery
**Guide user through asset considerations:**
"Finally, let's document asset requirements and constraints.
**Asset Categories:**
| Category | Considerations |
| -------------------- | ------------------------------------- |
| **Sprites/Textures** | Resolution, count estimates, atlasing |
| **3D Models** | Poly budgets, LOD levels, rigging |
| **Animations** | Frame counts, skeletal vs sprite |
| **Audio** | Music tracks, SFX count, voice lines |
| **UI** | Resolution scaling, localization |
**Questions to consider:**
1. What are the major asset categories you'll need?
2. Any rough estimates on asset counts?
3. What quality level are you targeting?
4. Any external assets planned (asset store, licensed content)?
What are the key asset requirements for {{game_name}}?"
### 4. Generate Technical Content
Based on the conversation, prepare the content:
```markdown
## Technical Specifications
### Performance Requirements
{{performance_targets_description}}
#### Frame Rate Target
{{target_fps}}
#### Resolution Support
{{resolution_targets}}
#### Load Times
{{load_time_requirements}}
### Platform-Specific Details
{{platform_specific_requirements}}
#### {{platform}} Requirements
{{platform_details}}
### Asset Requirements
{{asset_requirements_overview}}
#### Art Assets
{{art_asset_requirements}}
#### Audio Assets
{{audio_asset_requirements}}
#### External Assets
{{third_party_asset_plans}}
### Technical Constraints
{{any_known_limitations_or_requirements}}
```
### 5. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Technical Specifications based on our conversation.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 4]
**Note:** This is GDD-level technical planning. Detailed architecture decisions (engine selection, specific technologies, system design) will be addressed in the Architecture workflow after the GDD is complete.
**Select an Option:**
[A] Advanced Elicitation - Deep dive into technical requirements
[P] Party Mode - Get technical perspectives
[C] Continue - Save this and move to Epic Structure (Step 12 of 14)"
### 6. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF C (Continue):
- Append the final content to `{outputFile}`
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [technical content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Performance targets clearly defined
- Platform-specific requirements documented
- Asset requirements outlined
- Scope appropriate for GDD (not architecture-level detail)
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
### SYSTEM FAILURE:
- Generating tech specs without user input
- Going too deep into architecture details
- Missing key platform requirements
- Not presenting A/P/C menu after content generation
- Proceeding without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,285 @@
---
name: 'step-12-epics'
description: 'Define development epics and high-level story breakdown'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-12-epics.md'
nextStepFile: '{workflow_path}/steps/step-13-metrics.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
epicsOutputFile: '{output_folder}/epics.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 12: Epic Structure
**Progress: Step 12 of 14** - Next: Success Metrics
## STEP GOAL:
Translate the game features defined throughout the GDD into development epics, each with a clear scope and list of high-level stories. This provides the foundation for sprint planning.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- Epics bridge design (GDD) to implementation (sprints)
- Epic scope should be completable in 1-4 sprints
### Step-Specific Rules:
- Focus on feature groupings, not detailed task breakdowns
- FORBIDDEN to generate epics without user input
- Each epic should deliver playable value
- Stories are high-level here - detailed stories come in sprint planning
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Present A/P/C menu after generating content
- ONLY save when user chooses C (Continue)
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]` before loading next step
- FORBIDDEN to load next step until C is selected
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Refine epic scopes and boundaries
- **P (Party Mode)**: Get perspectives on epic organization
- **C (Continue)**: Save the content to the document and proceed to next step
## CONTEXT BOUNDARIES:
- All GDD content from previous steps available
- Epics should map to game pillars and features
- This creates both GDD epic summary and detailed epics.md file
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Review Game Features for Epic Candidates
**Analyze the GDD content:**
"Let's organize {{game_name}}'s features into development epics.
Based on everything we've defined, here are the major feature areas I've identified:
**From Core Gameplay:** {{core_loop_features}}
**From Mechanics:** {{mechanics_features}}
**From Game Type Specifics:** {{game_type_features}}
**From Progression:** {{progression_features}}
**From Level Design:** {{level_features}}
**From Art/Audio:** {{art_audio_features}}
**From Technical:** {{technical_features}}
**Epic Organization Principles:**
1. **Playable Milestones:** Each epic should result in something playable
2. **Dependency Awareness:** Some epics must come before others
3. **Vertical Slices:** Early epics often prove core gameplay
4. **Scope Control:** 1-4 sprints per epic is ideal
How would you like to group these features into epics?"
### 2. Define Epic Structure
**For each epic, elicit:**
"Let's define **Epic {{number}}: {{epic_name}}**
**Epic Definition Questions:**
1. **Goal:** What does completing this epic achieve?
2. **Includes:** What features/systems are in this epic?
3. **Excludes:** What specifically is NOT in this epic?
4. **Dependencies:** What epics must come before this?
5. **Deliverable:** What's the playable result?
Describe this epic."
### 3. Generate High-Level Stories
**For each epic, generate story candidates:**
"For **Epic {{number}}: {{epic_name}}**, let's identify high-level stories.
**Story Principles:**
- Each story is independently valuable
- Stories should be completable in 1-3 days
- Use format: 'As a [player], I can [action] so that [benefit]'
What are the main stories in this epic?"
### 4. Determine Epic Order and Dependencies
**Guide user through sequencing:**
"Now let's determine the order for these epics.
**Common Epic Sequences:**
1. **Foundation First:** Core systems before content
2. **Vertical Slice Early:** Prove gameplay ASAP
3. **Polish Last:** Visual/audio polish after mechanics solid
**Your epics:**
{{list_of_epics}}
What order makes sense for {{game_name}}?"
### 5. Generate Epic Content
Based on the conversation, prepare two outputs:
**A. GDD Epic Summary (goes in gdd.md):**
```markdown
## Development Epics
### Epic Overview
| # | Epic Name | Scope | Dependencies | Est. Stories |
| --- | --------- | ----- | ------------ | ------------ |
{{epic_table}}
### Recommended Sequence
{{epic_sequence_with_rationale}}
### Vertical Slice
**The first playable milestone:** {{vertical_slice_description}}
```
**B. Detailed Epics File (goes in epics.md):**
```markdown
# {{game_name}} - Development Epics
## Epic Overview
{{epic_overview_table}}
---
## Epic 1: {{epic_1_name}}
### Goal
{{epic_1_goal}}
### Scope
**Includes:**
{{epic_1_includes}}
**Excludes:**
{{epic_1_excludes}}
### Dependencies
{{epic_1_dependencies}}
### Deliverable
{{epic_1_deliverable}}
### Stories
{{epic_1_stories_list}}
---
{{repeat_for_each_epic}}
```
### 6. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Epic Structure based on our conversation.
**For the GDD (gdd.md):**
[Show GDD epic summary]
**For the Epics file (epics.md):**
[Show detailed epics structure]
**Validation Check:**
- Does each epic deliver playable value?
- Is the sequence achievable?
- Are dependencies clear?
**Select an Option:**
[A] Advanced Elicitation - Refine epic organization
[P] Party Mode - Get perspectives on epic structure
[C] Continue - Save this and move to Success Metrics (Step 13 of 14)"
### 7. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF C (Continue):
- Append epic summary to `{outputFile}`
- Write detailed epics to `{epicsOutputFile}`
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [both epic content files saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Epics cover all major game features
- Each epic has clear scope and deliverable
- Dependencies identified and sequenced
- Both gdd.md and epics.md updated
- High-level stories drafted for each epic
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted
### SYSTEM FAILURE:
- Generating epics without user input
- Epics that don't deliver playable value
- Missing key features from GDD
- Not creating separate epics.md file
- Not presenting A/P/C menu after content generation
- Proceeding without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,251 @@
---
name: 'step-13-metrics'
description: 'Define success metrics for technical and gameplay evaluation'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-13-metrics.md'
nextStepFile: '{workflow_path}/steps/step-14-complete.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 13: Success Metrics
**Progress: Step 13 of 14** - Next: Final Steps
## STEP GOAL:
Define measurable success metrics for both technical performance and gameplay quality. These metrics help evaluate whether the game meets its design goals.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- CRITICAL: When loading next step with 'C', ensure entire file is read
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- Metrics should be measurable and actionable
- Focus on metrics that indicate design success, not just technical success
### Step-Specific Rules:
- Focus on defining what success looks like
- FORBIDDEN to generate metrics without user input
- Metrics should relate back to game pillars and goals
- Include both quantitative and qualitative measures
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Present A/P/C menu after generating content
- ONLY save when user chooses C (Continue)
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]` before loading next step
- FORBIDDEN to load next step until C is selected
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Deep dive into metric selection
- **P (Party Mode)**: Get perspectives on success criteria
- **C (Continue)**: Save the content to the document and proceed to next step
## CONTEXT BOUNDARIES:
- All GDD content from previous steps available
- Metrics should map to stated goals and pillars
- Technical metrics from performance requirements
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Technical Metrics Discovery
**Guide user through technical success criteria:**
"Let's define how we'll measure technical success for {{game_name}}.
**Technical Metric Categories:**
| Category | Example Metrics |
| --------------- | ------------------------------------------------ |
| **Performance** | Frame rate consistency, load times, memory usage |
| **Stability** | Crash rate, bug severity distribution |
| **Platform** | Certification pass rate, store review score |
| **Build** | Build time, test coverage, asset size |
**Your performance targets from earlier:**
- Frame rate: {{target_fps}}
- Platform: {{platform}}
**Questions to consider:**
1. What technical metrics matter most for {{game_type}}?
2. How will you measure performance in the field?
3. What's an acceptable crash rate?
4. Are there platform-specific metrics to track?
What technical metrics will indicate success for {{game_name}}?"
### 2. Gameplay Metrics Discovery
**Guide user through gameplay success criteria:**
"Now let's define gameplay metrics - how we know the design is working.
**Gameplay Metric Categories:**
| Category | Example Metrics |
| ----------------------- | ------------------------------------------------- |
| **Engagement** | Session length, sessions per week, retention |
| **Progression** | Completion rates, time-to-milestone, churn points |
| **Difficulty** | Death/retry rates, difficulty setting usage |
| **Feature Usage** | Which mechanics are used, feature discovery |
| **Player Satisfaction** | Ratings, reviews, NPS |
**Your game pillars are:** {{pillars}}
**Your goals are:** {{goals}}
**Questions to consider:**
1. How will you know if players are having the intended experience?
2. What retention rates would indicate success?
3. How will you identify frustration points?
4. What playtesting metrics will you track?
What gameplay metrics will indicate success for {{game_name}}?"
### 3. Qualitative Success Criteria
**Guide user through qualitative measures:**
"Finally, let's define qualitative success criteria - things that are harder to measure but equally important.
**Qualitative Criteria Examples:**
- 'Players describe the game using our pillar words'
- 'Streamers enjoy playing without instruction'
- 'Community creates fan content'
- 'Players recommend to friends'
- 'Reviews mention the unique selling points'
What qualitative signs would tell you {{game_name}} is successful?"
### 4. Generate Metrics Content
Based on the conversation, prepare the content:
```markdown
## Success Metrics
### Technical Metrics
{{technical_metrics_list}}
#### Key Technical KPIs
| Metric | Target | Measurement Method |
| ------ | ------ | ------------------ |
{{technical_kpi_table}}
### Gameplay Metrics
{{gameplay_metrics_list}}
#### Key Gameplay KPIs
| Metric | Target | Measurement Method |
| ------ | ------ | ------------------ |
{{gameplay_kpi_table}}
### Qualitative Success Criteria
{{qualitative_criteria_list}}
### Metric Review Cadence
{{when_and_how_metrics_will_be_reviewed}}
```
### 5. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Success Metrics based on our conversation.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 4]
**Validation Check:**
- Do metrics align with your game pillars?
- Are targets achievable and measurable?
- Can you actually collect this data?
**Select an Option:**
[A] Advanced Elicitation - Refine metric selection
[P] Party Mode - Get perspectives on success criteria
[C] Continue - Save this and move to Final Steps (Step 14 of 14)"
### 6. Handle Menu Selection
#### IF A (Advanced Elicitation):
- Execute {advancedElicitationTask} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF P (Party Mode):
- Execute {partyModeWorkflow} with the current content
- Ask user: "Accept these changes? (y/n)"
- If yes: Update content, return to A/P/C menu
- If no: Keep original, return to A/P/C menu
#### IF C (Continue):
- Append the final content to `{outputFile}`
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [metrics content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Technical metrics defined with targets
- Gameplay metrics tied to pillars and goals
- Qualitative criteria documented
- Metrics are actually measurable
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted
### SYSTEM FAILURE:
- Generating metrics without user input
- Metrics that can't be measured
- Missing connection to game pillars/goals
- Not presenting A/P/C menu after content generation
- Proceeding without user selecting 'C'
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,336 @@
---
name: 'step-14-complete'
description: 'Document out of scope items, capture assumptions, and provide handoff guidance'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd'
# File References
thisStepFile: '{workflow_path}/steps/step-14-complete.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/gdd.md'
epicsFile: '{output_folder}/epics.md'
# Workflow References
narrativeWorkflow: '{project-root}/_bmad/bmgd/workflows/2-design/narrative/workflow.yaml'
architectureWorkflow: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture/workflow.yaml'
---
# Step 14: Complete & Handoff
**Progress: Step 14 of 14** - GDD Complete!
## STEP GOAL:
Document what is explicitly out of scope, capture key assumptions and dependencies, and provide clear next steps for the game development process.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- NEVER generate content without user input
- CRITICAL: Read the complete step file before taking any action
- YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a veteran game designer facilitator collaborating with a creative peer
- This is the final step - ensure completeness
- Provide clear actionable next steps
### Step-Specific Rules:
- Focus on scope boundaries and assumptions
- Check if narrative workflow is recommended
- Provide concrete next steps based on workflow status
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Generate final sections without A/P/C menu (just confirmation)
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]`
- Present completion summary and next steps
## CONTEXT BOUNDARIES:
- All GDD content from previous steps available
- Check for `needs_narrative` flag from step 7
- Reference workflow-status if integrated with BMM
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Out of Scope Discovery
**Guide user through scope boundaries:**
"Let's document what is explicitly NOT in scope for {{game_name}} v1.0.
**Out of Scope Categories:**
| Category | Examples |
| ---------------- | -------------------------------------- |
| **Features** | Multiplayer, level editor, mod support |
| **Content** | Additional game modes, DLC areas |
| **Platforms** | Console ports, VR version |
| **Polish** | Full voice acting, orchestral score |
| **Localization** | Additional languages |
**Questions to consider:**
1. What features have you intentionally cut for v1.0?
2. What platforms are NOT in initial scope?
3. What post-launch content are you deferring?
4. What's 'nice to have' vs 'required for launch'?
What's explicitly out of scope for {{game_name}} v1.0?"
### 2. Assumptions and Dependencies Discovery
**Guide user through assumptions:**
"Now let's document key assumptions and dependencies.
**Assumption Categories:**
| Category | Examples |
| ------------- | ----------------------------------------------------------------- |
| **Technical** | 'Unity LTS will remain stable', 'Players have controllers' |
| **Team** | 'Art contractor available Q2', 'Solo developer capacity' |
| **External** | 'Steam review approval in 2 weeks', 'Asset store assets licensed' |
| **Market** | 'Genre remains popular', 'Pricing assumptions' |
**Dependency Categories:**
| Category | Examples |
| --------------- | ----------------------------------------- |
| **Third-party** | Middleware, plugins, asset licenses |
| **Services** | Backend providers, analytics, multiplayer |
| **Content** | External art, music, voice acting |
| **Platform** | SDK versions, certification requirements |
What assumptions is {{game_name}} built on? What external dependencies exist?"
### 3. Check Narrative Workflow Recommendation
**Check if game type suggested narrative:**
If `needs_narrative` flag is true (from step 7):
"**Narrative Recommendation:**
Based on your game type ({{game_type}}), a dedicated Narrative Design Document would benefit {{game_name}}. This covers:
- Story structure and arcs
- Character development
- World lore and history
- Dialogue framework
- Environmental storytelling
Would you like to create a Narrative Design Document as your next step?"
Store user response for next steps.
### 4. Generate Completion Content
Based on the conversation, prepare the content:
```markdown
## Out of Scope
{{out_of_scope_items}}
### Deferred to Post-Launch
{{post_launch_items}}
---
## Assumptions and Dependencies
### Key Assumptions
{{assumptions_list}}
### External Dependencies
{{dependencies_list}}
### Risk Factors
{{risks_based_on_assumptions}}
---
## Document Information
**Document:** {{game_name}} - Game Design Document
**Version:** 1.0
**Created:** {{date}}
**Author:** {{user_name}}
**Status:** Complete
### Change Log
| Version | Date | Changes |
| ------- | -------- | -------------------- |
| 1.0 | {{date}} | Initial GDD complete |
```
### 5. Present Completion Summary
"**GDD Complete!**
{{user_name}}, the Game Design Document for **{{game_name}}** is now complete!
**Document Summary:**
- **Game Type:** {{game_type}}
- **Platform:** {{platform}}
- **Epics:** {{epic_count}} development epics
- **Estimated Stories:** {{story_estimate}}
**Files Created:**
- `gdd.md` - Full Game Design Document
- `epics.md` - Detailed epic and story breakdown
**GDD Sections Completed:**
1. Executive Summary & Game Type
2. Platforms & Target Audience
3. Goals & Unique Selling Points
4. Core Gameplay (Pillars, Loop, Win/Loss)
5. Game Mechanics & Controls
6. {{game_type}} Specific Design
7. Progression & Balance
8. Level Design Framework
9. Art & Audio Direction
10. Technical Specifications
11. Development Epics
12. Success Metrics
13. Out of Scope & Assumptions
Do you want me to add or modify anything before we finalize?"
### 6. Present Next Steps
**After user confirms completion:**
"**Next Steps for {{game_name}}:**
{{if needs_narrative and user_wants_narrative}}
**Immediate Next Step:**
1. **Narrative Design Document** - Create story, characters, and world lore
- Command: `narrative` (Game Designer agent)
- Input: This GDD
- Output: narrative-design.md
{{/if}}
**Required Next Steps:**
1. **Game Architecture** - Define engine, tech stack, and system design
- Command: `create-architecture` (Game Architect agent)
- Input: This GDD
- Output: architecture.md
2. **Sprint Planning** - Set up your first development sprint
- Command: `sprint-planning` (Scrum Master agent)
- Input: GDD + epics.md
- Output: sprint-status.yaml
**Recommended Actions:**
- [ ] Review GDD with any team members or stakeholders
- [ ] Create a prototype for core gameplay validation
- [ ] Set up project repository and dev environment
- [ ] Gather reference materials for art direction
**Which would you like to do next?**
1. {{if needs_narrative}}Create Narrative Design Document{{else}}Create Game Architecture{{/if}}
2. Start Sprint Planning
3. Review the completed GDD
4. Exit workflow"
### 7. Handle User Selection
Based on user choice:
**If 1 (Narrative or Architecture):**
- Update frontmatter with final `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]`
- Provide handoff guidance for next workflow
**If 2 (Sprint Planning):**
- Update frontmatter with final stepsCompleted
- Provide handoff guidance for sprint planning
**If 3 (Review):**
- Present document summary
- Offer to highlight any sections
- Return to next steps menu
**If 4 (Exit):**
- Update frontmatter with final stepsCompleted
- Confirm GDD is saved
- Exit workflow gracefully
## CRITICAL STEP COMPLETION NOTE
This is the final step. Ensure:
- All content is saved to gdd.md
- Frontmatter shows all 14 steps completed
- User has clear actionable next steps
- Handoff to next workflow is smooth
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Out of scope clearly documented
- Assumptions and dependencies captured
- Narrative workflow recommendation handled
- Final document status updated
- Clear next steps provided
- Smooth handoff to next workflow
### SYSTEM FAILURE:
- Missing out of scope documentation
- Not checking for narrative flag
- No clear next steps provided
- Frontmatter not updated to show completion
- User left without actionable guidance
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
---
## GDD Workflow Complete
The GDD workflow transforms a game concept into a comprehensive design document through 14 collaborative steps:
1. **Initialize** - Set up workflow and discover input documents
2. **Context** - Determine game type and load relevant guide
3. **Platforms** - Define target platforms and audience
4. **Vision** - Establish goals, context, and USPs
5. **Core Gameplay** - Define pillars, loop, and win/loss
6. **Mechanics** - Detail player actions and controls
7. **Game Type** - Process genre-specific sections
8. **Progression** - Design player growth and balance
9. **Levels** - Structure playable content
10. **Art & Audio** - Establish aesthetic direction
11. **Technical** - Define performance requirements
12. **Epics** - Organize features into development units
13. **Metrics** - Define success criteria
14. **Complete** - Document scope and hand off
This step-file architecture ensures consistent, thorough GDD creation with user collaboration at every step.