---
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.
