diff --git a/src/modules/bmgd/agents/game-architect.agent.yaml b/src/modules/bmgd/agents/game-architect.agent.yaml index 3bd02c7a..ca2aeb13 100644 --- a/src/modules/bmgd/agents/game-architect.agent.yaml +++ b/src/modules/bmgd/agents/game-architect.agent.yaml @@ -27,7 +27,7 @@ agent: menu: - trigger: workflow-status - workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" + workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml" description: Get workflow status or initialize a workflow if not already done - trigger: create-architecture diff --git a/src/modules/bmgd/agents/game-designer.agent.yaml b/src/modules/bmgd/agents/game-designer.agent.yaml index f418bc01..3c54d873 100644 --- a/src/modules/bmgd/agents/game-designer.agent.yaml +++ b/src/modules/bmgd/agents/game-designer.agent.yaml @@ -24,7 +24,7 @@ agent: menu: - trigger: workflow-status - workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" + workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml" description: Get workflow status or initialize a workflow if not already done - trigger: brainstorm-game diff --git a/src/modules/bmgd/agents/game-dev.agent.yaml b/src/modules/bmgd/agents/game-dev.agent.yaml index 9ccdf09a..bdaa1841 100644 --- a/src/modules/bmgd/agents/game-dev.agent.yaml +++ b/src/modules/bmgd/agents/game-dev.agent.yaml @@ -26,7 +26,7 @@ agent: menu: - trigger: workflow-status - workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" + workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml" description: Get workflow status or check current sprint progress - trigger: dev-story diff --git a/src/modules/bmgd/agents/game-qa.agent.yaml b/src/modules/bmgd/agents/game-qa.agent.yaml index 3b1ca694..13c4f861 100644 --- a/src/modules/bmgd/agents/game-qa.agent.yaml +++ b/src/modules/bmgd/agents/game-qa.agent.yaml @@ -28,7 +28,7 @@ agent: menu: - trigger: workflow-status - workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" + workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml" description: Get workflow status or check current project state - trigger: test-framework diff --git a/src/modules/bmgd/agents/game-scrum-master.agent.yaml b/src/modules/bmgd/agents/game-scrum-master.agent.yaml index fab9bb17..7786094e 100644 --- a/src/modules/bmgd/agents/game-scrum-master.agent.yaml +++ b/src/modules/bmgd/agents/game-scrum-master.agent.yaml @@ -26,7 +26,7 @@ agent: menu: - trigger: workflow-status - workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" + workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml" description: Get workflow status or initialize a workflow if not already done - trigger: sprint-planning diff --git a/src/modules/bmgd/agents/game-solo-dev.agent.yaml b/src/modules/bmgd/agents/game-solo-dev.agent.yaml index 05948eee..b996b186 100644 --- a/src/modules/bmgd/agents/game-solo-dev.agent.yaml +++ b/src/modules/bmgd/agents/game-solo-dev.agent.yaml @@ -32,7 +32,7 @@ agent: description: Implement features end-to-end solo with game-specific considerations - trigger: create-tech-spec - workflow: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml" + workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml" description: Architect a technical spec with implementation-ready stories - trigger: code-review diff --git a/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/instructions.md b/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/instructions.md new file mode 100644 index 00000000..ad5f2531 --- /dev/null +++ b/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/instructions.md @@ -0,0 +1,140 @@ +# Create Tech-Spec - Spec Engineering for Game Development + + + +Communicate in {communication_language}, tailored to {user_skill_level} +Generate documents in {document_output_language} +Conversational spec engineering - ask questions, investigate code, produce complete spec +Spec must contain ALL context a fresh dev agent needs to implement it +Focus on game-specific considerations: performance, feel, engine patterns + + + Load and execute {advanced_elicitation}, then return to current step + Load and execute {party_mode_workflow}, then return to current step + Load and execute {quick_dev_workflow} with the tech-spec file + + + + +Greet {user_name} and ask them to describe what they want to build or change in their game. + +Ask game-specific clarifying questions: + +- What's the feature/mechanic? +- How does it affect gameplay feel? +- Performance requirements? (60fps critical path?) +- Which game systems does it touch? +- Existing code to integrate with? + + +Check for existing context in {output_folder} and {sprint_artifacts} + + +[a] Advanced Elicitation [c] Continue [p] Party Mode + + + + + + +If brownfield: identify game engine (Unity/Unreal/Godot/custom) + +Get file paths, read code, identify: + +- Engine patterns and conventions +- Existing game systems to integrate with +- Performance-critical code paths +- Test patterns if any + + +Document: engine version, code patterns, files to modify, system dependencies + + +[a] Advanced Elicitation [c] Continue [p] Party Mode + + + + + + +Create tech-spec using this game-focused structure: + +```markdown +# Tech-Spec: {title} + +**Created:** {date} +**Status:** Ready for Development +**Engine:** {engine_name} {version} + +## Overview + +### Feature/Mechanic Description + +### Gameplay Impact + +### Scope (In/Out) + +## Context for Development + +### Engine Patterns + +### Existing Systems Integration + +### Files to Reference + +### Technical Decisions + +## Implementation Plan + +### Tasks + +- [ ] Task 1: Description +- [ ] Task 2: Description + +### Performance Considerations + +- Frame budget impact +- Memory considerations +- Critical path notes + +### Acceptance Criteria + +- [ ] AC 1: Given/When/Then (include feel/responsiveness criteria) +- [ ] AC 2: ... + +## Additional Context + +### Dependencies + +### Testing Strategy + +### Notes +``` + + + +Save to {sprint_artifacts}/tech-spec-{slug}.md + + + + + +Present spec to {user_name}, ask if it captures intent, make changes as needed + +**Tech-Spec Complete!** 🎮 + +Saved to: {sprint_artifacts}/tech-spec-{slug}.md + +[a] Advanced Elicitation - refine further +[b] Begin Development (not recommended - fresh context better) +[d] Done - exit +[p] Party Mode - get feedback + +**Recommended:** Run `quick-dev` in fresh context with this spec. + + +Choice (a/b/d/p): + + + + diff --git a/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml b/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml new file mode 100644 index 00000000..31b6421f --- /dev/null +++ b/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml @@ -0,0 +1,27 @@ +# Quick-Flow: Create Tech-Spec (Game Development) +name: create-tech-spec +description: "Conversational spec engineering for games - ask questions, investigate code, produce implementation-ready tech-spec." +author: "BMad" + +# Config +config_source: "{project-root}/_bmad/bmgd/config.yaml" +output_folder: "{config_source}:output_folder" +sprint_artifacts: "{config_source}:sprint_artifacts" +user_name: "{config_source}:user_name" +communication_language: "{config_source}:communication_language" +document_output_language: "{config_source}:document_output_language" +user_skill_level: "{config_source}:game_dev_experience" +date: system-generated + +# Workflow components +installed_path: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/create-tech-spec" +instructions: "{installed_path}/instructions.md" + +# Related workflows +quick_dev_workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml" +quick_prototype_workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml" +party_mode_exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" +advanced_elicitation: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" + +standalone: true +web_bundle: false diff --git a/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml b/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml index 067f388e..5aed030b 100644 --- a/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml +++ b/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml @@ -26,7 +26,7 @@ party_mode_exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" advanced_elicitation: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" # Routing resources (lazy-loaded) -workflow_init: "{project-root}/_bmad/bmm/workflows/workflow-status/init/workflow.yaml" +workflow_init: "{project-root}/_bmad/bmgd/workflows/workflow-status/init/workflow.yaml" # Game-specific input patterns input_file_patterns: diff --git a/src/modules/bmgd/workflows/workflow-status/init/instructions.md b/src/modules/bmgd/workflows/workflow-status/init/instructions.md new file mode 100644 index 00000000..c1123b33 --- /dev/null +++ b/src/modules/bmgd/workflows/workflow-status/init/instructions.md @@ -0,0 +1,299 @@ +# Workflow Init - Game Project Setup Instructions + +The workflow execution engine is governed by: {project-root}/\_bmad/core/tasks/workflow.xml +You MUST have already loaded and processed: workflow-init/workflow.yaml +Communicate in {communication_language} with {user_name} +This workflow handles BOTH new game projects AND existing game projects + + + + +Welcome to BMGD Game Development, {user_name}! 🎮 + +Perform comprehensive scan for existing work: + +- BMGD artifacts: GDD, game brief, architecture, narrative design +- Implementation: stories, sprint-status, workflow-status +- Game project: engine files (Unity, Unreal, Godot), source directories +- Check both {output_folder} and {sprint_artifacts} locations + + +Categorize into one of these states: + +- CLEAN: No artifacts or code (or scaffold only) +- DESIGN: Has GDD/brief but no implementation +- ACTIVE: Has stories or sprint status +- EXISTING: Has game code but no BMGD artifacts +- UNCLEAR: Mixed state needs clarification + + +What's your game project called? {{#if project_name}}(Config shows: {{project_name}}){{/if}} +Store project_name +project_name + + + + + Perfect! Fresh start detected. Let's design your game! + Continue to step 3 + + + + ✅ You already have workflow tracking at: {{workflow_status_path}} + +To check progress: Load any BMGD agent and run /bmad:bmgd:workflows:workflow-status + +Happy game dev! 🎮 +Exit workflow (already initialized) + + + + Found existing work: +{{summary_of_findings}} + +How would you like to proceed? + +1. **Continue** - Work with existing artifacts +2. **Archive & Start Fresh** - Move old work to archive +3. **Express Setup** - I know exactly what I need +4. **Guided Setup** - Walk me through options + +Choice [1-4] + + + Set continuing_existing = true + Store found artifacts + Continue to step 7 (detect track from artifacts) + + + + Archive existing work? (y/n) + Move artifacts to {output_folder}/archive/ + Ready for fresh start! + Continue to step 3 + + + + Jump to step 3 (express path) + + + + Continue to step 4 (guided path) + + + + + Setup approach: + +1. **Express** - I know what I need +2. **Guided** - Show me the options + +Choice [1 or 2]: + + + Continue to step 3 (express) + + + + Continue to step 4 (guided) + + + + + +Is this for: +1. **New game** (greenfield) +2. **Existing game codebase** (brownfield) + +Choice [1/2]: +Set field_type based on choice + +Development approach: + +1. **Full Game Dev** - Complete GDD + Architecture + Production pipeline +2. **Quick Flow** - Rapid prototyping and iteration + +Choice [1/2]: +Map to selected_track: gamedev/quickflow + +field_type +selected_track +Jump to step 6 (discovery options) + + + +Tell me about your game. What are you making? +Store user_description + +Analyze for field type indicators: + +- Brownfield: "existing", "current", "enhance", "update", "add to" +- Greenfield: "new", "build", "create", "from scratch", "fresh" +- If game project exists, default to brownfield unless user indicates new + + + + I see existing game files. Are you: +1. **Modifying** existing game (brownfield) +2. **Starting fresh** - code is just scaffold (greenfield) + +Choice [1/2]: +Set field_type based on answer + + +Set based on project presence + +user_description +field_type +Continue to step 5 + + + +Based on your game, here are your BMGD development options: + +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +**1. Full Game Dev** 🎮 {{#if recommended}}(RECOMMENDED){{/if}} + +- Complete: Game Brief + GDD + Architecture + Production +- Best for: Indie games, AA projects, complete releases +- Benefit: AI agents have full game context for better results + +**2. Quick Flow** 🚀 + +- Rapid: Prototype → Iterate → Ship +- Best for: Game jams, prototypes, experiments +- Benefit: Get playable builds fast + +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +{{#if brownfield}} +💡 Architecture helps integrate new features with your existing game systems. +{{/if}} + +Which approach fits your game? + +1. Full Game Dev {{#if recommended}}(recommended){{/if}} +2. Quick Flow +3. Help me decide + +Choice [1/2/3]: + + + What concerns you about choosing? + Provide tailored guidance based on concerns + Loop back to choice + + +Map choice to selected_track +selected_track + + + +Determine available discovery workflows based on: +- field_type (greenfield gets game-brief option) +- selected_track (gamedev/quickflow options) + + + + Optional pre-production workflows can help clarify your game vision: + Select any you'd like to include: + +1. 🧠 **Brainstorm Game** - Creative exploration and ideation +2. 📋 **Game Brief** - Strategic game planning (recommended) + +Enter numbers (e.g., "1,2" or "all" or "none"): + + + + Optional discovery workflows: + Include any of these? + +1. 🧠 **Brainstorm Game** - Creative exploration for new features + +Enter "1" or "none": + + + + Quick Flow focuses on rapid iteration. You can brainstorm during development. + + +Parse selections and set: + +- brainstorm_requested +- game_brief_requested (if applicable) + + +brainstorm_requested +game_brief_requested + + + +Analyze artifacts to detect track: +- Has GDD → Full Game Dev +- Has tech-spec only → Quick Flow + + +Detected: **{{detected_track}}** based on {{found_artifacts}} +Correct? (y/n) + +Which BMGD track instead? + +1. Full Game Dev +2. Quick Flow + +Choice: + +Set selected_track +selected_track + + + +Load path file: {path_files}/{{selected_track}}-{{field_type}}.yaml +Build workflow_items from path file +Scan for existing completed work and update statuses +Set generated date + +generated +workflow_path_file +workflow_items + + + +Your BMGD workflow path: + +**Track:** {{selected_track}} +**Type:** {{field_type}} +**Project:** {{project_name}} + +{{#if brownfield}}Prerequisites: Analyze existing game code{{/if}} +{{#if has_discovery}}Pre-production: {{list_selected_discovery}}{{/if}} + +{{workflow_path_summary}} + + +Create workflow tracking file? (y/n) + + + Generate YAML from template with all variables + Save to {output_folder}/bmgd-workflow-status.yaml + Identify next workflow and agent + +✅ **Created:** {output_folder}/bmgd-workflow-status.yaml + +**Next:** {{next_workflow_name}} +**Agent:** {{next_agent}} +**Command:** /bmad:bmgd:workflows:{{next_workflow_id}} + +{{#if next_agent not in [game-designer]}} +💡 Start new chat with **{{next_agent}}** agent first. +{{/if}} + +To check progress: /bmad:bmgd:workflows:workflow-status + +Happy game dev! 🎮 + + + + + diff --git a/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml b/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml new file mode 100644 index 00000000..aa5ce089 --- /dev/null +++ b/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml @@ -0,0 +1,29 @@ +# Workflow Init - Initial Game Project Setup +name: workflow-init +description: "Initialize a new BMGD game project by determining level, type, and creating workflow path" +author: "BMad" + +# Critical variables from config +config_source: "{project-root}/_bmad/bmgd/config.yaml" +output_folder: "{config_source}:output_folder" +sprint_artifacts: "{config_source}:sprint_artifacts" +user_name: "{config_source}:user_name" +project_name: "{config_source}:project_name" +communication_language: "{config_source}:communication_language" +document_output_language: "{config_source}:document_output_language" +user_skill_level: "{config_source}:game_dev_experience" +date: system-generated + +# Workflow components +installed_path: "{project-root}/_bmad/bmgd/workflows/workflow-status/init" +instructions: "{installed_path}/instructions.md" +template: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow-status-template.yaml" + +# Path data files +path_files: "{project-root}/_bmad/bmgd/workflows/workflow-status/paths/" + +# Output configuration +default_output_file: "{output_folder}/bmgd-workflow-status.yaml" + +standalone: true +web_bundle: false diff --git a/src/modules/bmgd/workflows/workflow-status/instructions.md b/src/modules/bmgd/workflows/workflow-status/instructions.md new file mode 100644 index 00000000..20dd846a --- /dev/null +++ b/src/modules/bmgd/workflows/workflow-status/instructions.md @@ -0,0 +1,395 @@ +# Workflow Status Check - Multi-Mode Service (BMGD) + +The workflow execution engine is governed by: {project-root}/\_bmad/core/tasks/workflow.xml +You MUST have already loaded and processed: {project-root}/\_bmad/bmgd/workflows/workflow-status/workflow.yaml +This workflow operates in multiple modes: interactive (default), validate, data, init-check, update +Other workflows can call this as a service to avoid duplicating status logic +⚠️ ABSOLUTELY NO TIME ESTIMATES - NEVER mention hours, days, weeks, months, or ANY time-based predictions. + + + + + Check for {{mode}} parameter passed by calling workflow + Default mode = "interactive" if not specified + + + Continue to Step 1 for normal status check flow + + + + Jump to Step 10 for workflow validation service + + + + Jump to Step 20 for data extraction service + + + + Jump to Step 30 for simple init check + + + + Jump to Step 40 for status update service + + + + +Search {output_folder}/ for file: bmgd-workflow-status.yaml + + + No game development workflow status found. + Would you like to run Workflow Init now? (y/n) + + + Launching workflow-init to set up your game project tracking... + + Exit workflow and let workflow-init take over + + + + No workflow status file. Run workflow-init when ready to enable progress tracking. + Exit workflow + + + + + Continue to step 2 + + + + +Read bmgd-workflow-status.yaml +Parse YAML file and extract metadata from comments and fields: + +Parse these fields from YAML comments and metadata: + +- project (from YAML field) +- project_type (from YAML field) +- project_level (from YAML field) +- field_type (from YAML field) +- workflow_path (from YAML field) + +Parse workflow_status section: + +- Extract all workflow entries with their statuses +- Identify completed workflows (status = file path) +- Identify pending workflows (status = required/optional/recommended/conditional) +- Identify skipped workflows (status = skipped) + +Determine current state: + +- Find first workflow with status != file path and != skipped +- This is the NEXT workflow to work on +- Look up agent and command from workflow path file + + + +Load workflow path file based on workflow_path field +Identify current phase from next workflow to be done +Build list of completed, pending, and optional workflows +For each workflow, look up its agent from the path file + + +## 🎮 Game Dev Status + +**Project:** {{project}} (Level {{project_level}} {{project_type}}) + +**Path:** {{workflow_path}} + +**Progress:** + +{{#each phases}} +{{phase_name}}: +{{#each workflows_in_phase}} + +- {{workflow_name}} ({{agent}}): {{status_display}} + {{/each}} + {{/each}} + +## 🎯 Next Steps + +**Next Workflow:** {{next_workflow_name}} + +**Agent:** {{next_agent}} + +**Command:** /bmad:bmgd:workflows:{{next_workflow_id}} + +{{#if optional_workflows_available}} +**Optional Workflows Available:** +{{#each optional_workflows}} + +- {{workflow_name}} ({{agent}}) - {{status}} + {{/each}} + {{/if}} + + + + +What would you like to do? + +1. **Start next workflow** - {{next_workflow_name}} ({{next_agent}}) + {{#if optional_workflows_available}} +2. **Run optional workflow** - Choose from available options + {{/if}} +3. **View full status YAML** - See complete status file +4. **Update workflow status** - Mark a workflow as completed or skipped +5. **Exit** - Return to agent + +Your choice: + +Handle user selection based on available options + + + Ready to run {{next_workflow_name}}! + +**Command:** /bmad:bmgd:workflows:{{next_workflow_id}} + +**Agent:** Load {{next_agent}} agent first + +{{#if next_agent !== current_agent}} +Tip: Start a new chat and load the {{next_agent}} agent before running this workflow. +{{/if}} + + + + + Which optional workflow? +{{#each optional_workflows numbered}} +{{number}}. {{workflow_name}} ({{agent}}) +{{/each}} + +Your choice: +Display selected workflow command and agent + + + + Display complete bmgd-workflow-status.yaml file contents + + + + What would you like to update? + +1. Mark a workflow as **completed** (provide file path) +2. Mark a workflow as **skipped** + +Your choice: + + + Which workflow? (Enter workflow ID like 'gdd' or 'create-architecture') + File path created? (e.g., docs/gdd.md) + ONLY write the file path as the status value - no other text, notes, or metadata + Update workflow_status in YAML file: {{workflow_id}}: {{file_path}} + Save updated YAML file preserving ALL structure and comments + ✅ Updated {{workflow_id}} to completed: {{file_path}} + + + + Which workflow to skip? (Enter workflow ID) + Update workflow_status in YAML file: {{workflow_id}}: skipped + Save updated YAML file + ✅ Marked {{workflow_id}} as skipped + + + + + + + + + +Read {output_folder}/bmgd-workflow-status.yaml if exists + + + status_exists = false + should_proceed = true + warning = "No status file found. Running without progress tracking." + suggestion = "Consider running workflow-init first for progress tracking" + Return to calling workflow + + + + Parse YAML file to extract project metadata and workflow_status + Load workflow path file from workflow_path field + Find first non-completed workflow in workflow_status (next workflow) + Check if {{calling_workflow}} matches next workflow or is in the workflow list + +status_exists = true +project_level = {{project_level}} +project_type = {{project_type}} +field_type = {{field_type}} +next_workflow = {{next_workflow_id}} + + + should_proceed = true + warning = "" + suggestion = "Proceeding with planned next step" + + + + Check the status of calling_workflow in YAML + + + should_proceed = true + warning = "⚠️ Workflow already completed: {{calling_workflow}}" + suggestion = "This workflow was already completed. Re-running will overwrite: {{status}}" + + + + should_proceed = true + warning = "Running optional workflow {{calling_workflow}}" + suggestion = "This is optional. Expected next: {{next_workflow}}" + + + + should_proceed = true + warning = "⚠️ Out of sequence: Expected {{next_workflow}}, running {{calling_workflow}}" + suggestion = "Consider running {{next_workflow}} instead, or continue if intentional" + + + + + + should_proceed = true + warning = "⚠️ Unknown workflow: {{calling_workflow}} not in workflow path" + suggestion = "This workflow is not part of the defined path for this project" + + +status_file_path = {{path to bmgd-workflow-status.yaml}} + + +Return control to calling workflow with all template outputs + + + +Read {output_folder}/bmgd-workflow-status.yaml if exists + + + status_exists = false + error = "No status file to extract data from" + Return to calling workflow + + + + Parse YAML file completely + status_exists = true + + + project_name = {{project}} + project_type = {{project_type}} + project_level = {{project_level}} + field_type = {{field_type}} + workflow_path = {{workflow_path}} + + + + Parse workflow_status section and return all workflow: status pairs + workflow_status = {{workflow_status_object}} + Calculate completion stats: + total_workflows = {{count all workflows}} + completed_workflows = {{count file path statuses}} + pending_workflows = {{count required/optional/etc}} + skipped_workflows = {{count skipped}} + + + + Return all parsed fields as template outputs + project = {{project}} + project_type = {{project_type}} + project_level = {{project_level}} + field_type = {{field_type}} + workflow_path = {{workflow_path}} + workflow_status = {{workflow_status_object}} + generated = {{generated}} + + +status_file_path = {{path to bmgd-workflow-status.yaml}} + + +Return control to calling workflow with requested data + + + +Check if {output_folder}/bmgd-workflow-status.yaml exists + + + status_exists = true + suggestion = "Status file found. Ready to proceed." + + + + status_exists = false + suggestion = "No status file. Run workflow-init to create one (optional for progress tracking)" + + +Return immediately to calling workflow + + + +Read {output_folder}/bmgd-workflow-status.yaml + + + success = false + error = "No status file found. Cannot update." + Return to calling workflow + + + + Parse YAML file completely + Load workflow path file from workflow_path field + Check {{action}} parameter to determine update type + + + + + + Get {{workflow_id}} parameter (required) + Get {{output_file}} parameter (required - path to created file) + + ONLY write the file path as the status value - no other text, notes, or metadata + Update workflow status in YAML: + - In workflow_status section, update: {{workflow_id}}: {{output_file}} + + Find {{workflow_id}} in loaded path YAML + Determine next workflow from path sequence + Find first workflow in workflow_status with status != file path and != skipped + + Save updated YAML file preserving ALL structure and comments + + success = true + next_workflow = {{determined next workflow}} + next_agent = {{determined next agent from path file}} + completed_workflow = {{workflow_id}} + output_file = {{output_file}} + + + + + + + + Get {{workflow_id}} parameter (required) + + Update workflow status in YAML: + - In workflow_status section, update: {{workflow_id}}: skipped + + Save updated YAML file + + success = true + skipped_workflow = {{workflow_id}} + + + + + + + + success = false + error = "Unknown action: {{action}}. Valid actions: complete_workflow, skip_workflow" + + + + +Return control to calling workflow with template outputs + + + diff --git a/src/modules/bmgd/workflows/workflow-status/paths/gamedev-brownfield.yaml b/src/modules/bmgd/workflows/workflow-status/paths/gamedev-brownfield.yaml new file mode 100644 index 00000000..82b08b59 --- /dev/null +++ b/src/modules/bmgd/workflows/workflow-status/paths/gamedev-brownfield.yaml @@ -0,0 +1,65 @@ +# BMGD Game Development - Brownfield +# Game development methodology for existing game projects + +method_name: "BMGD Game Development" +track: "gamedev" +field_type: "brownfield" +description: "Game development methodology for existing codebases and projects" + +phases: + - phase: 0 + name: "Discovery (Optional)" + optional: true + note: "User-selected during workflow-init" + workflows: + - id: "brainstorm-game" + optional: true + agent: "game-designer" + command: "brainstorm-game" + included_by: "user_choice" + note: "Creative exploration for new features or improvements" + + - phase: 1 + name: "Design" + required: true + workflows: + - id: "gdd" + required: true + agent: "game-designer" + command: "create-gdd" + output: "Game Design Document for new features/systems" + note: "Focus on changes and additions to existing game" + + - id: "narrative" + conditional: "if_narrative_focused" + agent: "game-designer" + command: "narrative" + note: "For story-driven additions" + + - phase: 2 + name: "Technical" + required: true + workflows: + - id: "game-architecture" + required: true + agent: "game-architect" + command: "create-architecture" + output: "Architecture update document" + note: "Focus on integration with existing systems" + + - id: "test-framework" + recommended: true + agent: "game-qa" + command: "test-framework" + output: "Testing framework extension" + note: "Extend existing tests or set up new framework" + + - phase: 3 + name: "Production" + required: true + workflows: + - id: "sprint-planning" + required: true + agent: "game-scrum-master" + command: "sprint-planning" + note: "Creates sprint plan - subsequent work tracked in sprint-status.yaml" diff --git a/src/modules/bmgd/workflows/workflow-status/paths/gamedev-greenfield.yaml b/src/modules/bmgd/workflows/workflow-status/paths/gamedev-greenfield.yaml new file mode 100644 index 00000000..1329008d --- /dev/null +++ b/src/modules/bmgd/workflows/workflow-status/paths/gamedev-greenfield.yaml @@ -0,0 +1,71 @@ +# BMGD Game Development - Greenfield +# Full game design and development methodology for new game projects + +method_name: "BMGD Game Development" +track: "gamedev" +field_type: "greenfield" +description: "Complete game design and development methodology for greenfield projects" + +phases: + - phase: 0 + name: "Pre-production (Optional)" + optional: true + note: "User-selected during workflow-init" + workflows: + - id: "brainstorm-game" + optional: true + agent: "game-designer" + command: "brainstorm-game" + included_by: "user_choice" + note: "Creative exploration and ideation for game concepts" + + - id: "game-brief" + optional: true + agent: "game-designer" + command: "create-game-brief" + included_by: "user_choice" + note: "Recommended for greenfield game projects" + + - phase: 1 + name: "Design" + required: true + workflows: + - id: "gdd" + required: true + agent: "game-designer" + command: "create-gdd" + output: "Game Design Document with mechanics, systems, and content" + + - id: "narrative" + conditional: "if_narrative_focused" + agent: "game-designer" + command: "narrative" + note: "For story-driven games - determined after GDD" + + - phase: 2 + name: "Technical" + required: true + workflows: + - id: "game-architecture" + required: true + agent: "game-architect" + command: "create-architecture" + output: "Game architecture document with systems and patterns" + note: "Complete technical design for game systems" + + - id: "test-framework" + recommended: true + agent: "game-qa" + command: "test-framework" + output: "Game testing framework setup" + note: "Set up automated testing early" + + - phase: 3 + name: "Production" + required: true + workflows: + - id: "sprint-planning" + required: true + agent: "game-scrum-master" + command: "sprint-planning" + note: "Creates sprint plan - subsequent work tracked in sprint-status.yaml" diff --git a/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml b/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml new file mode 100644 index 00000000..6055fcc9 --- /dev/null +++ b/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml @@ -0,0 +1,29 @@ +# BMGD Quick Flow - Brownfield +# Rapid game development for existing projects + +method_name: "BMGD Quick Flow" +track: "quickflow" +field_type: "brownfield" +description: "Rapid development and iteration for existing game projects" + +phases: + - phase: 1 + name: "Planning" + required: true + workflows: + - id: "create-tech-spec" + required: true + agent: "game-solo-dev" + command: "create-tech-spec" + output: "Technical specification" + note: "Define changes for existing codebase" + + - phase: 2 + name: "Development" + required: true + workflows: + - id: "quick-dev" + required: true + agent: "game-solo-dev" + command: "quick-dev" + note: "Iterative development - repeat as needed" diff --git a/src/modules/bmgd/workflows/workflow-status/paths/quickflow-greenfield.yaml b/src/modules/bmgd/workflows/workflow-status/paths/quickflow-greenfield.yaml new file mode 100644 index 00000000..7ad1a0d4 --- /dev/null +++ b/src/modules/bmgd/workflows/workflow-status/paths/quickflow-greenfield.yaml @@ -0,0 +1,39 @@ +# BMGD Quick Flow - Greenfield +# Rapid game prototyping and development for new projects + +method_name: "BMGD Quick Flow" +track: "quickflow" +field_type: "greenfield" +description: "Rapid prototyping and development for new game projects" + +phases: + - phase: 0 + name: "Concept (Optional)" + optional: true + workflows: + - id: "brainstorm-game" + optional: true + agent: "game-solo-dev" + command: "brainstorm-game" + included_by: "user_choice" + + - phase: 1 + name: "Prototype" + required: true + workflows: + - id: "quick-prototype" + required: true + agent: "game-solo-dev" + command: "quick-prototype" + output: "Playable prototype" + note: "Test core mechanic quickly" + + - phase: 2 + name: "Development" + required: true + workflows: + - id: "quick-dev" + required: true + agent: "game-solo-dev" + command: "quick-dev" + note: "Iterative development - repeat as needed" diff --git a/src/modules/bmgd/workflows/workflow-status/project-levels.yaml b/src/modules/bmgd/workflows/workflow-status/project-levels.yaml new file mode 100644 index 00000000..f3e055f0 --- /dev/null +++ b/src/modules/bmgd/workflows/workflow-status/project-levels.yaml @@ -0,0 +1,63 @@ +# BMGD Game Project Scale Levels - Source of Truth + +levels: + 0: + name: "Level 0" + title: "Game Jam / Prototype" + stories: "1-5 stories" + description: "48-72 hour game jam, mechanic prototype, proof of concept" + documentation: "Minimal - quick GDD notes only" + architecture: false + + 1: + name: "Level 1" + title: "Mini Game" + stories: "5-15 stories" + description: "Small complete game, single mechanic focus, mobile hypercasual" + documentation: "Game Brief + Light GDD" + architecture: false + + 2: + name: "Level 2" + title: "Indie Game" + stories: "15-40 stories" + description: "Full indie title, multiple systems, polished experience" + documentation: "Game Brief + GDD + Architecture" + architecture: true + + 3: + name: "Level 3" + title: "AA Game" + stories: "40-100 stories" + description: "Mid-size production, team coordination, multiple platforms" + documentation: "Full GDD + Architecture + Narrative Design" + architecture: true + + 4: + name: "Level 4" + title: "AAA Game" + stories: "100+ stories" + description: "Large-scale production, multiple teams, live service potential" + documentation: "Full documentation suite + production pipelines" + architecture: true + +# Quick detection hints for workflow-init +detection_hints: + keywords: + level_0: ["jam", "prototype", "poc", "test", "experiment", "48 hour", "weekend"] + level_1: ["simple", "mini", "casual", "hypercasual", "mobile", "small game"] + level_2: ["indie", "steam", "itch", "complete game", "full game"] + level_3: ["aa", "mid-size", "production", "team", "publisher"] + level_4: ["aaa", "large", "enterprise", "live service", "multiple teams"] + + story_counts: + level_0: [1, 5] + level_1: [5, 15] + level_2: [15, 40] + level_3: [40, 100] + level_4: [100, 999] + +# Game-specific indicators +game_indicators: + engine_keywords: ["unity", "unreal", "godot", "gamemaker", "construct", "rpgmaker"] + genre_keywords: ["platformer", "rpg", "roguelike", "shooter", "puzzle", "adventure", "strategy", "simulation"] diff --git a/src/modules/bmgd/workflows/workflow-status/workflow-status-template.yaml b/src/modules/bmgd/workflows/workflow-status/workflow-status-template.yaml new file mode 100644 index 00000000..b4bd52a9 --- /dev/null +++ b/src/modules/bmgd/workflows/workflow-status/workflow-status-template.yaml @@ -0,0 +1,24 @@ +# Workflow Status Template (BMGD) + +# This tracks progress through BMGD methodology Pre-production, Design, and Technical phases. +# Implementation phase is tracked separately in sprint-status.yaml + +# STATUS DEFINITIONS: +# ================== +# Initial Status (before completion): +# - required: Must be completed to progress +# - optional: Can be completed but not required +# - recommended: Strongly suggested but not required +# - conditional: Required only if certain conditions met (e.g., if_narrative_focused) +# +# Completion Status: +# - {file-path}: File created/found (e.g., "docs/gdd.md") +# - skipped: Optional/conditional workflow that was skipped + +generated: "{{generated}}" +project: "{{project_name}}" +project_type: "{{project_type}}" +selected_track: "{{selected_track}}" +field_type: "{{field_type}}" +workflow_path: "{{workflow_path_file}}" +workflow_status: "{{workflow_items}}" diff --git a/src/modules/bmgd/workflows/workflow-status/workflow.yaml b/src/modules/bmgd/workflows/workflow-status/workflow.yaml new file mode 100644 index 00000000..bdac979e --- /dev/null +++ b/src/modules/bmgd/workflows/workflow-status/workflow.yaml @@ -0,0 +1,30 @@ +# Workflow Status - Master Router and Status Tracker for BMGD +name: workflow-status +description: 'Lightweight status checker - answers "what should I do now?" for any game dev agent. Reads YAML status file for workflow tracking. Use workflow-init for new projects.' +author: "BMad" + +# Critical variables from config +config_source: "{project-root}/_bmad/bmgd/config.yaml" +output_folder: "{config_source}:output_folder" +user_name: "{config_source}:user_name" +communication_language: "{config_source}:communication_language" +document_output_language: "{config_source}:document_output_language" +user_skill_level: "{config_source}:game_dev_experience" +date: system-generated + +# Workflow components +installed_path: "{project-root}/_bmad/bmgd/workflows/workflow-status" +instructions: "{installed_path}/instructions.md" + +# Template for status file creation (used by workflow-init) +template: "{installed_path}/workflow-status-template.yaml" + +# Path definitions for project types +path_files: "{installed_path}/paths/" + +# Output configuration - reads existing status +default_output_file: "{output_folder}/bmgd-workflow-status.yaml" + +standalone: true + +web_bundle: false