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,229 @@
---
name: 'step-01-init'
description: 'Initialize narrative workflow, load GDD context, and assess narrative complexity'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative'
# File References
thisStepFile: '{workflow_path}/steps/step-01-init.md'
continueStepFile: '{workflow_path}/steps/step-01b-continue.md'
nextStepFile: '{workflow_path}/steps/step-02-foundation.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/narrative-design.md'
templateFile: '{workflow_path}/templates/narrative-template.md'
---
# Step 1: Initialize Narrative Workflow
**Progress: Step 1 of 11** - Next: Story Foundation
## STEP GOAL:
Validate workflow readiness, check for existing narrative document, load GDD context, and assess the appropriate level of narrative complexity for this 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
- NEVER mention time estimates
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a narrative design facilitator
- Help users craft THEIR story, not yours
- Narrative complexity should match the game
### Step-Specific Rules:
- Check for existing narrative before starting fresh
- Load GDD to understand game context
- Let user confirm narrative complexity level
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Wait for user confirmation at each checkpoint
- Update frontmatter `stepsCompleted: [1]` before loading next step
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Check Workflow Status
**Search for workflow status file:**
Check if `{output_folder}/bmgd-workflow-status.yaml` exists.
**If status file found:**
- Load and parse workflow_status section
- Check status of "narrative" workflow
- Determine if this is the expected next workflow
**Handle scenarios:**
- If already completed: Ask about overwriting
- If out of sequence: Warn and confirm continuation
- Set `standalone_mode` appropriately
### 2. Check for Existing Narrative
**Search for existing narrative document:**
Look for existing narrative files in {output_folder}:
- `*narrative*.md`
- `*story*.md`
**If existing narrative found:**
"I found an existing narrative document: `{{existing_file}}`
**Options:**
1. **Continue** - Resume from where you left off
2. **Start Fresh** - Begin a new narrative (will overwrite)
3. **Review** - Let me review the existing document first
Which would you like to do?"
**Handle selection:**
- If **Continue**: Load `{continueStepFile}`
- If **Start Fresh**: Continue with step 3
- If **Review**: Show document summary
### 3. Load GDD Context
**Search for GDD:**
Look for GDD files using patterns:
- `{output_folder}/*gdd*.md`
- `{output_folder}/*game-design*.md`
**If GDD not found:**
"**Note: GDD Not Found**
The Narrative workflow works best with a completed GDD.
**Options:**
1. Continue without GDD (I'll ask more questions)
2. Run GDD workflow first: `create-gdd`
Your choice:"
**If GDD found:**
Load and extract:
- `game_type`
- `game_name`
- Any existing narrative mentions
- Core mechanics and themes
### 4. Assess Narrative Complexity
"**Narrative Complexity Assessment**
Let's determine the right depth for your narrative design.
**Narrative Complexity Levels:**
| Level | Description | Examples |
| ------------ | ----------------------- | ------------------------------ |
| **Critical** | Story IS the game | Visual Novel, Text Adventure |
| **Heavy** | Story drives experience | Story RPG, Narrative Adventure |
| **Moderate** | Story enhances gameplay | Metroidvania, Horror, Tactics |
| **Light** | Story provides context | Most action, puzzle, arcade |
**Based on {{game_type}}, I'd suggest: {{suggested_complexity}}**
What level of narrative complexity does {{game_name}} have?"
### 5. Validate Complexity Choice
**If user selects Light:**
"**Light narrative games usually don't need a full Narrative Design Document.**
Your options:
1. **Proceed anyway** - Create full narrative document
2. **Quick narrative** - Just the essentials (premise, setting, key characters)
3. **Expand GDD** - Add narrative sections to existing GDD instead
What would you like to do?"
**Handle selection appropriately.**
### 6. Initialize Output Document
**If proceeding with full narrative:**
Create `{outputFile}` with frontmatter:
```markdown
---
title: 'Narrative Design Document'
project: '{{game_name}}'
date: '{{date}}'
author: '{{user_name}}'
version: '1.0'
stepsCompleted: [1]
status: 'in-progress'
narrativeComplexity: '{{selected_complexity}}'
gdd: '{{gdd_file}}'
---
# Narrative Design Document
## {{game_name}}
### Document Status
This narrative document is being created through the BMGD Narrative Workflow.
**Narrative Complexity:** {{selected_complexity}}
**Steps Completed:** 1 of 11 (Initialize)
---
_Content will be added as we progress through the workflow._
```
### 7. Proceed to Foundation Step
After initialization:
- Update frontmatter: `stepsCompleted: [1]`
- Load `{nextStepFile}`
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Workflow status checked appropriately
- Existing narrative check performed
- GDD loaded and analyzed (if available)
- Narrative complexity assessed with user
- Output document initialized with proper frontmatter
- Frontmatter updated with stepsCompleted: [1]
### SYSTEM FAILURE:
- Starting without complexity assessment
- Not checking for existing narrative
- Proceeding without user confirmation
- Missing frontmatter initialization
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,164 @@
---
name: 'step-01b-continue'
description: 'Continue an existing narrative workflow from where it left off'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative'
# File References
thisStepFile: '{workflow_path}/steps/step-01b-continue.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/narrative-design.md'
# Step Files (for routing)
step02: '{workflow_path}/steps/step-02-foundation.md'
step03: '{workflow_path}/steps/step-03-story.md'
step04: '{workflow_path}/steps/step-04-characters.md'
step05: '{workflow_path}/steps/step-05-world.md'
step06: '{workflow_path}/steps/step-06-dialogue.md'
step07: '{workflow_path}/steps/step-07-environmental.md'
step08: '{workflow_path}/steps/step-08-delivery.md'
step09: '{workflow_path}/steps/step-09-integration.md'
step10: '{workflow_path}/steps/step-10-production.md'
step11: '{workflow_path}/steps/step-11-complete.md'
---
# Step 1b: Continue Existing Narrative
**Resuming Narrative Workflow**
## STEP GOAL:
Load the existing narrative document, determine progress, and route to the appropriate next step.
## 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
- NEVER mention time estimates
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Step-Specific Rules:
- Parse frontmatter to determine completed steps
- Present summary of current progress
- Route to correct next step based on state
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Load Existing Narrative
**Read the existing narrative document:**
Load `{outputFile}` and parse the frontmatter to extract:
- `stepsCompleted` array
- `status`
- `project` name
- `narrativeComplexity`
- GDD reference
### 2. Analyze Progress
**Determine workflow state:**
Map completed steps to workflow progress:
- Step 1: Initialize
- Step 2: Foundation (premise, themes, structure)
- Step 3: Story (beats and pacing)
- Step 4: Characters (all characters and arcs)
- Step 5: World (world, history, locations)
- Step 6: Dialogue (dialogue systems)
- Step 7: Environmental (environmental storytelling)
- Step 8: Delivery (narrative delivery methods)
- Step 9: Integration (gameplay integration)
- Step 10: Production (scope and planning)
- Step 11: Complete
**Calculate next step:**
Find the highest completed step and determine the next step file to load.
### 3. Present Continuation Summary
"**Resuming Narrative Workflow**
{{user_name}}, I found your existing narrative for **{{game_name}}**.
**Progress:** Steps completed: {{stepsCompleted}}
**Narrative Complexity:** {{narrativeComplexity}}
**Sections Completed:**
{{list_of_completed_sections}}
**Current Status:**
- Last completed: {{last_step_name}}
- Next step: {{next_step_name}} (Step {{next_step_number}} of 11)
Would you like to:
1. **Continue** - Resume from {{next_step_name}}
2. **Review** - Show me what we've written so far
3. **Restart Step** - Redo the last completed step
Select an option:"
### 4. Handle User Selection
**If Continue:**
- Load the next step file based on `stepsCompleted`
**If Review:**
- Present summary of all completed sections
- Show key narrative elements (premise, characters, etc.)
- Return to continuation options
**If Restart Step:**
- Decrement stepsCompleted to remove last step
- Load the step file for the step being restarted
### 5. Route to Next Step
Based on next step number, load the appropriate step file:
| Next Step | File |
| --------- | -------- |
| 2 | {step02} |
| 3 | {step03} |
| 4 | {step04} |
| 5 | {step05} |
| 6 | {step06} |
| 7 | {step07} |
| 8 | {step08} |
| 9 | {step09} |
| 10 | {step10} |
| 11 | {step11} |
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Existing document loaded and parsed
- Progress accurately determined
- User presented with clear options
- Correct step file loaded based on state
### SYSTEM FAILURE:
- Failing to parse frontmatter correctly
- Loading wrong step file
- Not presenting continuation options
- Overwriting existing progress without confirmation
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,263 @@
---
name: 'step-02-foundation'
description: 'Define narrative premise, themes, tone, and story structure'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative'
# File References
thisStepFile: '{workflow_path}/steps/step-02-foundation.md'
nextStepFile: '{workflow_path}/steps/step-03-story.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/narrative-design.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 2: Story Foundation
**Progress: Step 2 of 11** - Next: Story Beats
## STEP GOAL:
Define the narrative foundation: premise, themes, tone/atmosphere, and overall story structure. These elements form the backbone of all narrative content.
## 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}`
- NEVER mention time estimates
### Role Reinforcement:
- You are a narrative design facilitator
- Help users articulate THEIR story vision
- The premise should come from the user
### Step-Specific Rules:
- FORBIDDEN to generate premise without user input
- Draw out user's ideas through questions
- Themes should resonate with user's intent
## 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]` before loading next step
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Explore themes deeper
- **P (Party Mode)**: Get perspectives on foundation
- **C (Continue)**: Save the content and proceed
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Narrative Premise Discovery
"Let's define the narrative foundation for **{{game_name}}**.
**First, the premise - your story's elevator pitch in 2-3 sentences.**
Good premises have:
- A protagonist with a clear goal
- An obstacle or conflict
- Stakes (what happens if they fail?)
**Examples:**
- \"A young knight discovers they're the last hope to stop an ancient evil, but must choose between saving the kingdom or their own family.\"
- \"After a mysterious pandemic, survivors must navigate a world where telling the truth is deadly but lying corrupts your soul.\"
What's the premise for {{game_name}}?"
### 2. Theme Discovery
"**Now let's identify your core themes.**
Themes are the underlying ideas or messages woven throughout the story.
**Common game themes:**
- Redemption, sacrifice, identity
- Power and corruption
- Hope vs. despair
- Nature vs. technology
- Freedom vs. control
- Family, loyalty, betrayal
**Questions to consider:**
- What questions does your story ask?
- What will players think about after playing?
- What emotions do you want to evoke?
What are 2-4 core themes for {{game_name}}?"
### 3. Tone and Atmosphere Discovery
"**Let's define the tone and atmosphere.**
Tone shapes how the story feels moment-to-moment.
**Tone spectrums:**
- Dark ←→ Lighthearted
- Serious ←→ Comedic
- Gritty ←→ Fantastical
- Intimate ←→ Epic
- Hopeful ←→ Melancholic
**Atmosphere elements:**
- Visual mood (colors, lighting)
- Audio mood (music style)
- Pacing (contemplative vs. urgent)
- Emotional register
Describe the tone and atmosphere for {{game_name}}:"
### 4. Story Structure Discovery
"**What story structure will you use?**
**Common structures:**
| Structure | Description |
| ------------------ | ------------------------------------------------------ |
| **3-Act** | Setup → Confrontation → Resolution |
| **Hero's Journey** | Campbell's monomyth (departure, initiation, return) |
| **Kishōtenketsu** | 4-act: Introduction → Development → Twist → Conclusion |
| **Episodic** | Self-contained episodes with overarching arc |
| **Branching** | Multiple paths and endings |
| **Freeform** | Player-driven, emergent narrative |
What structure fits {{game_name}}?"
### 5. Act Breakdown
"**Let's break down your story into acts/sections.**
Based on {{selected_structure}}:
{{structure_specific_prompts}}
Describe each act/section for {{game_name}}:"
### 6. Generate Foundation Content
Based on the conversation, prepare the content:
```markdown
## Story Foundation
### Narrative Premise
{{user_premise}}
### Core Themes
{{themes_list_with_descriptions}}
### Tone and Atmosphere
**Tone:** {{tone_description}}
**Atmosphere:** {{atmosphere_description}}
**Emotional Register:** {{emotional_goals}}
---
## Story Structure
### Structure Type
**{{structure_type}}**
{{structure_description}}
### Act Breakdown
{{act_breakdown_details}}
```
### 7. Present Content and Menu
Show the generated content to the user and present:
"I've drafted the Story Foundation based on our conversation.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 6]
**Validation Check:**
- Does the premise capture your vision?
- Do the themes resonate with your intent?
- Does the structure fit your gameplay?
**Select an Option:**
[A] Advanced Elicitation - Explore themes and structure deeper
[P] Party Mode - Get perspectives on foundation
[C] Continue - Save this and move to Story Beats (Step 3 of 11)"
### 8. 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]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [foundation content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Premise captured from user input
- Themes identified and described
- Tone and atmosphere defined
- Story structure selected and broken down
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2]
### SYSTEM FAILURE:
- Generating premise FOR user
- Generic themes not connected to user's vision
- Proceeding without structure breakdown
- Not presenting A/P/C menu after content
- 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,239 @@
---
name: 'step-03-story'
description: 'Define major story beats and narrative pacing'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative'
# File References
thisStepFile: '{workflow_path}/steps/step-03-story.md'
nextStepFile: '{workflow_path}/steps/step-04-characters.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/narrative-design.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: Story Beats
**Progress: Step 3 of 11** - Next: Characters
## STEP GOAL:
Define the major story beats (key narrative moments) and establish pacing and flow throughout the game experience.
## 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
- NEVER mention time estimates
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a narrative design facilitator
- Story beats are the skeleton of the narrative
- Help user identify key moments, don't create them
### Step-Specific Rules:
- FORBIDDEN to generate story beats without user input
- Guide user through beat mapping
- Connect beats to structure defined in Step 2
## 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]` before loading next step
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Explore beats and connections
- **P (Party Mode)**: Get perspectives on pacing
- **C (Continue)**: Save the content and proceed
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Story Beats Discovery
"**Let's map the major story beats for {{game_name}}.**
Story beats are significant events that drive the narrative forward.
**Key beat types:**
- **Inciting Incident** - What sets the story in motion?
- **Plot Points** - Major turning points
- **Midpoint** - Central pivot moment
- **Climax** - Highest tension point
- **Resolution** - How things conclude
**Based on your {{structure_type}} structure, list 10-20 key moments.**
Format:
1. [Beat name] - Brief description
2. [Beat name] - Brief description
What are the major story beats for {{game_name}}?"
### 2. Beat Placement
"**Now let's place these beats within your structure.**
For {{structure_type}}:
**Act 1 beats:**
Which of your beats belong in the setup/introduction?
**Act 2 beats:**
Which beats drive the main conflict/development?
**Act 3 beats:**
Which beats resolve the story?
Let's organize your beats:"
### 3. Pacing Discovery
"**Let's define the pacing and flow.**
**Pacing considerations:**
| Aspect | Options |
| ------------------- | --------------------------------- |
| **Overall tempo** | Slow burn vs. fast-paced |
| **Tension pattern** | Escalating vs. waves |
| **Story density** | Heavy sections vs. light sections |
| **Player agency** | Mandatory vs. optional content |
**Questions:**
- When should tension be highest?
- Where are the breathing room moments?
- How much story per gameplay hour?
Describe the pacing for {{game_name}}:"
### 4. Generate Story Content
Based on the conversation, prepare the content:
```markdown
## Story Beats
### Major Story Beats
{{beats_list_with_descriptions}}
### Beat Placement by Act
**Act 1: Setup**
{{act1_beats}}
**Act 2: Confrontation**
{{act2_beats}}
**Act 3: Resolution**
{{act3_beats}}
---
## Pacing and Flow
### Narrative Tempo
{{pacing_description}}
### Tension Curve
{{tension_pattern}}
### Story Density
{{density_by_section}}
### Key Moments
**Highest tension:** {{peak_moment}}
**Emotional climax:** {{emotional_peak}}
**Resolution beat:** {{resolution_moment}}
```
### 5. Present Content and Menu
Show the generated content to the user and present:
"I've mapped out the story beats and pacing.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 4]
**Validation Check:**
- Are all major moments captured?
- Does pacing match your vision?
- Are beats properly distributed?
**Select an Option:**
[A] Advanced Elicitation - Explore beats and connections
[P] Party Mode - Get perspectives on pacing
[C] Continue - Save this and move to Characters (Step 4 of 11)"
### 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]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [story content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- 10-20 story beats identified from user input
- Beats organized by act/structure
- Pacing and flow defined
- Tension curve established
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3]
### SYSTEM FAILURE:
- Generating beats FOR user
- Beats not connected to structure
- Missing pacing considerations
- Not presenting A/P/C menu after content
- 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,298 @@
---
name: 'step-04-characters'
description: 'Develop all characters including protagonists, antagonists, supporting cast, and their arcs'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative'
# File References
thisStepFile: '{workflow_path}/steps/step-04-characters.md'
nextStepFile: '{workflow_path}/steps/step-05-world.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/narrative-design.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: Characters
**Progress: Step 4 of 11** - Next: World Building
## STEP GOAL:
Develop all characters: protagonists, antagonists, and supporting cast. Define their backgrounds, motivations, relationships, and character arcs.
## 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
- NEVER mention time estimates
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a narrative design facilitator
- Characters should feel like user's creations
- Draw out personality through questions
### Step-Specific Rules:
- FORBIDDEN to create characters without user input
- Guide user through character development
- Ensure characters connect to themes
## 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
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Deep dive into characters
- **P (Party Mode)**: Get perspectives on character design
- **C (Continue)**: Save the content and proceed
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Protagonist Discovery
"**Let's develop the protagonist(s) of {{game_name}}.**
For each protagonist, tell me:
- **Name and description** - Who are they?
- **Background** - Where do they come from?
- **Motivation** - What do they want?
- **Strengths** - What are they good at?
- **Flaws** - What holds them back?
- **Internal conflict** - What do they struggle with inside?
- **External conflict** - What obstacles do they face?
Describe your protagonist(s):"
### 2. Antagonist Discovery
"**Now let's develop the antagonist(s).**
Great antagonists:
- Have understandable motivations
- Challenge the protagonist meaningfully
- May have sympathetic elements
- Represent or oppose the themes
For each antagonist:
- **Name and description**
- **Background** - How did they become this way?
- **Goals** - What do they want?
- **Methods** - How do they pursue their goals?
- **Relationship to protagonist**
- **Sympathetic elements** (if any)
Describe your antagonist(s):"
### 3. Supporting Cast Discovery
"**Let's flesh out the supporting characters.**
Common supporting roles:
- **Mentor** - Guides the protagonist
- **Ally/Companion** - Travels with protagonist
- **Foil** - Contrasts protagonist's traits
- **Love interest** - Romantic connection
- **Comic relief** - Lightens tone
- **Informant** - Provides information
For each supporting character:
- **Name and role**
- **Personality and traits**
- **Relationship to protagonist**
- **Function in story**
- **Key scenes/moments**
Describe your supporting characters:"
### 4. Character Arcs Discovery
"**Now let's map character arcs.**
A character arc shows how a character changes (or refuses to change) through the story.
**Arc types:**
- **Positive arc** - Character overcomes flaw, grows
- **Negative arc** - Character falls, corrupts
- **Flat arc** - Character's beliefs tested but hold
- **Transformation** - Character becomes something new
For major characters:
- **Starting state** - Who are they at the beginning?
- **Transformation moments** - What changes them?
- **Ending state** - Who are they at the end?
- **Lessons learned**
Describe the character arcs:"
### 5. Generate Characters Content
Based on the conversation, prepare the content:
```markdown
## Characters
### Protagonist(s)
#### {{protagonist_name}}
**Description:** {{description}}
**Background:** {{background}}
**Motivation:** {{motivation}}
**Strengths:** {{strengths}}
**Flaws:** {{flaws}}
**Conflicts:**
- Internal: {{internal_conflict}}
- External: {{external_conflict}}
---
### Antagonist(s)
#### {{antagonist_name}}
**Description:** {{description}}
**Background:** {{background}}
**Goals:** {{goals}}
**Methods:** {{methods}}
**Relationship to Protagonist:** {{relationship}}
**Sympathetic Elements:** {{if_any}}
---
### Supporting Characters
{{for_each_supporting_character}}
#### {{character_name}}
**Role:** {{role}}
**Personality:** {{personality}}
**Function:** {{story_function}}
**Key Moments:** {{key_scenes}}
{{/for_each}}
---
## Character Arcs
### {{character_name}} Arc
**Starting State:** {{beginning}}
**Transformation Moments:**
{{transformation_points}}
**Ending State:** {{end}}
**Lessons Learned:** {{lessons}}
{{repeat_for_each_major_character}}
```
### 6. Present Content and Menu
Show the generated content to the user and present:
"I've documented all characters and their arcs.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 5]
**Character Summary:**
- Protagonists: {{count}}
- Antagonists: {{count}}
- Supporting: {{count}}
**Validation Check:**
- Do characters connect to your themes?
- Are arcs meaningful and complete?
- Do relationships create conflict?
**Select an Option:**
[A] Advanced Elicitation - Deep dive into characters
[P] Party Mode - Get perspectives on character design
[C] Continue - Save this and move to World Building (Step 5 of 11)"
### 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]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [characters content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Protagonists fully developed from user input
- Antagonists with clear motivations
- Supporting cast defined with functions
- Character arcs mapped for major characters
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4]
### SYSTEM FAILURE:
- Creating characters without user input
- Flat characters without depth
- Missing character arcs
- Not presenting A/P/C menu after content
- 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,263 @@
---
name: 'step-05-world'
description: 'Build the world including setting, history, factions, and key locations'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative'
# File References
thisStepFile: '{workflow_path}/steps/step-05-world.md'
nextStepFile: '{workflow_path}/steps/step-06-dialogue.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/narrative-design.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: World Building
**Progress: Step 5 of 11** - Next: Dialogue Systems
## STEP GOAL:
Build the game's world including setting, history/backstory, factions/organizations, and key locations where the narrative unfolds.
## 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
- NEVER mention time estimates
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a narrative design facilitator
- World should support and enhance the story
- Draw out user's vision of their world
### Step-Specific Rules:
- FORBIDDEN to create world elements without user input
- Connect world to themes and story
- Focus on narrative-relevant world-building
## 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
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Explore world depth
- **P (Party Mode)**: Get perspectives on world-building
- **C (Continue)**: Save the content and proceed
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. World Overview Discovery
"**Let's build the world of {{game_name}}.**
Describe your world:
- **Setting** - Where and when does this take place?
- **World type** - Fantasy, sci-fi, modern, historical, etc.
- **World rules** - Magic systems? Technology level? Physical laws?
- **Atmosphere** - What mood does the world evoke?
- **What makes it unique?**
Describe the world:"
### 2. History and Backstory Discovery
"**What's the history of your world?**
Consider:
- **Major historical events** - Wars, discoveries, cataclysms?
- **How did the world reach its current state?**
- **Legends and myths** - What do people believe?
- **Past conflicts** - What shaped the present?
- **Secrets** - What is hidden or forgotten?
Describe the history:"
### 3. Factions Discovery (Optional)
"**Are there factions, organizations, or groups?** (Optional)
If applicable, for each faction:
- **Name and purpose**
- **Leadership and structure**
- **Goals and methods**
- **Relationships with other factions**
- **Role in the story**
Describe any factions:"
### 4. Locations Discovery
"**Describe the key locations in your world.**
For each significant location:
- **Name and description**
- **Narrative significance** - Why does it matter to the story?
- **Atmosphere and mood**
- **Key events that occur there**
- **Who controls/inhabits it?**
What are the key locations?"
### 5. Generate World Content
Based on the conversation, prepare the content:
```markdown
## World Building
### World Overview
**Setting:** {{setting_description}}
**World Type:** {{world_type}}
**World Rules:**
{{rules_and_systems}}
**Atmosphere:** {{world_atmosphere}}
**Unique Elements:** {{what_makes_it_unique}}
---
### History and Backstory
**Timeline Overview:**
{{historical_timeline}}
**Major Events:**
{{significant_events}}
**Legends and Myths:**
{{beliefs_and_legends}}
**Hidden Secrets:**
{{world_secrets}}
---
### Factions and Organizations
{{for_each_faction}}
#### {{faction_name}}
**Purpose:** {{purpose}}
**Leadership:** {{leadership}}
**Goals:** {{goals}}
**Methods:** {{methods}}
**Relationships:** {{faction_relationships}}
**Story Role:** {{narrative_function}}
{{/for_each}}
---
### Key Locations
{{for_each_location}}
#### {{location_name}}
**Description:** {{description}}
**Narrative Significance:** {{why_important}}
**Atmosphere:** {{mood}}
**Key Events:** {{events_here}}
**Inhabitants:** {{who_is_here}}
{{/for_each}}
```
### 6. Present Content and Menu
Show the generated content to the user and present:
"I've documented the world of {{game_name}}.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 5]
**World Summary:**
- Setting: {{setting}}
- Factions: {{count}}
- Key locations: {{count}}
**Validation Check:**
- Does the world support your themes?
- Are locations narratively significant?
- Is history relevant to the present story?
**Select an Option:**
[A] Advanced Elicitation - Explore world depth
[P] Party Mode - Get perspectives on world-building
[C] Continue - Save this and move to Dialogue Systems (Step 6 of 11)"
### 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]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [world content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- World setting clearly defined
- History connects to current story
- Factions developed (if applicable)
- Locations are narratively significant
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5]
### SYSTEM FAILURE:
- Creating world without user input
- World disconnected from story
- Generic locations without significance
- Not presenting A/P/C menu after content
- 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-06-dialogue'
description: 'Define dialogue style, key conversations, and branching systems'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative'
# File References
thisStepFile: '{workflow_path}/steps/step-06-dialogue.md'
nextStepFile: '{workflow_path}/steps/step-07-environmental.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/narrative-design.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: Dialogue Systems
**Progress: Step 6 of 11** - Next: Environmental Storytelling
## STEP GOAL:
Define dialogue style, key conversations, and branching dialogue systems if applicable.
## 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
- NEVER mention time estimates
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a narrative design facilitator
- Dialogue is how characters come alive
- Style should match tone and setting
### Step-Specific Rules:
- FORBIDDEN to write dialogue without user direction
- Define style and systems, not actual dialogue
- Consider technical implementation implications
## 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
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Explore dialogue depth
- **P (Party Mode)**: Get perspectives on dialogue approach
- **C (Continue)**: Save the content and proceed
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Dialogue Style Discovery
"**Let's define how characters speak in {{game_name}}.**
**Style considerations:**
| Aspect | Options |
| ------------- | ---------------------------- |
| **Formality** | Formal ←→ Casual |
| **Period** | Period-appropriate ←→ Modern |
| **Length** | Verbose ←→ Concise |
| **Humor** | Serious ←→ Comedic |
| **Profanity** | None ←→ Heavy |
**Questions:**
- How do different characters speak differently?
- Are there speech patterns or verbal tics?
- What's the overall voice of the game?
Describe your dialogue style:"
### 2. Key Conversations Discovery
"**List key conversations/dialogue moments.**
For each important conversation:
- **Who is involved?**
- **When does it occur?**
- **What's discussed?**
- **Narrative purpose** - What does it accomplish?
- **Emotional tone**
What are the key conversations in {{game_name}}?"
### 3. Branching Dialogue Discovery
"**Does {{game_name}} have branching dialogue?**
If yes, describe:
- **How many branches/paths?**
- **What determines branches?** (player choice, stats, flags)
- **Do branches converge or stay separate?**
- **How much unique dialogue?**
- **What are the consequences of choices?**
Describe your branching system (or indicate N/A):"
### 4. Generate Dialogue Content
Based on the conversation, prepare the content:
```markdown
## Dialogue Framework
### Dialogue Style
**Overall Voice:** {{dialogue_voice}}
**Style Elements:**
- Formality: {{formality_level}}
- Period: {{period_style}}
- Verbosity: {{verbosity}}
- Humor: {{humor_level}}
- Profanity: {{profanity_level}}
**Character Voice Distinctions:**
{{how_characters_differ}}
---
### Key Conversations
{{for_each_conversation}}
#### {{conversation_name}}
**Participants:** {{who}}
**When:** {{timing}}
**Topic:** {{what_discussed}}
**Purpose:** {{narrative_function}}
**Tone:** {{emotional_tone}}
{{/for_each}}
---
### Branching Dialogue System
{{if_branching}}
**System Type:** {{branching_type}}
**Branch Triggers:** {{what_causes_branches}}
**Branch Scope:**
- Total branches: {{branch_count}}
- Convergence: {{do_they_converge}}
- Unique content: {{percentage_unique}}
**Consequence System:**
{{how_choices_matter}}
{{/if_branching}}
{{if_not_branching}}
**System:** Linear dialogue
**Notes:** {{why_linear}}
{{/if_not_branching}}
```
### 5. Present Content and Menu
Show the generated content to the user and present:
"I've documented the dialogue framework.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 4]
**Dialogue Summary:**
- Style: {{style_summary}}
- Key conversations: {{count}}
- Branching: {{yes_no}}
**Validation Check:**
- Does style match your tone?
- Are key conversations identified?
- Is branching scope realistic?
**Select an Option:**
[A] Advanced Elicitation - Explore dialogue depth
[P] Party Mode - Get perspectives on dialogue approach
[C] Continue - Save this and move to Environmental Storytelling (Step 7 of 11)"
### 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 [dialogue content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Dialogue style clearly defined
- Key conversations identified
- Branching system documented (if applicable)
- Style matches game tone
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6]
### SYSTEM FAILURE:
- Writing actual dialogue without direction
- Style disconnected from tone
- Missing branching documentation
- Not presenting A/P/C menu after content
- 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,245 @@
---
name: 'step-07-environmental'
description: 'Plan environmental storytelling including visual, audio, and found documents'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative'
# File References
thisStepFile: '{workflow_path}/steps/step-07-environmental.md'
nextStepFile: '{workflow_path}/steps/step-08-delivery.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/narrative-design.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Step 7: Environmental Storytelling
**Progress: Step 7 of 11** - Next: Narrative Delivery
## STEP GOAL:
Define how story is told through the environment: visual storytelling, audio storytelling, and found documents/collectibles.
## 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
- NEVER mention time estimates
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a narrative design facilitator
- Show, don't tell - environmental storytelling is powerful
- Help user think beyond dialogue
### Step-Specific Rules:
- FORBIDDEN to design environmental narrative without user input
- Connect environmental elements to story
- Consider implementation effort
## 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]` before loading next step
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Explore environmental depth
- **P (Party Mode)**: Get perspectives on environmental storytelling
- **C (Continue)**: Save the content and proceed
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Visual Storytelling Discovery
"**How will you tell story through visuals in {{game_name}}?**
**Visual storytelling elements:**
- **Set dressing and props** - What objects tell stories?
- **Environmental damage/aftermath** - What happened here?
- **Visual symbolism** - Recurring images with meaning
- **Color and lighting** - Mood and meaning through visuals
- **Character design details** - What do appearances reveal?
How will visuals tell story in {{game_name}}?"
### 2. Audio Storytelling Discovery
"**How will audio contribute to storytelling?**
**Audio storytelling elements:**
- **Ambient sounds** - What do players hear in the world?
- **Music emotional cues** - How does music guide feeling?
- **Voice acting** - How is it used beyond dialogue?
- **Audio logs/recordings** - Found audio content?
- **Sound design** - Sounds that carry meaning
How will audio tell story in {{game_name}}?"
### 3. Found Documents Discovery
"**Will you have found documents?** (Journals, notes, emails, etc.)
If yes, describe:
- **Types of documents** - What forms do they take?
- **How many** - Approximate count
- **What they reveal** - Backstory? World-building? Character?
- **Optional vs required** - Must players find them?
- **Reward for finding** - Achievement? Story unlock? Lore only?
Describe your found documents (or indicate N/A):"
### 4. Generate Environmental Content
Based on the conversation, prepare the content:
```markdown
## Environmental Storytelling
### Visual Storytelling
**Set Dressing:**
{{set_dressing_approach}}
**Environmental Details:**
{{environmental_storytelling_examples}}
**Visual Symbolism:**
{{symbolic_elements}}
**Color and Lighting:**
{{color_lighting_approach}}
---
### Audio Storytelling
**Ambient Design:**
{{ambient_sound_approach}}
**Music Integration:**
{{music_storytelling}}
**Voice Elements:**
{{voice_beyond_dialogue}}
**Sound Design Narrative:**
{{meaningful_sounds}}
---
### Found Documents
{{if_has_documents}}
**Document Types:**
{{document_types}}
**Quantity:** {{approximate_count}}
**Content Focus:**
{{what_documents_reveal}}
**Discovery:**
- Required: {{required_documents}}
- Optional: {{optional_documents}}
**Rewards:** {{finding_rewards}}
{{/if_has_documents}}
{{if_no_documents}}
**Approach:** No found documents
**Rationale:** {{why_no_documents}}
{{/if_no_documents}}
```
### 5. Present Content and Menu
Show the generated content to the user and present:
"I've documented the environmental storytelling approach.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 4]
**Environmental Summary:**
- Visual elements: Defined
- Audio elements: Defined
- Found documents: {{yes_no}}
**Validation Check:**
- Does visual storytelling match your world?
- Is audio approach realistic for scope?
- Are found documents well-integrated?
**Select an Option:**
[A] Advanced Elicitation - Explore environmental depth
[P] Party Mode - Get perspectives on environmental storytelling
[C] Continue - Save this and move to Narrative Delivery (Step 8 of 11)"
### 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]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [environmental content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Visual storytelling approach defined
- Audio storytelling integrated
- Found documents documented (if applicable)
- Elements connect to story themes
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6, 7]
### SYSTEM FAILURE:
- Creating environmental details without user input
- Elements disconnected from story
- Missing audio considerations
- Not presenting A/P/C menu after content
- 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-08-delivery'
description: 'Design narrative delivery methods including cutscenes, in-game storytelling, and endings'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative'
# File References
thisStepFile: '{workflow_path}/steps/step-08-delivery.md'
nextStepFile: '{workflow_path}/steps/step-09-integration.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/narrative-design.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: Narrative Delivery
**Progress: Step 8 of 11** - Next: Gameplay Integration
## STEP GOAL:
Define how narrative content is delivered to players: cutscenes, in-game storytelling, optional content, and ending structures.
## 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
- NEVER mention time estimates
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a narrative design facilitator
- Delivery method affects player experience
- Balance story delivery with gameplay
### Step-Specific Rules:
- FORBIDDEN to decide delivery without user input
- Consider production effort for each method
- Match delivery to game type
## 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
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Explore delivery methods
- **P (Party Mode)**: Get perspectives on delivery approach
- **C (Continue)**: Save the content and proceed
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Cutscenes Discovery
"**How will you use cutscenes in {{game_name}}?**
**Cutscene considerations:**
- **Quantity** - How many major cutscenes?
- **Length** - Average duration?
- **Style** - Real-time rendered? Pre-rendered? Animated?
- **Skippable** - Can players skip?
- **Interactive** - Any QTEs or choices during cutscenes?
Describe your cutscene approach:"
### 2. In-Game Storytelling Discovery
"**How will story be delivered during gameplay?**
**In-game storytelling methods:**
- **NPC conversations** - Talking to characters
- **Radio/comm chatter** - Voice in player's ear
- **Environmental cues** - Reading the world
- **Player actions** - Story through doing
- **UI elements** - Quest logs, journals, etc.
**Balance considerations:**
- Show vs. tell - How much is shown vs. explained?
- Interruption tolerance - How often stop for story?
- Player control - Can players skip/speed up?
How will you deliver story during gameplay?"
### 3. Optional Content Discovery
"**What narrative content is optional?**
**Optional content types:**
- **Side quests** - Optional story missions
- **Collectible lore** - World-building items
- **Optional conversations** - Extra NPC dialogue
- **Secret endings** - Hidden conclusions
- **Extended content** - Post-game, NG+, DLC hooks
What optional narrative content will {{game_name}} have?"
### 4. Endings Discovery
"**If your game has multiple endings, describe them.**
**Ending considerations:**
- **How many endings?**
- **What determines the ending?** (choices, stats, completion)
- **Ending variety** - Minor variations vs. drastically different
- **True/golden ending** - Is there a "best" ending?
- **Replayability** - Can players see all endings?
Describe your ending structure (or indicate single ending):"
### 5. Generate Delivery Content
Based on the conversation, prepare the content:
```markdown
## Narrative Delivery
### Cutscenes
**Quantity:** {{cutscene_count}}
**Average Length:** {{typical_duration}}
**Style:** {{cutscene_style}}
**Skippable:** {{yes_no}}
**Interactive Elements:** {{if_any}}
**Major Cutscenes:**
{{list_of_major_cutscenes}}
---
### In-Game Storytelling
**Primary Methods:**
{{delivery_methods_list}}
**Show vs. Tell Balance:** {{balance_description}}
**Interruption Approach:** {{how_often_story_stops_gameplay}}
**Player Control:** {{skip_speedup_options}}
---
### Optional Content
{{for_each_optional_type}}
**{{content_type}}:**
{{description_and_scope}}
{{/for_each}}
---
### Ending Structure
{{if_multiple_endings}}
**Number of Endings:** {{ending_count}}
**Ending Triggers:** {{what_determines_ending}}
**Ending Variety:**
{{description_of_differences}}
**True Ending:** {{if_exists}}
**Replayability:** {{how_to_see_all}}
{{/if_multiple_endings}}
{{if_single_ending}}
**Ending Type:** Single ending
**Description:** {{ending_approach}}
{{/if_single_ending}}
```
### 6. Present Content and Menu
Show the generated content to the user and present:
"I've documented the narrative delivery approach.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 5]
**Delivery Summary:**
- Cutscenes: {{count_or_none}}
- In-game methods: {{methods_list}}
- Optional content: {{types}}
- Endings: {{single_or_multiple}}
**Validation Check:**
- Is delivery method realistic for scope?
- Does it match your narrative complexity?
- Are endings meaningful?
**Select an Option:**
[A] Advanced Elicitation - Explore delivery methods
[P] Party Mode - Get perspectives on delivery approach
[C] Continue - Save this and move to Gameplay Integration (Step 9 of 11)"
### 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]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [delivery content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Cutscene approach defined
- In-game delivery methods established
- Optional content scoped
- Ending structure documented
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8]
### SYSTEM FAILURE:
- Deciding delivery without user input
- Methods unrealistic for scope
- Missing ending documentation
- Not presenting A/P/C menu after content
- 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,255 @@
---
name: 'step-09-integration'
description: 'Define how narrative integrates with gameplay including gating, agency, and ludonarrative harmony'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative'
# File References
thisStepFile: '{workflow_path}/steps/step-09-integration.md'
nextStepFile: '{workflow_path}/steps/step-10-production.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/narrative-design.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: Gameplay Integration
**Progress: Step 9 of 11** - Next: Production Planning
## STEP GOAL:
Define how narrative integrates with gameplay: story-gameplay connection, progression gating, and player agency within the narrative.
## 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
- NEVER mention time estimates
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a narrative design facilitator
- Ludonarrative harmony matters
- Story and gameplay should reinforce each other
### Step-Specific Rules:
- FORBIDDEN to design integration without user input
- Consider player experience flow
- Address potential ludonarrative dissonance
## 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
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Explore integration depth
- **P (Party Mode)**: Get perspectives on integration
- **C (Continue)**: Save the content and proceed
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Narrative-Gameplay Connection Discovery
"**How does narrative integrate with gameplay in {{game_name}}?**
**Integration questions:**
- Does story unlock new mechanics or abilities?
- Do mechanics reflect the themes?
- Is there harmony between what player DOES and what story SAYS?
- What's the balance of story vs. gameplay sections?
**Ludonarrative consideration:**
Games work best when mechanics and narrative tell the same story. A game about pacifism shouldn't require combat.
Describe how narrative and gameplay connect:"
### 2. Story Gating Discovery
"**How does story gate progression?**
**Gating types:**
- **Hard gates** - Must complete story to proceed
- **Soft gates** - Story available but optional
- **Skill gates** - Narrative rewards for mastery
- **Exploration gates** - Story found through exploring
**Questions:**
- What areas are story-locked?
- What triggers cutscenes?
- What story beats are mandatory?
- What's optional vs. required?
How does story gate progress in {{game_name}}?"
### 3. Player Agency Discovery
"**How much narrative agency does the player have?**
**Agency spectrum:**
- **Full agency** - Player creates their own story
- **Meaningful choices** - Player shapes outcomes
- **Flavor choices** - Player affects tone, not outcome
- **Witness** - Player observes a fixed story
**Questions:**
- Can player affect the story?
- Are choices meaningful or cosmetic?
- How much role-playing freedom?
- Is the narrative predetermined or dynamic?
Describe player agency in {{game_name}}:"
### 4. Generate Integration Content
Based on the conversation, prepare the content:
```markdown
## Gameplay Integration
### Narrative-Gameplay Connection
**Integration Approach:**
{{integration_description}}
**Mechanic-Theme Alignment:**
{{how_mechanics_reflect_themes}}
**Story-Gameplay Balance:**
{{balance_description}}
**Ludonarrative Considerations:**
{{harmony_or_dissonance_notes}}
---
### Story Gating
**Gating Approach:** {{gating_type}}
**Story-Locked Elements:**
{{what_requires_story_progress}}
**Cutscene Triggers:**
{{when_cutscenes_play}}
**Mandatory Story Beats:**
{{required_narrative_content}}
**Optional Narrative:**
{{skippable_content}}
---
### Player Agency
**Agency Level:** {{agency_type}}
**Player Influence:**
{{what_player_can_affect}}
**Choice System:**
{{if_has_choices}}
- Choice types: {{choice_types}}
- Consequence scope: {{how_choices_matter}}
- Timing: {{when_choices_occur}}
{{/if_has_choices}}
**Role-Playing Freedom:**
{{roleplay_options}}
```
### 5. Present Content and Menu
Show the generated content to the user and present:
"I've documented the gameplay-narrative integration.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 4]
**Integration Summary:**
- Connection: {{integration_type}}
- Gating: {{gating_approach}}
- Agency: {{agency_level}}
**Validation Check:**
- Do mechanics support themes?
- Is gating appropriate for your game?
- Is agency level what you want?
**Select an Option:**
[A] Advanced Elicitation - Explore integration depth
[P] Party Mode - Get perspectives on integration
[C] Continue - Save this and move to Production Planning (Step 10 of 11)"
### 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]`
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [integration content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Narrative-gameplay connection defined
- Gating structure documented
- Player agency level established
- Ludonarrative harmony considered
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9]
### SYSTEM FAILURE:
- Designing integration without user input
- Ignoring ludonarrative harmony
- Missing agency documentation
- Not presenting A/P/C menu after content
- 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,263 @@
---
name: 'step-10-production'
description: 'Plan production scope including writing estimates, localization, and voice acting'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative'
# File References
thisStepFile: '{workflow_path}/steps/step-10-production.md'
nextStepFile: '{workflow_path}/steps/step-11-complete.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/narrative-design.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: Production Planning
**Progress: Step 10 of 11** - Next: Complete
## STEP GOAL:
Plan the production scope for narrative content: writing scope estimates, localization considerations, and voice acting plans.
## 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
- NEVER mention time estimates
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a narrative design facilitator
- Production planning ensures realistic scope
- Help user understand what they're committing to
### Step-Specific Rules:
- FORBIDDEN to estimate scope without user input
- Help user think through production needs
- Be realistic about effort required
## 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
## COLLABORATION MENUS (A/P/C):
- **A (Advanced Elicitation)**: Explore production details
- **P (Party Mode)**: Get perspectives on scope
- **C (Continue)**: Save the content and proceed
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Writing Scope Discovery
"**Let's estimate the writing scope for {{game_name}}.**
**Scope elements:**
- **Word count estimate** - Total written content
- **Scene/chapter count** - Major narrative sections
- **Dialogue lines** - Approximate line count
- **Branching complexity** - How much unique content per path?
**For reference:**
- Light narrative game: ~5,000-15,000 words
- Moderate narrative: ~15,000-50,000 words
- Heavy narrative: ~50,000-150,000 words
- Story-driven/Visual novel: 100,000+ words
Estimate your writing scope:"
### 2. Localization Discovery
"**Are you planning localization?**
**Localization considerations:**
- **Target languages** - Which languages?
- **Cultural adaptation** - What needs to change per region?
- **Text expansion** - Some languages use 30% more space
- **UI implications** - Can UI handle longer text?
- **Audio implications** - Will you dub or subtitle?
Describe your localization plans (or indicate English-only):"
### 3. Voice Acting Discovery
"**What are your voice acting plans?**
**Voice acting scope:**
- **Fully voiced** - All dialogue recorded
- **Partially voiced** - Key scenes only
- **Grunts/barks only** - No full dialogue
- **Text only** - No voice acting
**If voiced:**
- Number of characters needing voices?
- Approximate dialogue volume?
- Professional or placeholder voices?
Describe your voice acting approach:"
### 4. Generate Production Content
Based on the conversation, prepare the content:
```markdown
## Production Planning
### Writing Scope
**Estimated Word Count:** {{word_count}}
**Content Breakdown:**
- Main story: {{main_story_words}}
- Side content: {{side_content_words}}
- Environmental/lore: {{lore_words}}
- UI/system text: {{ui_words}}
**Scene Count:** {{scene_count}}
**Dialogue Lines:** {{line_count}}
**Branching Complexity:**
{{branching_impact_on_scope}}
---
### Localization
{{if_localizing}}
**Target Languages:**
{{language_list}}
**Cultural Adaptation Notes:**
{{adaptation_needs}}
**Technical Considerations:**
- Text expansion buffer: {{percentage}}
- UI flexibility: {{notes}}
- Audio approach: {{dub_or_subtitle}}
{{/if_localizing}}
{{if_english_only}}
**Approach:** English only
**Future consideration:** {{maybe_later_notes}}
{{/if_english_only}}
---
### Voice Acting
**Approach:** {{voice_acting_level}}
{{if_voiced}}
**Characters Needing Voices:** {{character_count}}
**Dialogue Volume:** {{line_count_for_recording}}
**Voice Cast Notes:**
{{casting_considerations}}
**Recording Approach:**
{{professional_or_placeholder}}
{{/if_voiced}}
{{if_not_voiced}}
**Rationale:** {{why_no_voice}}
{{/if_not_voiced}}
```
### 5. Present Content and Menu
Show the generated content to the user and present:
"I've documented the production planning.
**Here's what I'll add to the document:**
[Show the complete markdown content from step 4]
**Production Summary:**
- Writing: ~{{word_count}} words
- Localization: {{languages_or_none}}
- Voice acting: {{level}}
**Validation Check:**
- Is scope realistic for your resources?
- Have you considered all production needs?
- Are localization needs addressed?
**Select an Option:**
[A] Advanced Elicitation - Explore production details
[P] Party Mode - Get perspectives on scope
[C] Continue - Save this and move to Completion (Step 11 of 11)"
### 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 [production content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Writing scope estimated
- Localization needs addressed
- Voice acting approach defined
- Realistic production expectations set
- A/P/C menu presented and handled correctly
- Frontmatter updated with stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
### SYSTEM FAILURE:
- Estimating scope without user input
- Missing major production considerations
- Unrealistic expectations set
- Not presenting A/P/C menu after content
- 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,332 @@
---
name: 'step-11-complete'
description: 'Complete the narrative workflow with final summary, visualizations, and handoff'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative'
# File References
thisStepFile: '{workflow_path}/steps/step-11-complete.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/narrative-design.md'
# Handoff References
architectureWorkflow: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture/workflow.yaml'
---
# Step 11: Complete
**Progress: Step 11 of 11** - Narrative Design Complete!
## STEP GOAL:
Generate final visualizations (character relationships, timeline), capture references, update workflow status, and provide clear handoff guidance.
## 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
- NEVER mention time estimates
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- You are a narrative design facilitator
- This is the final step - ensure completeness
- Provide actionable next steps
### Step-Specific Rules:
- Generate relationship map from characters defined
- Generate timeline from story beats
- Capture any references user wants to note
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Generate final visualizations
- Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]`
- Present completion summary and next steps
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Generate Character Relationship Map
**Create text-based relationship visualization:**
Based on all characters documented, generate:
```markdown
## Appendix: Character Relationships
### Relationship Map
```
[ANTAGONIST]
|
(opposes)
|
[MENTOR] ---(guides)--- [PROTAGONIST] ---(allies)--- [COMPANION]
|
(romantic)
|
[LOVE INTEREST]
```
### Relationship Key
- {{character_1}} → {{character_2}}: {{relationship_type}}
- {{character_2}} → {{character_3}}: {{relationship_type}}
{{continue_for_all_relationships}}
```
### 2. Generate Story Timeline
**Create timeline visualization:**
Based on story beats documented, generate:
```markdown
## Appendix: Story Timeline
### Chronological Events
```
[BACKSTORY]
|
v
[ACT 1: SETUP]
├── {{beat_1}}
├── {{beat_2}}
└── {{inciting_incident}}
|
v
[ACT 2: CONFRONTATION]
├── {{beat_3}}
├── {{midpoint}}
├── {{beat_4}}
└── {{crisis}}
|
v
[ACT 3: RESOLUTION]
├── {{climax}}
└── {{resolution}}
```
### Timeline Notes
{{any_timeline_clarifications}}
```
### 3. References Discovery
"**Do you have any references or inspirations to note?**
This helps future writers understand your vision:
- Books, movies, games that inspired you
- Reference materials for tone/style
- Mood boards or concept art references
- Theme or narrative references
What references should be documented? (or 'none'):"
### 4. Finalize Document
**Update the document with final content:**
Add relationship map and timeline to document.
**Final frontmatter:**
```yaml
---
title: 'Narrative Design Document'
project: '{{game_name}}'
date: '{{date}}'
author: '{{user_name}}'
version: '1.0'
stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
status: 'complete'
narrativeComplexity: '{{complexity}}'
---
```
### 5. Update Workflow Status
**If not in standalone mode:**
Load `{output_folder}/bmgd-workflow-status.yaml` and:
- Update `narrative` status to the output file path
- Preserve all comments and structure
- Determine next workflow in sequence
### 6. Present Completion Summary
"**Narrative Design Complete!**
{{user_name}}, the Narrative Design Document for **{{game_name}}** is complete!
**Narrative Summary:**
- **Premise:** {{premise_summary}}
- **Themes:** {{themes_list}}
- **Characters:** {{character_count}} ({{protagonist_count}} protagonist, {{antagonist_count}} antagonist, {{supporting_count}} supporting)
- **Story Structure:** {{structure_type}}
- **Writing Scope:** ~{{word_count}} words
**Sections Completed:**
1. Story Foundation (premise, themes, structure)
2. Story Beats (major moments, pacing)
3. Characters (all characters and arcs)
4. World Building (setting, history, locations)
5. Dialogue Framework (style, key conversations)
6. Environmental Storytelling (visual, audio, documents)
7. Narrative Delivery (cutscenes, in-game, endings)
8. Gameplay Integration (gating, agency)
9. Production Planning (scope, localization, voice)
10. Appendices (relationships, timeline)
**Document saved to:** `{outputFile}`
Do you want to review or adjust anything before we finalize?"
### 7. Handle Review Requests
**If user wants to review:**
"Which would you like to review?
1. Story Foundation
2. Story Beats
3. Characters
4. World Building
5. Dialogue
6. Environmental Storytelling
7. Narrative Delivery
8. Gameplay Integration
9. Production Planning
10. Full Document
Select a section:"
### 8. Present Next Steps Menu
"**Recommended Next Steps:**
1. **Technical Architecture** - Define how narrative systems will be implemented
- Workflow: `create-architecture`
- Input: GDD + Narrative Design
- Output: Technical architecture document
2. **Create Script/Screenplay** - Write the actual dialogue and scenes
- This is done outside the workflow
- Use the Narrative Design as your blueprint
3. **Review with Team** - Share with collaborators for feedback
4. **Exit Workflow**
**Which would you like to do next?**
1. Start Architecture workflow
2. Review the narrative document
3. Exit workflow"
### 9. Handle User Selection
Based on user choice:
**If 1 (Architecture):**
- Confirm document is saved
- Provide handoff guidance
- Note narrative will inform technical decisions
**If 2 (Review):**
- Present full document or requested section
- Return to next steps menu
**If 3 (Exit):**
- Confirm document is saved and complete
- Exit workflow gracefully
### 10. Final Completion Message
"**Narrative Design Complete!**
**Deliverables:**
- Narrative design saved to: `{outputFile}`
- {{character_count}} characters documented
- {{beat_count}} story beats mapped
- {{location_count}} locations defined
{{#if standalone_mode != true}}
**Status Updated:**
- Progress tracking updated: narrative marked complete
- Next recommended: Architecture workflow
{{/if}}
**Your Narrative Is Ready For:**
- Script/screenplay writing
- Technical implementation planning
- Team review and iteration
- Production scheduling
Excellent work crafting the narrative for {{game_name}}, {{user_name}}!"
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Relationship map generated
- Timeline generated
- References captured
- All content saved to document
- Workflow status updated (if tracking)
- Frontmatter shows all 11 steps completed
- User has clear next steps
### SYSTEM FAILURE:
- Missing visualizations
- Incomplete document
- Status not updated when tracking
- No clear next steps provided
- User left without guidance
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
---
## Narrative Design Workflow Complete
The Narrative Design workflow creates comprehensive narrative documentation through 11 collaborative steps:
1. **Initialize** - Validate readiness, assess complexity
2. **Foundation** - Premise, themes, tone, structure
3. **Story** - Beats and pacing
4. **Characters** - All characters and arcs
5. **World** - Setting, history, factions, locations
6. **Dialogue** - Style and systems
7. **Environmental** - Environmental storytelling
8. **Delivery** - Narrative delivery methods
9. **Integration** - Gameplay-narrative connection
10. **Production** - Scope and planning
11. **Complete** - Visualizations and handoff
This step-file architecture ensures consistent, thorough narrative design with user collaboration at every step.