arch alignment with workflows

This commit is contained in:
Brian Madison
2025-10-17 16:44:06 -05:00
parent 9519eae666
commit ffd354b605
20 changed files with 2111 additions and 1247 deletions

View File

@@ -5,33 +5,36 @@
<workflow> <workflow>
<step n="1" goal="Check and load workflow status file"> <step n="1" goal="Validate workflow readiness">
<action>Search {output_folder}/ for files matching pattern: bmm-workflow-status.md</action> <invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<action>Find the most recent file (by date in filename: bmm-workflow-status.md)</action> <param>mode: validate</param>
<param>calling_workflow: brainstorm-game</param>
</invoke-workflow>
<check if="exists"> <check if="status_exists == false">
<action>Load the status file</action> <output>{{suggestion}}</output>
<action>Set status_file_found = true</action> <output>Note: Game brainstorming is optional. Continuing without progress tracking.</output>
<action>Store status_file_path for later updates</action> <action>Set standalone_mode = true</action>
</check> </check>
<check if="not exists"> <check if="status_exists == true">
<ask>**No workflow status file found.** <action>Store {{status_file_path}} for later updates</action>
This workflow generates brainstorming ideas for game ideation (optional Phase 1 workflow). <check if="project_type != 'game'">
<output>Note: This is a {{project_type}} project. Game brainstorming is designed for game projects.</output>
<ask>Continue with game brainstorming anyway? (y/n)</ask>
<check if="n">
<action>Exit workflow</action>
</check>
</check>
Options: <check if="warning != ''">
<output>{{warning}}</output>
<output>Note: Game brainstorming can be valuable at any project stage.</output>
</check>
</check>
1. Run workflow-status first to create the status file (recommended for progress tracking) </step>
2. Continue in standalone mode (no progress tracking)
3. Exit
What would you like to do?</ask>
<action>If user chooses option 1 → HALT with message: "Please run workflow-status first, then return to brainstorm-game"</action>
<action>If user chooses option 2 → Set standalone_mode = true and continue</action>
<action>If user chooses option 3 → HALT</action>
</check>
</step>
<step n="2" goal="Load game brainstorming context and techniques"> <step n="2" goal="Load game brainstorming context and techniques">
<action>Read the game context document from: {game_context}</action> <action>Read the game context document from: {game_context}</action>
@@ -63,15 +66,9 @@ What would you like to do?</ask>
</invoke-workflow> </invoke-workflow>
</step> </step>
<step n="4" goal="Update status file on completion"> <step n="4" goal="Update status and complete">
<action>Search {output_folder}/ for files matching pattern: bmm-workflow-status.md</action> <check if="standalone_mode != true">
<action>Find the most recent file (by date in filename)</action> <action>Load {{status_file_path}}</action>
<check if="status file exists">
<action>Load the status file</action>
<template-output file="{{status_file_path}}">current_step</template-output>
<action>Set to: "brainstorm-game"</action>
<template-output file="{{status_file_path}}">current_workflow</template-output> <template-output file="{{status_file_path}}">current_workflow</template-output>
<action>Set to: "brainstorm-game - Complete"</action> <action>Set to: "brainstorm-game - Complete"</action>
@@ -80,21 +77,25 @@ What would you like to do?</ask>
<action>Increment by: 5% (optional Phase 1 workflow)</action> <action>Increment by: 5% (optional Phase 1 workflow)</action>
<template-output file="{{status_file_path}}">decisions_log</template-output> <template-output file="{{status_file_path}}">decisions_log</template-output>
<action>Add entry:</action> <action>Add entry: "- **{{date}}**: Completed brainstorm-game workflow. Generated game brainstorming session results. Next: Review game ideas and consider research or game-brief workflows."</action>
```
- **{{date}}**: Completed brainstorm-game workflow. Generated game brainstorming session results saved to {output_folder}/brainstorming-session-results-{{date}}.md. Next: Review game ideas and consider running research or game-brief workflows.
```
<output>**✅ Game Brainstorming Session Complete, {user_name}!** <action>Save {{status_file_path}}</action>
</check>
<output>**✅ Game Brainstorming Session Complete, {user_name}!**
**Session Results:** **Session Results:**
- Game brainstorming results saved to: {output_folder}/brainstorming-session-results-{{date}}.md - Game brainstorming results saved to: {output_folder}/bmm-brainstorming-session-{{date}}.md
**Status file updated:** {{#if standalone_mode != true}}
**Status Updated:**
- Current step: brainstorm-game ✓ - Progress tracking updated
- Progress: {{new_progress_percentage}}% {{else}}
Note: Running in standalone mode (no status file).
To track progress across workflows, run `workflow-init` first.
{{/if}}
**Next Steps:** **Next Steps:**
@@ -104,27 +105,10 @@ What would you like to do?</ask>
- `game-brief` workflow to formalize game vision - `game-brief` workflow to formalize game vision
- Or proceed directly to `plan-project` if ready - Or proceed directly to `plan-project` if ready
{{#if standalone_mode != true}}
Check status anytime with: `workflow-status` Check status anytime with: `workflow-status`
{{/if}}
</output> </output>
</check> </step>
<check if="status file not found">
<output>**✅ Game Brainstorming Session Complete, {user_name}!**
**Session Results:**
- Game brainstorming results saved to: {output_folder}/brainstorming-session-results-{{date}}.md
Note: Running in standalone mode (no status file).
To track progress across workflows, run `workflow-status` first.
**Next Steps:**
1. Review game brainstorming results
2. Run research or game-brief workflows
</output>
</check>
</step>
</workflow> </workflow>

View File

@@ -1,6 +1,6 @@
# Brainstorm Project - Workflow Instructions # Brainstorm Project - Workflow Instructions
````xml ```xml
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.xml</critical> <critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.xml</critical>
<critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical> <critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
<critical>Communicate all responses in {communication_language}</critical> <critical>Communicate all responses in {communication_language}</critical>
@@ -8,30 +8,25 @@
<workflow> <workflow>
<step n="1" goal="Check and load workflow status file"> <step n="1" goal="Validate workflow readiness">
<action>Search {output_folder}/ for files matching pattern: bmm-workflow-status.md</action> <invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<action>Find the most recent file (by date in filename: bmm-workflow-status.md)</action> <param>mode: validate</param>
<param>calling_workflow: brainstorm-project</param>
</invoke-workflow>
<check if="exists"> <check if="status_exists == false">
<action>Load the status file</action> <output>{{suggestion}}</output>
<action>Set status_file_found = true</action> <output>Note: Brainstorming is optional. Continuing without progress tracking.</output>
<action>Store status_file_path for later updates</action> <action>Set standalone_mode = true</action>
</check> </check>
<check if="not exists"> <check if="status_exists == true">
<ask>**No workflow status file found.** <action>Store {{status_file_path}} for later updates</action>
This workflow generates brainstorming ideas for project ideation (optional Phase 1 workflow). <check if="warning != ''">
<output>{{warning}}</output>
Options: <output>Note: Brainstorming can be valuable at any project stage.</output>
1. Run workflow-status first to create the status file (recommended for progress tracking) </check>
2. Continue in standalone mode (no progress tracking)
3. Exit
What would you like to do?</ask>
<action>If user chooses option 1 → HALT with message: "Please run workflow-status first, then return to brainstorm-project"</action>
<action>If user chooses option 2 → Set standalone_mode = true and continue</action>
<action>If user chooses option 3 → HALT</action>
</check> </check>
</step> </step>
@@ -56,15 +51,9 @@ What would you like to do?</ask>
</invoke-workflow> </invoke-workflow>
</step> </step>
<step n="4" goal="Update status file on completion"> <step n="4" goal="Update status and complete">
<action>Search {output_folder}/ for files matching pattern: bmm-workflow-status.md</action> <check if="standalone_mode != true">
<action>Find the most recent file (by date in filename)</action> <action>Load {{status_file_path}}</action>
<check if="status file exists">
<action>Load the status file</action>
<template-output file="{{status_file_path}}">current_step</template-output>
<action>Set to: "brainstorm-project"</action>
<template-output file="{{status_file_path}}">current_workflow</template-output> <template-output file="{{status_file_path}}">current_workflow</template-output>
<action>Set to: "brainstorm-project - Complete"</action> <action>Set to: "brainstorm-project - Complete"</action>
@@ -73,19 +62,20 @@ What would you like to do?</ask>
<action>Increment by: 5% (optional Phase 1 workflow)</action> <action>Increment by: 5% (optional Phase 1 workflow)</action>
<template-output file="{{status_file_path}}">decisions_log</template-output> <template-output file="{{status_file_path}}">decisions_log</template-output>
<action>Add entry:</action> <action>Add entry: "- **{{date}}**: Completed brainstorm-project workflow. Generated brainstorming session results. Next: Review ideas and consider research or product-brief workflows."</action>
```
- **{{date}}**: Completed brainstorm-project workflow. Generated brainstorming session results saved to {output_folder}/brainstorming-session-results-{{date}}.md. Next: Review ideas and consider running research or product-brief workflows.
```
<output>**✅ Brainstorming Session Complete, {user_name}!** <action>Save {{status_file_path}}</action>
</check>
<output>**✅ Brainstorming Session Complete, {user_name}!**
**Session Results:** **Session Results:**
- Brainstorming results saved to: {output_folder}/brainstorming-session-results-{{date}}.md - Brainstorming results saved to: {output_folder}/bmm-brainstorming-session-{{date}}.md
**Status file updated:** {{#if standalone_mode != true}}
- Current step: brainstorm-project ✓ **Status Updated:**
- Progress: {{new_progress_percentage}}% - Progress tracking updated
{{/if}}
**Next Steps:** **Next Steps:**
1. Review brainstorming results 1. Review brainstorming results
@@ -94,26 +84,11 @@ What would you like to do?</ask>
- `product-brief` workflow to formalize product vision - `product-brief` workflow to formalize product vision
- Or proceed directly to `plan-project` if ready - Or proceed directly to `plan-project` if ready
{{#if standalone_mode != true}}
Check status anytime with: `workflow-status` Check status anytime with: `workflow-status`
</output> {{/if}}
</check> </output>
<check if="status file not found">
<output>**✅ Brainstorming Session Complete, {user_name}!**
**Session Results:**
- Brainstorming results saved to: {output_folder}/brainstorming-session-results-{{date}}.md
Note: Running in standalone mode (no status file).
To track progress across workflows, run `workflow-status` first.
**Next Steps:**
1. Review brainstorming results
2. Run research or product-brief workflows
</output>
</check>
</step> </step>
</workflow> </workflow>
```` ```

View File

@@ -8,85 +8,47 @@
<critical>This router determines workflow mode and delegates to specialized sub-workflows</critical> <critical>This router determines workflow mode and delegates to specialized sub-workflows</critical>
<step n="1" goal="Check and load workflow status file"> <step n="1" goal="Validate workflow and get project info">
<action>Search {output_folder}/ for files matching pattern: bmm-workflow-status\*.md</action> <invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<action>Find the most recent file (by date in filename: bmm-workflow-status.md)</action> <param>mode: data</param>
<param>data_request: project_config</param>
</invoke-workflow>
<check if="exists"> <check if="status_exists == false">
<action>Load the status file</action> <output>{{suggestion}}</output>
<action>Extract key information:</action> <output>Note: Documentation workflow can run standalone. Continuing without progress tracking.</output>
<action>Set standalone_mode = true</action>
- current_step: From "Current Step:" field <action>Set status_file_found = false</action>
- next_step: From "Next Step:" field
- planned_workflow: From "Planned Workflow Journey" table
- progress_percentage: From "Overall Progress:" field
- current_phase: From "Current Phase:" field
- field_type: From "Greenfield/Brownfield:" field
<action>Validate this workflow is in the planned workflow</action>
<action>Set status_file_path = file path</action>
<action>Set status_file_found = true</action>
<check if='next_step != "document-project"'>
<ask>**⚠️ Workflow Sequence Note**
According to your status file, your next planned step is: **{{next_step}}**
But you're running: **document-project**
This is expected if plan-project invoked this workflow automatically for brownfield documentation.
Options:
1. **Continue** - Run document-project (status will be updated)
2. **Exit** - I'll follow the planned sequence instead
Your choice (1-2):</ask>
<check if='choice == "2"'>
<output>**Recommended Next Step:**
Run: {{next_step}}
You can return to document-project later if needed.
</output>
<action>Exit workflow</action>
</check>
</check>
</check> </check>
<check if="not exists"> <check if="status_exists == true">
<ask>** No Workflow Status File Found** <action>Store {{status_file_path}} for later updates</action>
<action>Set status_file_found = true</action>
This workflow works best with a workflow status file for progress tracking. <!-- Extract brownfield/greenfield from status data -->
<check if="field_type == 'greenfield'">
Options: <output>Note: This is a greenfield project. Documentation workflow is typically for brownfield projects.</output>
<ask>Continue anyway to document planning artifacts? (y/n)</ask>
1. **Run workflow-status first** - Create status file and plan workflow (recommended) <check if="n">
2. **Continue anyway** - Run document-project standalone <action>Exit workflow</action>
3. **Exit** - I'll set up the workflow first </check>
Your choice (1-3):</ask>
<check if='choice == "1"'>
<output>**To create status file:**
Load any agent and run: `workflow-status`
After planning your workflow, you can return here or follow the planned sequence.
</output>
<action>Exit workflow</action>
</check>
<check if='choice == "2"'>
<action>Set status_file_found = false</action>
<action>Set standalone_mode = true</action>
<action>Continue without status file integration</action>
</check> </check>
<check if='choice == "3"'> <!-- Now validate sequencing -->
<action>Exit workflow</action> <invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<param>mode: validate</param>
<param>calling_workflow: document-project</param>
</invoke-workflow>
<check if="warning != ''">
<output>{{warning}}</output>
<output>Note: This may be auto-invoked by plan-project for brownfield documentation.</output>
<ask>Continue with documentation? (y/n)</ask>
<check if="n">
<output>{{suggestion}}</output>
<action>Exit workflow</action>
</check>
</check> </check>
</check> </check>
@@ -214,34 +176,22 @@ Your choice [1/2/3]:
</step> </step>
<step n="4" goal="Update status file on completion"> <step n="4" goal="Update status and complete">
<check if="status_file_found == true"> <check if="status_file_found == true">
<action>Load the status file from {{status_file_path}}</action> <action>Load {{status_file_path}}</action>
<template-output file="{{status_file_path}}">planned_workflow</template-output>
<action>Find "document-project" in the planned_workflow table</action>
<action>Update Status field from "Planned" or "In Progress" to "Complete"</action>
<template-output file="{{status_file_path}}">current_step</template-output>
<action>Set to: "document-project"</action>
<template-output file="{{status_file_path}}">next_step</template-output>
<action>Find next item with Status != "Complete" in planned_workflow table</action>
<action>Set to: "{{next_workflow_step}} ({{next_workflow_agent}} agent)"</action>
<template-output file="{{status_file_path}}">progress_percentage</template-output>
<action>Increment by: 10%</action>
<template-output file="{{status_file_path}}">current_workflow</template-output> <template-output file="{{status_file_path}}">current_workflow</template-output>
<action>Set to: "document-project - Complete"</action> <action>Set to: "document-project - Complete"</action>
<template-output file="{{status_file_path}}">decisions_log</template-output> <template-output file="{{status_file_path}}">progress_percentage</template-output>
<action>Add entry:</action> <action>Increment by: 10%</action>
``` <template-output file="{{status_file_path}}">decisions_log</template-output>
- **{{date}}**: Completed document-project workflow ({{workflow_mode}} mode, {{scan_level}} scan). Generated brownfield documentation in {output_folder}/. Next: {{next_step}}. <action>Add entry: "- **{{date}}**: Completed document-project workflow ({{workflow_mode}} mode). Generated documentation in {output_folder}/."</action>
```
<action>Save {{status_file_path}}</action>
</check>
<output>**✅ Document Project Workflow Complete, {user_name}!** <output>**✅ Document Project Workflow Complete, {user_name}!**
@@ -249,35 +199,18 @@ Your choice [1/2/3]:
- Mode: {{workflow_mode}} - Mode: {{workflow_mode}}
- Scan Level: {{scan_level}} - Scan Level: {{scan_level}}
- Output: {output_folder}/index.md and related files - Output: {output_folder}/bmm-index.md and related files
**Status file updated:** {{#if status_file_found}}
**Status Updated:**
- Current step: document-project ✓ - Progress tracking updated
- Next step: {{next_step}} {{else}}
- Progress: {{new_progress_percentage}}% **Note:** Running in standalone mode
{{/if}}
**To proceed:** Check status anytime with: `workflow-status`
Load {{next_agent}} and run: `{{next_command}}`
Or check status anytime with: `workflow-status`
</output> </output>
</check>
<check if="standalone_mode == true">
<output>**✅ Document Project Workflow Complete**
**Documentation Generated:**
- Mode: {{workflow_mode}}
- Scan Level: {{scan_level}}
- Output: {output_folder}/index.md and related files
Note: Running in standalone mode (no status file).
To track progress across workflows, run `workflow-status` first next time.
</output>
</check>
</step> </step>

View File

@@ -6,31 +6,33 @@
<workflow> <workflow>
<step n="0" goal="Check and load workflow status file"> <step n="0" goal="Validate workflow readiness">
<action>Search {output_folder}/ for files matching pattern: bmm-workflow-status.md</action> <invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<action>Find the most recent file (by date in filename: bmm-workflow-status.md)</action> <param>mode: validate</param>
<param>calling_workflow: game-brief</param>
</invoke-workflow>
<check if="exists"> <check if="status_exists == false">
<action>Load the status file</action> <output>{{suggestion}}</output>
<action>Set status_file_found = true</action> <output>Note: Game brief is optional. Continuing without progress tracking.</output>
<action>Store status_file_path for later updates</action> <action>Set standalone_mode = true</action>
</check> </check>
<check if="not exists"> <check if="status_exists == true">
<ask>**No workflow status file found.** <action>Store {{status_file_path}} for later updates</action>
This workflow creates a Game Brief document (optional Phase 1 workflow). <check if="project_type != 'game'">
<output>Note: This is a {{project_type}} project. Game brief is designed for game projects.</output>
<ask>Continue with game brief anyway? (y/n)</ask>
<check if="n">
<action>Exit workflow</action>
</check>
</check>
Options: <check if="warning != ''">
<output>{{warning}}</output>
1. Run workflow-status first to create the status file (recommended for progress tracking) <output>Note: Game brief can provide valuable vision clarity at any stage.</output>
2. Continue in standalone mode (no progress tracking) </check>
3. Exit
What would you like to do?</ask>
<action>If user chooses option 1 → HALT with message: "Please run workflow-status first, then return to game-brief"</action>
<action>If user chooses option 2 → Set standalone_mode = true and continue</action>
<action>If user chooses option 3 → HALT</action>
</check> </check>
</step> </step>
@@ -303,15 +305,9 @@ This brief will serve as the primary input for creating the Game Design Document
<template-output>executive_brief</template-output> <template-output>executive_brief</template-output>
</step> </step>
<step n="16" goal="Update status file on completion"> <step n="16" goal="Update status and complete">
<action>Search {output_folder}/ for files matching pattern: bmm-workflow-status.md</action> <check if="standalone_mode != true">
<action>Find the most recent file (by date in filename)</action> <action>Load {{status_file_path}}</action>
<check if="status file exists">
<action>Load the status file</action>
<template-output file="{{status_file_path}}">current_step</template-output>
<action>Set to: "game-brief"</action>
<template-output file="{{status_file_path}}">current_workflow</template-output> <template-output file="{{status_file_path}}">current_workflow</template-output>
<action>Set to: "game-brief - Complete"</action> <action>Set to: "game-brief - Complete"</action>
@@ -320,22 +316,25 @@ This brief will serve as the primary input for creating the Game Design Document
<action>Increment by: 10% (optional Phase 1 workflow)</action> <action>Increment by: 10% (optional Phase 1 workflow)</action>
<template-output file="{{status_file_path}}">decisions_log</template-output> <template-output file="{{status_file_path}}">decisions_log</template-output>
<action>Add entry:</action> <action>Add entry: "- **{{date}}**: Completed game-brief workflow. Game brief document generated. Next: Proceed to plan-project workflow to create Game Design Document (GDD)."</action>
``` <action>Save {{status_file_path}}</action>
- **{{date}}**: Completed game-brief workflow. Game brief document generated and saved. Next: Proceed to plan-project workflow to create Game Design Document (GDD). </check>
```
<output>**✅ Game Brief Complete, {user_name}!** <output>**✅ Game Brief Complete, {user_name}!**
**Brief Document:** **Brief Document:**
- Game brief saved to {output_folder}/game-brief-{{game_name}}-{{date}}.md - Game brief saved to {output_folder}/bmm-game-brief-{{game_name}}-{{date}}.md
**Status file updated:** {{#if standalone_mode != true}}
**Status Updated:**
- Current step: game-brief ✓ - Progress tracking updated
- Progress: {{new_progress_percentage}}% {{else}}
Note: Running in standalone mode (no status file).
To track progress across workflows, run `workflow-init` first.
{{/if}}
**Next Steps:** **Next Steps:**
@@ -344,27 +343,10 @@ This brief will serve as the primary input for creating the Game Design Document
3. Run `plan-project` workflow to create GDD from this brief 3. Run `plan-project` workflow to create GDD from this brief
4. Validate assumptions with target players 4. Validate assumptions with target players
{{#if standalone_mode != true}}
Check status anytime with: `workflow-status` Check status anytime with: `workflow-status`
{{/if}}
</output> </output>
</check> </step>
<check if="status file not found">
<output>**✅ Game Brief Complete, {user_name}!**
**Brief Document:**
- Game brief saved to {output_folder}/game-brief-{{game_name}}-{{date}}.md
Note: Running in standalone mode (no status file).
To track progress across workflows, run `workflow-status` first.
**Next Steps:**
1. Review the game brief document
2. Run `plan-project` workflow to create GDD
</output>
</check>
</step>
</workflow> </workflow>

View File

@@ -6,31 +6,34 @@
<workflow> <workflow>
<step n="0" goal="Check and load workflow status file"> <step n="0" goal="Validate workflow readiness">
<action>Search {output_folder}/ for files matching pattern: bmm-workflow-status.md</action> <invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<action>Find the most recent file (by date in filename: bmm-workflow-status.md)</action> <param>mode: validate</param>
<param>calling_workflow: product-brief</param>
</invoke-workflow>
<check if="exists"> <check if="status_exists == false">
<action>Load the status file</action> <output>{{suggestion}}</output>
<action>Set status_file_found = true</action> <output>Note: Product Brief is optional. You can continue without status tracking.</output>
<action>Store status_file_path for later updates</action> <action>Set standalone_mode = true</action>
</check> </check>
<check if="not exists"> <check if="status_exists == true">
<ask>**No workflow status file found.** <action>Store {{status_file_path}} for later updates</action>
This workflow creates a Product Brief document (optional Phase 1 workflow). <check if="project_level < 2">
<output>Note: Product Brief is most valuable for Level 2+ projects. Your project is Level {{project_level}}.</output>
<output>You may want to skip directly to technical planning instead.</output>
</check>
Options: <check if="warning != ''">
<output>{{warning}}</output>
1. Run workflow-status first to create the status file (recommended for progress tracking) <ask>Continue with Product Brief anyway? (y/n)</ask>
2. Continue in standalone mode (no progress tracking) <check if="n">
3. Exit <output>Exiting. {{suggestion}}</output>
<action>Exit workflow</action>
What would you like to do?</ask> </check>
<action>If user chooses option 1 → HALT with message: "Please run workflow-status first, then return to product-brief"</action> </check>
<action>If user chooses option 2 → Set standalone_mode = true and continue</action>
<action>If user chooses option 3 → HALT</action>
</check> </check>
</step> </step>
@@ -267,14 +270,8 @@ This brief will serve as the primary input for creating the Product Requirements
</step> </step>
<step n="16" goal="Update status file on completion"> <step n="16" goal="Update status file on completion">
<action>Search {output_folder}/ for files matching pattern: bmm-workflow-status.md</action> <check if="standalone_mode != true">
<action>Find the most recent file (by date in filename)</action> <action>Load {{status_file_path}}</action>
<check if="status file exists">
<action>Load the status file</action>
<template-output file="{{status_file_path}}">current_step</template-output>
<action>Set to: "product-brief"</action>
<template-output file="{{status_file_path}}">current_workflow</template-output> <template-output file="{{status_file_path}}">current_workflow</template-output>
<action>Set to: "product-brief - Complete"</action> <action>Set to: "product-brief - Complete"</action>
@@ -283,22 +280,25 @@ This brief will serve as the primary input for creating the Product Requirements
<action>Increment by: 10% (optional Phase 1 workflow)</action> <action>Increment by: 10% (optional Phase 1 workflow)</action>
<template-output file="{{status_file_path}}">decisions_log</template-output> <template-output file="{{status_file_path}}">decisions_log</template-output>
<action>Add entry:</action> <action>Add entry: "- **{{date}}**: Completed product-brief workflow. Product brief document generated and saved. Next: Proceed to plan-project workflow to create Product Requirements Document (PRD)."</action>
``` <action>Save {{status_file_path}}</action>
- **{{date}}**: Completed product-brief workflow. Product brief document generated and saved. Next: Proceed to plan-project workflow to create Product Requirements Document (PRD). </check>
```
<output>**✅ Product Brief Complete, {user_name}!** <output>**✅ Product Brief Complete, {user_name}!**
**Brief Document:** **Brief Document:**
- Product brief saved to {output_folder}/product-brief-{{project_name}}-{{date}}.md - Product brief saved to {output_folder}/bmm-product-brief-{{project_name}}-{{date}}.md
**Status file updated:** {{#if standalone_mode != true}}
**Status Updated:**
- Current step: product-brief ✓ - Progress tracking updated
- Progress: {{new_progress_percentage}}% - Current workflow marked complete
{{else}}
**Note:** Running in standalone mode (no progress tracking)
{{/if}}
**Next Steps:** **Next Steps:**
@@ -306,27 +306,10 @@ This brief will serve as the primary input for creating the Product Requirements
2. Gather any additional stakeholder input 2. Gather any additional stakeholder input
3. Run `plan-project` workflow to create PRD from this brief 3. Run `plan-project` workflow to create PRD from this brief
{{#if standalone_mode != true}}
Check status anytime with: `workflow-status` Check status anytime with: `workflow-status`
{{/if}}
</output> </output>
</check> </step>
<check if="status file not found">
<output>**✅ Product Brief Complete**
**Brief Document:**
- Product brief saved and ready for handoff
Note: Running in standalone mode (no status file).
To track progress across workflows, run `workflow-status` first.
**Next Steps:**
1. Review the product brief document
2. Run `plan-project` workflow to create PRD
</output>
</check>
</step>
</workflow> </workflow>

View File

@@ -10,31 +10,26 @@
<critical>This is a ROUTER that directs to specialized research instruction sets</critical> <critical>This is a ROUTER that directs to specialized research instruction sets</critical>
<step n="1" goal="Check and load workflow status file"> <step n="1" goal="Validate workflow readiness">
<action>Search {output_folder}/ for files matching pattern: bmm-workflow-status.md</action> <invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<action>Find the most recent file (by date in filename: bmm-workflow-status.md)</action> <param>mode: validate</param>
<param>calling_workflow: research</param>
</invoke-workflow>
<check if="exists"> <check if="status_exists == false">
<action>Load the status file</action> <output>{{suggestion}}</output>
<action>Set status_file_found = true</action> <output>Note: Research is optional. Continuing without progress tracking.</output>
<action>Store status_file_path for later updates</action> <action>Set standalone_mode = true</action>
</check> </check>
<check if="not exists"> <check if="status_exists == true">
<ask>**No workflow status file found.** <action>Store {{status_file_path}} for status updates in sub-workflows</action>
<action>Pass status_file_path to loaded instruction set</action>
This workflow conducts research (optional Phase 1 workflow). <check if="warning != ''">
<output>{{warning}}</output>
Options: <output>Note: Research can provide valuable insights at any project stage.</output>
</check>
1. Run workflow-status first to create the status file (recommended for progress tracking)
2. Continue in standalone mode (no progress tracking)
3. Exit
What would you like to do?</ask>
<action>If user chooses option 1 → HALT with message: "Please run workflow-status first, then return to research"</action>
<action>If user chooses option 2 → Set standalone_mode = true and continue</action>
<action>If user chooses option 3 → HALT</action>
</check> </check>
</step> </step>

View File

@@ -0,0 +1,177 @@
# Workflow Status Service - Integration Examples
## How Other Workflows Can Use the Enhanced workflow-status Service
### Example 1: Simple Validation (product-brief workflow)
Replace the old Step 0:
```xml
<!-- OLD WAY - 35+ lines of duplicate code -->
<step n="0" goal="Check and load workflow status file">
<action>Search {output_folder}/ for files matching pattern: bmm-workflow-status.md</action>
<action>Find the most recent file...</action>
<!-- ... 30+ more lines of checking logic ... -->
</step>
```
With the new service call:
```xml
<!-- NEW WAY - Clean and simple -->
<step n="0" goal="Validate workflow readiness">
<invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<param>mode: validate</param>
<param>calling_workflow: product-brief</param>
</invoke-workflow>
<check if="status_exists == false">
<output>{{suggestion}}</output>
<output>Note: Status tracking is optional. You can continue without it.</output>
</check>
<check if="warning != ''">
<output>{{warning}}</output>
<ask>Continue anyway? (y/n)</ask>
<check if="n">
<action>Exit workflow</action>
</check>
</check>
<action>Store {{status_file_path}} for later updates if needed</action>
</step>
```
### Example 2: Getting Story Data (create-story workflow)
Replace the complex Step 2.5:
```xml
<!-- OLD WAY - Complex parsing logic -->
<step n="2.5" goal="Check status file TODO section for story to draft">
<action>Read {output_folder}/bmm-workflow-status.md (if exists)</action>
<action>Navigate to "### Implementation Progress (Phase 4 Only)" section</action>
<action>Find "#### TODO (Needs Drafting)" section</action>
<!-- ... 40+ lines of parsing and extraction ... -->
</step>
```
With the new service call:
```xml
<!-- NEW WAY - Let workflow-status handle the complexity -->
<step n="2.5" goal="Get next story to draft">
<invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<param>mode: data</param>
<param>data_request: next_story</param>
</invoke-workflow>
<check if="status_exists == false">
<action>Fall back to legacy story discovery</action>
</check>
<check if="todo_story_id exists">
<action>Use {{todo_story_id}} as story to draft</action>
<action>Use {{todo_story_title}} for validation</action>
<action>Create file: {{todo_story_file}}</action>
<output>Drafting story {{todo_story_id}}: {{todo_story_title}}</output>
</check>
</step>
```
### Example 3: Getting Project Configuration (solution-architecture workflow)
```xml
<step n="0" goal="Load project configuration">
<invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<param>mode: data</param>
<param>data_request: project_config</param>
</invoke-workflow>
<check if="status_exists == false">
<ask>No status file. Run standalone or create status first?</ask>
</check>
<check if="status_exists == true">
<action>Use {{project_level}} to determine architecture complexity</action>
<action>Use {{project_type}} to select appropriate templates</action>
<action>Use {{field_type}} to know if brownfield constraints apply</action>
</check>
</step>
```
### Example 4: Quick Init Check (any workflow)
```xml
<step n="0" goal="Check if status exists">
<invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<param>mode: init-check</param>
</invoke-workflow>
<check if="status_exists == false">
<output>{{suggestion}}</output>
<output>Proceeding without status tracking...</output>
</check>
</step>
```
## Benefits of This Approach
1. **DRY Principle**: No more duplicating status check logic across 50+ workflows
2. **Centralized Logic**: Bug fixes and improvements happen in one place
3. **Backward Compatible**: Old workflows continue to work, can migrate gradually
4. **Advisory Not Blocking**: Workflows can proceed even without status file
5. **Flexible Data Access**: Get just what you need (next_story, project_config, etc.)
6. **Cleaner Workflows**: Focus on core logic, not status management
## Available Modes
### `validate` Mode
- **Purpose**: Check if this workflow should run
- **Returns**:
- `status_exists`: true/false
- `should_proceed`: true (always - advisory only)
- `warning`: Any sequence warnings
- `suggestion`: What to do
- `project_level`, `project_type`, `field_type`: For workflow decisions
- `status_file_path`: For later updates
### `data` Mode
- **Purpose**: Extract specific information
- **Parameters**: `data_request` = one of:
- `next_story`: Get TODO story details
- `project_config`: Get project configuration
- `phase_status`: Get phase completion status
- `all`: Get everything
- **Returns**: Requested fields as template outputs
### `init-check` Mode
- **Purpose**: Simple existence check
- **Returns**:
- `status_exists`: true/false
- `suggestion`: Brief message
### `interactive` Mode (default)
- **Purpose**: User-facing status check
- **Shows**: Current status, options menu
- **Returns**: User proceeds with selected action
## Migration Strategy
1. Start with high-value workflows that have complex Step 0s
2. Test with a few workflows first
3. Gradually migrate others as they're updated
4. Old workflows continue to work unchanged
## Next Steps
To integrate into your workflow:
1. Replace your Step 0 with appropriate service call
2. Remove duplicate status checking logic
3. Use returned values for workflow decisions
4. Update status file at completion (if status_exists == true)

View File

@@ -1,11 +1,33 @@
# Workflow Status Check # Workflow Status Check - Multi-Mode Service
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical> <critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
<critical>You MUST have already loaded and processed: {project-root}/bmad/bmm/workflows/1-analysis/workflow-status/workflow.yaml</critical> <critical>You MUST have already loaded and processed: {project-root}/bmad/bmm/workflows/1-analysis/workflow-status/workflow.yaml</critical>
<critical>This is the UNIVERSAL entry point - any agent can ask "what should I do now?"</critical> <critical>This workflow operates in multiple modes: interactive (default), validate, data, init-check</critical>
<critical>Other workflows can call this as a service to avoid duplicating status logic</critical>
<workflow> <workflow>
<step n="0" goal="Determine execution mode">
<action>Check for {{mode}} parameter passed by calling workflow</action>
<action>Default mode = "interactive" if not specified</action>
<check if="mode == interactive">
<action>Continue to Step 1 for normal status check flow</action>
</check>
<check if="mode == validate">
<action>Jump to Step 10 for workflow validation service</action>
</check>
<check if="mode == data">
<action>Jump to Step 20 for data extraction service</action>
</check>
<check if="mode == init-check">
<action>Jump to Step 30 for simple init check</action>
</check>
</step>
<step n="1" goal="Check for status file"> <step n="1" goal="Check for status file">
<action>Search {output_folder}/ for file: bmm-workflow-status.md</action> <action>Search {output_folder}/ for file: bmm-workflow-status.md</action>
@@ -102,4 +124,143 @@ Your choice:</ask>
<action>Handle user selection based on available options</action> <action>Handle user selection based on available options</action>
</step> </step>
<!-- ============================================= -->
<!-- SERVICE MODES - Called by other workflows -->
<!-- ============================================= -->
<step n="10" goal="Validate mode - Check if calling workflow should proceed">
<action>Read {output_folder}/bmm-workflow-status.md if exists</action>
<check if="status file not found">
<template-output>status_exists = false</template-output>
<template-output>should_proceed = true</template-output>
<template-output>warning = "No status file found. Running without progress tracking."</template-output>
<template-output>suggestion = "Consider running workflow-init first for progress tracking"</template-output>
<action>Return to calling workflow</action>
</check>
<check if="status file found">
<action>Parse status file fields</action>
<action>Load workflow path file from WORKFLOW_PATH field</action>
<action>Check if {{calling_workflow}} matches CURRENT_WORKFLOW or NEXT_COMMAND</action>
<template-output>status_exists = true</template-output>
<template-output>current_phase = {{CURRENT_PHASE}}</template-output>
<template-output>current_workflow = {{CURRENT_WORKFLOW}}</template-output>
<template-output>next_workflow = {{NEXT_COMMAND}}</template-output>
<template-output>project_level = {{PROJECT_LEVEL}}</template-output>
<template-output>project_type = {{PROJECT_TYPE}}</template-output>
<template-output>field_type = {{FIELD_TYPE}}</template-output>
<check if="calling_workflow == current_workflow">
<template-output>should_proceed = true</template-output>
<template-output>warning = ""</template-output>
<template-output>suggestion = "Resuming {{current_workflow}}"</template-output>
</check>
<check if="calling_workflow == next_workflow">
<template-output>should_proceed = true</template-output>
<template-output>warning = ""</template-output>
<template-output>suggestion = "Proceeding with planned next step"</template-output>
</check>
<check if="calling_workflow != current_workflow AND calling_workflow != next_workflow">
<action>Check if calling_workflow is in optional workflows list</action>
<check if="is optional">
<template-output>should_proceed = true</template-output>
<template-output>warning = "Running optional workflow {{calling_workflow}}"</template-output>
<template-output>suggestion = "This is optional. Expected next: {{next_workflow}}"</template-output>
</check>
<check if="not optional">
<template-output>should_proceed = true</template-output>
<template-output>warning = "⚠️ Out of sequence: Expected {{next_workflow}}, running {{calling_workflow}}"</template-output>
<template-output>suggestion = "Consider running {{next_workflow}} instead, or continue if intentional"</template-output>
</check>
</check>
<template-output>status_file_path = {{path to bmm-workflow-status.md}}</template-output>
</check>
<action>Return control to calling workflow with all template outputs</action>
</step>
<step n="20" goal="Data mode - Extract specific information">
<action>Read {output_folder}/bmm-workflow-status.md if exists</action>
<check if="status file not found">
<template-output>status_exists = false</template-output>
<template-output>error = "No status file to extract data from"</template-output>
<action>Return to calling workflow</action>
</check>
<check if="status file found">
<action>Parse status file completely</action>
<template-output>status_exists = true</template-output>
<check if="data_request == next_story">
<action>Extract from Development Queue section</action>
<template-output>todo_story_id = {{TODO_STORY}}</template-output>
<template-output>todo_story_title = {{TODO_TITLE}}</template-output>
<template-output>in_progress_story = {{IN_PROGRESS_STORY}}</template-output>
<template-output>stories_sequence = {{STORIES_SEQUENCE}}</template-output>
<template-output>stories_done = {{STORIES_DONE}}</template-output>
<action>Determine story file path based on ID format</action>
<check if='todo_story_id matches "N.M" format'>
<template-output>todo_story_file = "story-{{N}}.{{M}}.md"</template-output>
</check>
<check if='todo_story_id matches "slug-N" format'>
<template-output>todo_story_file = "story-{{slug}}-{{N}}.md"</template-output>
</check>
<check if='todo_story_id matches "slug" format'>
<template-output>todo_story_file = "story-{{slug}}.md"</template-output>
</check>
</check>
<check if="data_request == project_config">
<template-output>project_name = {{PROJECT_NAME}}</template-output>
<template-output>project_type = {{PROJECT_TYPE}}</template-output>
<template-output>project_level = {{PROJECT_LEVEL}}</template-output>
<template-output>field_type = {{FIELD_TYPE}}</template-output>
<template-output>workflow_path = {{WORKFLOW_PATH}}</template-output>
</check>
<check if="data_request == phase_status">
<template-output>current_phase = {{CURRENT_PHASE}}</template-output>
<template-output>phase_1_complete = {{PHASE_1_COMPLETE}}</template-output>
<template-output>phase_2_complete = {{PHASE_2_COMPLETE}}</template-output>
<template-output>phase_3_complete = {{PHASE_3_COMPLETE}}</template-output>
<template-output>phase_4_complete = {{PHASE_4_COMPLETE}}</template-output>
</check>
<check if="data_request == all">
<action>Return all parsed fields as template outputs</action>
</check>
<template-output>status_file_path = {{path to bmm-workflow-status.md}}</template-output>
</check>
<action>Return control to calling workflow with requested data</action>
</step>
<step n="30" goal="Init-check mode - Simple existence check">
<action>Check if {output_folder}/bmm-workflow-status.md exists</action>
<check if="exists">
<template-output>status_exists = true</template-output>
<template-output>suggestion = "Status file found. Ready to proceed."</template-output>
</check>
<check if="not exists">
<template-output>status_exists = false</template-output>
<template-output>suggestion = "No status file. Run workflow-init to create one (optional for progress tracking)"</template-output>
</check>
<action>Return immediately to calling workflow</action>
</step>
</workflow> </workflow>

View File

@@ -11,60 +11,75 @@
<critical>Routes to 3-solutioning for architecture (platform-specific decisions handled there)</critical> <critical>Routes to 3-solutioning for architecture (platform-specific decisions handled there)</critical>
<critical>If users mention technical details, append to technical_preferences with timestamp</critical> <critical>If users mention technical details, append to technical_preferences with timestamp</critical>
<step n="0" goal="Check for workflow status file - REQUIRED"> <step n="0" goal="Validate workflow and extract project configuration">
<action>Check if bmm-workflow-status.md exists in {output_folder}/</action> <invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<param>mode: data</param>
<param>data_request: project_config</param>
</invoke-workflow>
<check if="not exists"> <check if="status_exists == false">
<output>**⚠️ No Workflow Status File Found** <output>**⚠️ No Workflow Status File Found**
The GDD workflow requires an existing workflow status file to understand your project context. The GDD workflow requires a status file to understand your project context.
Please run `workflow-status` first to: Please run `workflow-init` first to:
- Map out your complete workflow journey - Define your project type and level
- Determine project type and level - Map out your workflow journey
- Create the status file with your planned workflow - Create the status file
**To proceed:** Run: `workflow-init`
Run: `bmad analyst workflow-status` After setup, return here to create your GDD.
After completing workflow planning, you'll be directed back to this workflow.
</output> </output>
<action>Exit workflow - cannot proceed without status file</action> <action>Exit workflow - cannot proceed without status file</action>
</check> </check>
<check if="exists"> <check if="status_exists == true">
<action>Load status file and proceed to Step 1</action> <action>Store {{status_file_path}} for later updates</action>
</check>
<check if="project_type != 'game'">
<output>**Incorrect Workflow for Software Projects**
Your project is type: {{project_type}}
**Correct workflows for software projects:**
- Level 0-1: `tech-spec` (Architect agent)
- Level 2-4: `prd` (PM agent)
{{#if project_level <= 1}}
Use: `tech-spec`
{{else}}
Use: `prd`
{{/if}}
</output>
<action>Exit and redirect to appropriate workflow</action>
</check>
</check>
</step>
<step n="0.5" goal="Validate workflow sequencing">
<invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<param>mode: validate</param>
<param>calling_workflow: gdd</param>
</invoke-workflow>
<check if="warning != ''">
<output>{{warning}}</output>
<ask>Continue with GDD anyway? (y/n)</ask>
<check if="n">
<output>{{suggestion}}</output>
<action>Exit workflow</action>
</check>
</check>
</step> </step>
<step n="1" goal="Load context and determine game type"> <step n="1" goal="Load context and determine game type">
<action>Load bmm-workflow-status.md</action> <action>Use {{project_type}} and {{project_level}} from status data</action>
<action>Confirm project_type == "game"</action>
<check if="project_type != game">
<error>This workflow is for game projects only. Software projects should use PRD or tech-spec workflows.</error>
<output>**Incorrect Workflow for Software Projects**
Your status file indicates project_type: {{project_type}}
**Correct workflows for software projects:**
- Level 0-1: `tech-spec` (run with Architect agent)
- Level 2-4: `prd` (run with PM agent)
{{#if project_level <= 1}}
Run: `bmad architect tech-spec`
{{else}}
Run: `bmad pm prd`
{{/if}}
</output>
<action>Exit and redirect user to appropriate software workflow</action>
</check>
<check if="continuation_mode == true"> <check if="continuation_mode == true">
<action>Load existing GDD.md and check completion status</action> <action>Load existing GDD.md and check completion status</action>
@@ -306,7 +321,30 @@ For each {{placeholder}} in the fragment, elicit and capture that information.
</step> </step>
<step n="15" goal="Generate solutioning handoff and next steps"> <step n="15" goal="Update status and populate story sequence">
<action>Load {{status_file_path}}</action>
<template-output file="{{status_file_path}}">current_workflow</template-output>
<action>Set to: "gdd - Complete"</action>
<template-output file="{{status_file_path}}">phase_2_complete</template-output>
<action>Set to: true</action>
<template-output file="{{status_file_path}}">progress_percentage</template-output>
<action>Increment appropriately based on level</action>
<template-output file="{{status_file_path}}">decisions_log</template-output>
<action>Add entry: "- **{{date}}**: Completed GDD workflow. Created bmm-GDD.md and bmm-epics.md with full story breakdown."</action>
<action>Populate STORIES_SEQUENCE from epics.md story list</action>
<action>Count total stories and update story counts</action>
<action>Save {{status_file_path}}</action>
</step>
<step n="16" goal="Generate solutioning handoff and next steps">
<action>Check if game-type fragment contained narrative tags indicating narrative importance</action> <action>Check if game-type fragment contained narrative tags indicating narrative importance</action>

View File

@@ -10,6 +10,23 @@
<critical>If users mention gameplay mechanics, note them but keep focus on narrative</critical> <critical>If users mention gameplay mechanics, note them but keep focus on narrative</critical>
<critical>Facilitate good brainstorming techniques throughout with the user, pushing them to come up with much of the narrative you will help weave together. The goal is for the user to feel that they crafted the narrative and story arc unless they push you to do it all or indicate YOLO</critical> <critical>Facilitate good brainstorming techniques throughout with the user, pushing them to come up with much of the narrative you will help weave together. The goal is for the user to feel that they crafted the narrative and story arc unless they push you to do it all or indicate YOLO</critical>
<step n="0" goal="Check for workflow status">
<invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<param>mode: init-check</param>
</invoke-workflow>
<check if="status_exists == true">
<action>Store {{status_file_path}} for later updates</action>
<action>Set tracking_mode = true</action>
</check>
<check if="status_exists == false">
<action>Set tracking_mode = false</action>
<output>Note: Running without workflow tracking. Run `workflow-init` to enable progress tracking.</output>
</check>
</step>
<step n="1" goal="Load GDD context and assess narrative complexity"> <step n="1" goal="Load GDD context and assess narrative complexity">
<action>Load GDD.md from {output_folder}</action> <action>Load GDD.md from {output_folder}</action>
@@ -522,4 +539,21 @@ Which would you like?</ask>
</step> </step>
<step n="17" goal="Update status if tracking enabled">
<check if="tracking_mode == true">
<action>Load {{status_file_path}}</action>
<template-output file="{{status_file_path}}">current_workflow</template-output>
<action>Set to: "narrative - Complete"</action>
<template-output file="{{status_file_path}}">decisions_log</template-output>
<action>Add entry: "- **{{date}}**: Completed narrative workflow. Created bmm-narrative-design.md with detailed story and character documentation."</action>
<action>Save {{status_file_path}}</action>
<output>Status tracking updated.</output>
</check>
</step>
</workflow> </workflow>

View File

@@ -9,66 +9,76 @@
<workflow> <workflow>
<step n="0" goal="Check for workflow status file - REQUIRED"> <step n="0" goal="Validate workflow and extract project configuration">
<action>Check if bmm-workflow-status.md exists in {output_folder}/</action> <invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<param>mode: data</param>
<param>data_request: project_config</param>
</invoke-workflow>
<check if="not exists"> <check if="status_exists == false">
<output>**⚠️ No Workflow Status File Found** <output>**⚠️ No Workflow Status File Found**
The PRD workflow requires an existing workflow status file to understand your project context. The PRD workflow requires a status file to understand your project context.
Please run `workflow-status` first to: Please run `workflow-init` first to:
- Map out your complete workflow journey - Define your project type and level
- Determine project type and level - Map out your workflow journey
- Create the status file with your planned workflow - Create the status file
**To proceed:** Run: `workflow-init`
Run: `bmad analyst workflow-status` After setup, return here to create your PRD.
After completing workflow planning, you'll be directed back to this workflow.
</output> </output>
<action>Exit workflow - cannot proceed without status file</action> <action>Exit workflow - cannot proceed without status file</action>
</check> </check>
<check if="exists"> <check if="status_exists == true">
<action>Load status file: {status_file}</action> <action>Store {{status_file_path}} for later updates</action>
<action>Proceed to Step 1</action>
<check if="project_level < 2">
<output>**Incorrect Workflow for Level {{project_level}}**
PRD is for Level 2-4 projects. Level 0-1 should use tech-spec directly.
**Correct workflow:** `tech-spec` (Architect agent)
</output>
<action>Exit and redirect to tech-spec</action>
</check> </check>
<check if="project_type == game">
<output>**Incorrect Workflow for Game Projects**
Game projects should use GDD workflow instead of PRD.
**Correct workflow:** `gdd` (PM agent)
</output>
<action>Exit and redirect to gdd</action>
</check>
</check>
</step> </step>
<step n="1" goal="Initialize and load context"> <step n="0.5" goal="Validate workflow sequencing">
<action>Extract project context from status file</action> <invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<action>Verify project_level is 2, 3, or 4</action> <param>mode: validate</param>
<param>calling_workflow: prd</param>
</invoke-workflow>
<check if="project_level < 2"> <check if="warning != ''">
<error>This workflow is for Level 2-4 only. Level 0-1 should use tech-spec workflow.</error> <output>{{warning}}</output>
<output>**Incorrect Workflow for Your Level** <ask>Continue with PRD anyway? (y/n)</ask>
<check if="n">
Your status file indicates Level {{project_level}}. <output>{{suggestion}}</output>
<action>Exit workflow</action>
**Correct workflow:** `tech-spec` (run with Architect agent) </check>
Run: `bmad architect tech-spec`
</output>
<action>Exit and redirect user to tech-spec workflow</action>
</check> </check>
</step>
<check if="project_type == game"> <step n="1" goal="Initialize PRD context">
<error>This workflow is for software projects. Game projects should use GDD workflow.</error>
<output>**Incorrect Workflow for Game Projects**
**Correct workflow:** `gdd` (run with PM agent)
Run: `bmad pm gdd`
</output>
<action>Exit and redirect user to gdd workflow</action>
</check>
<action>Use {{project_level}} from status data</action>
<action>Check for existing PRD.md in {output_folder}</action> <action>Check for existing PRD.md in {output_folder}</action>
<check if="PRD.md exists"> <check if="PRD.md exists">
@@ -392,39 +402,53 @@ For each epic from the epic list, expand with full story details:
</step> </step>
<step n="10" goal="Update workflow status and complete"> <step n="10" goal="Update status and complete">
<action>Update {status_file} with completion status</action> <action>Load {{status_file_path}}</action>
<template-output file="bmm-workflow-status.md">prd_completion_update</template-output> <template-output file="{{status_file_path}}">current_workflow</template-output>
<action>Set to: "prd - Complete"</action>
**✅ PRD Workflow Complete, {user_name}!** <template-output file="{{status_file_path}}">phase_2_complete</template-output>
<action>Set to: true</action>
<template-output file="{{status_file_path}}">decisions_log</template-output>
<action>Add entry: "- **{{date}}**: Completed PRD workflow. Created PRD.md and epics.md with full story breakdown."</action>
<action>Populate STORIES_SEQUENCE from epics.md story list</action>
<action>Count total stories and update story counts</action>
<action>Save {{status_file_path}}</action>
<output>**✅ PRD Workflow Complete, {user_name}!**
**Deliverables Created:** **Deliverables Created:**
1. ✅ PRD.md - Strategic product requirements document 1. ✅ bmm-PRD.md - Strategic product requirements document
2. ✅ epics.md - Tactical implementation roadmap with story breakdown 2. ✅ bmm-epics.md - Tactical implementation roadmap with story breakdown
**Next Steps:** **Next Steps:**
<check if="level == 2"> {{#if project_level == 2}}
- Review PRD and epics with stakeholders
- **Next:** Run tech-spec workflow for lightweight technical planning
- Then proceed to implementation (create-story workflow)
</check>
<check if="level >= 3"> - Review PRD and epics with stakeholders
- Review PRD and epics with stakeholders - **Next:** Run `tech-spec` for lightweight technical planning
- **Next:** Run solution-architecture workflow for full technical design - Then proceed to implementation
- Then proceed to implementation (create-story workflow) {{/if}}
</check>
<ask>Would you like to: {{#if project_level >= 3}}
- Review PRD and epics with stakeholders
- **Next:** Run `solution-architecture` for full technical design
- Then proceed to implementation
{{/if}}
Would you like to:
1. Review/refine any section 1. Review/refine any section
2. Proceed to next phase (tech-spec for Level 2, solution-architecture for Level 3-4) 2. Proceed to next phase
3. Exit and review documents 3. Exit and review documents
</ask> </output>
</step> </step>

View File

@@ -10,74 +10,90 @@
<critical>Project analysis already completed - proceeding directly to technical specification</critical> <critical>Project analysis already completed - proceeding directly to technical specification</critical>
<critical>NO PRD generated - uses tech_spec_template + story templates</critical> <critical>NO PRD generated - uses tech_spec_template + story templates</critical>
<step n="0" goal="Check for workflow status file - REQUIRED"> <step n="0" goal="Validate workflow and extract project configuration">
<action>Check if bmm-workflow-status.md exists in {output_folder}/</action> <invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<param>mode: data</param>
<param>data_request: project_config</param>
</invoke-workflow>
<check if="not exists"> <check if="status_exists == false">
<output>**⚠️ No Workflow Status File Found** <output>**⚠️ No Workflow Status File Found**
The tech-spec workflow requires an existing workflow status file to understand your project context. The tech-spec workflow requires a status file to understand your project context.
Please run `workflow-status` first to: Please run `workflow-init` first to:
- Map out your complete workflow journey - Define your project type and level
- Determine project type and level - Map out your workflow journey
- Create the status file with your planned workflow - Create the status file
**To proceed:** Run: `workflow-init`
Run: `bmad analyst workflow-status` After setup, return here to create your tech spec.
After completing workflow planning, you'll be directed back to this workflow.
</output> </output>
<action>Exit workflow - cannot proceed without status file</action> <action>Exit workflow - cannot proceed without status file</action>
</check> </check>
<check if="exists"> <check if="status_exists == true">
<action>Load status file and proceed to Step 1</action> <action>Store {{status_file_path}} for later updates</action>
<check if="project_level >= 2">
<output>**Incorrect Workflow for Level {{project_level}}**
Tech-spec is for Level 0-1 projects. Level 2-4 should use PRD workflow.
**Correct workflow:** `prd` (PM agent)
</output>
<action>Exit and redirect to prd</action>
</check> </check>
<check if="project_type == game">
<output>**Incorrect Workflow for Game Projects**
Game projects should use GDD workflow instead of tech-spec.
**Correct workflow:** `gdd` (PM agent)
</output>
<action>Exit and redirect to gdd</action>
</check>
</check>
</step>
<step n="0.5" goal="Validate workflow sequencing">
<invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<param>mode: validate</param>
<param>calling_workflow: tech-spec</param>
</invoke-workflow>
<check if="warning != ''">
<output>{{warning}}</output>
<ask>Continue with tech-spec anyway? (y/n)</ask>
<check if="n">
<output>{{suggestion}}</output>
<action>Exit workflow</action>
</check>
</check>
</step> </step>
<step n="1" goal="Confirm project scope and update tracking"> <step n="1" goal="Confirm project scope and update tracking">
<action>Load bmm-workflow-status.md from {output_folder}/bmm-workflow-status.md</action> <action>Use {{project_level}} from status data</action>
<action>Verify project_level is 0 or 1</action>
<check if="project_level >= 2"> <action>Update Workflow Status:</action>
<error>This workflow is for Level 0-1 only. Level 2-4 should use PRD workflow.</error> <template-output file="{{status_file_path}}">current_workflow</template-output>
<output>**Incorrect Workflow for Your Level**
Your status file indicates Level {{project_level}}.
**Correct workflow:** `prd` (run with PM agent)
Run: `bmad pm prd`
</output>
<action>Exit and redirect user to prd workflow</action>
</check>
<check if="project_type == game">
<error>This workflow is for software projects. Game projects should use GDD workflow.</error>
<output>**Incorrect Workflow for Game Projects**
**Correct workflow:** `gdd` (run with PM agent)
Run: `bmad pm gdd`
</output>
<action>Exit and redirect user to gdd workflow</action>
</check>
<action>Update Workflow Status Tracker:</action>
<check if="project_level == 0"> <check if="project_level == 0">
<action>Set current_workflow = "tech-spec (Level 0 - generating tech spec)"</action> <action>Set to: "tech-spec (Level 0 - generating tech spec)"</action>
</check> </check>
<check if="project_level == 1"> <check if="project_level == 1">
<action>Set current_workflow = "tech-spec (Level 1 - generating tech spec)"</action> <action>Set to: "tech-spec (Level 1 - generating tech spec)"</action>
</check> </check>
<action>Set progress_percentage = 20%</action>
<action>Save bmm-workflow-status.md</action> <template-output file="{{status_file_path}}">progress_percentage</template-output>
<action>Set to: 20%</action>
<action>Save {{status_file_path}}</action>
<check if="project_level == 0"> <check if="project_level == 0">
<action>Confirm Level 0 - Single atomic change</action> <action>Confirm Level 0 - Single atomic change</action>
@@ -96,9 +112,10 @@ Run: `bmad pm gdd`
<critical>Generate tech-spec.md - this is the TECHNICAL SOURCE OF TRUTH</critical> <critical>Generate tech-spec.md - this is the TECHNICAL SOURCE OF TRUTH</critical>
<critical>ALL TECHNICAL DECISIONS MUST BE DEFINITIVE - NO AMBIGUITY ALLOWED</critical> <critical>ALL TECHNICAL DECISIONS MUST BE DEFINITIVE - NO AMBIGUITY ALLOWED</critical>
<action>Update progress in bmm-workflow-status.md:</action> <action>Update progress:</action>
<action>Set progress_percentage = 40%</action> <template-output file="{{status_file_path}}">progress_percentage</template-output>
<action>Save bmm-workflow-status.md</action> <action>Set to: 40%</action>
<action>Save {{status_file_path}}</action>
<action>Initialize and write out tech-spec.md using tech_spec_template</action> <action>Initialize and write out tech-spec.md using tech_spec_template</action>
@@ -164,7 +181,7 @@ Run cohesion validation? (y/n)</ask>
<step n="4" goal="Generate user stories based on project level"> <step n="4" goal="Generate user stories based on project level">
<action>Load bmm-workflow-status.md to determine project_level</action> <action>Use {{project_level}} from status data</action>
<check if="project_level == 0"> <check if="project_level == 0">
<action>Invoke instructions-level0-story.md to generate single user story</action> <action>Invoke instructions-level0-story.md to generate single user story</action>

View File

@@ -9,6 +9,23 @@
<critical>Uses ux-spec-template.md for structured output generation</critical> <critical>Uses ux-spec-template.md for structured output generation</critical>
<critical>Can optionally generate AI Frontend Prompts for tools like Vercel v0, Lovable.ai</critical> <critical>Can optionally generate AI Frontend Prompts for tools like Vercel v0, Lovable.ai</critical>
<step n="0" goal="Check for workflow status">
<invoke-workflow path="{project-root}/bmad/bmm/workflows/1-analysis/workflow-status">
<param>mode: init-check</param>
</invoke-workflow>
<check if="status_exists == true">
<action>Store {{status_file_path}} for later updates</action>
<action>Set tracking_mode = true</action>
</check>
<check if="status_exists == false">
<action>Set tracking_mode = false</action>
<output>Note: Running without workflow tracking. Run `workflow-init` to enable progress tracking.</output>
</check>
</step>
<step n="1" goal="Load context and analyze project requirements"> <step n="1" goal="Load context and analyze project requirements">
<action>Determine workflow mode (standalone or integrated)</action> <action>Determine workflow mode (standalone or integrated)</action>
@@ -367,4 +384,21 @@ Select option (1-3):</ask>
</step> </step>
<step n="12" goal="Update status if tracking enabled">
<check if="tracking_mode == true">
<action>Load {{status_file_path}}</action>
<template-output file="{{status_file_path}}">current_workflow</template-output>
<action>Set to: "ux - Complete"</action>
<template-output file="{{status_file_path}}">decisions_log</template-output>
<action>Add entry: "- **{{date}}**: Completed UX workflow. Created bmm-ux-spec.md with comprehensive UX/UI specifications."</action>
<action>Save {{status_file_path}}</action>
<output>Status tracking updated.</output>
</check>
</step>
</workflow> </workflow>

View File

@@ -0,0 +1,170 @@
# Implementation Ready Check Workflow
## Overview
The Implementation Ready Check workflow provides a systematic validation of all planning and solutioning artifacts before transitioning from Phase 3 (Solutioning) to Phase 4 (Implementation) in the BMad Method. This workflow ensures that PRDs, architecture documents, and story breakdowns are properly aligned with no critical gaps or contradictions.
## Purpose
This workflow is designed to:
- **Validate Completeness**: Ensure all required planning documents exist and are complete
- **Verify Alignment**: Check that PRD, architecture, and stories are cohesive and aligned
- **Identify Gaps**: Detect missing stories, unaddressed requirements, or sequencing issues
- **Assess Risks**: Find contradictions, conflicts, or potential implementation blockers
- **Provide Confidence**: Give teams confidence that planning is solid before starting development
## When to Use
This workflow should be invoked:
- At the end of Phase 3 (Solutioning) for Level 2-4 projects
- Before beginning Phase 4 (Implementation)
- After significant planning updates or architectural changes
- When validating readiness for Level 0-1 projects (simplified validation)
## Project Level Adaptations
The workflow adapts its validation based on project level:
### Level 0-1 Projects
- Validates tech spec and simple stories only
- Checks internal consistency and basic coverage
- Lighter validation appropriate for simple projects
### Level 2 Projects
- Validates PRD, tech spec (with embedded architecture), and stories
- Ensures PRD requirements are fully covered
- Verifies technical approach aligns with business goals
### Level 3-4 Projects
- Full validation of PRD, solution architecture, and comprehensive stories
- Deep cross-reference checking across all artifacts
- Validates architectural decisions don't introduce scope creep
- Checks UX artifacts if applicable
## How to Invoke
### Via Scrum Master Agent
```
*assess-project-ready
```
### Direct Workflow Invocation
```
workflow implementation-ready-check
```
## Expected Inputs
The workflow will automatically search your project's output folder for:
- Product Requirements Documents (PRD)
- Solution Architecture documents
- Technical Specifications
- Epic and Story breakdowns
- UX artifacts (if applicable)
No manual input file specification needed - the workflow discovers documents automatically.
## Generated Output
The workflow produces a comprehensive **Implementation Readiness Report** containing:
1. **Executive Summary** - Overall readiness status
2. **Document Inventory** - What was found and reviewed
3. **Alignment Validation** - Cross-reference analysis results
4. **Gap Analysis** - Missing items and risks identified
5. **Findings by Severity** - Critical, High, Medium, Low issues
6. **Recommendations** - Specific actions to address issues
7. **Readiness Decision** - Ready, Ready with Conditions, or Not Ready
Output Location: `{output_folder}/implementation-readiness-report-{date}.md`
## Workflow Steps
1. **Initialize** - Get current workflow status and project level
2. **Document Discovery** - Find all planning artifacts
3. **Deep Analysis** - Extract requirements, decisions, and stories
4. **Cross-Reference Validation** - Check alignment between all documents
5. **Gap and Risk Analysis** - Identify issues and conflicts
6. **UX Validation** (optional) - Verify UX concerns are addressed
7. **Generate Report** - Compile comprehensive readiness assessment
8. **Status Update** (optional) - Offer to advance workflow to next phase
## Validation Criteria
The workflow uses systematic validation rules adapted to each project level:
- **Document completeness and quality**
- **Requirement to story traceability**
- **Architecture to implementation alignment**
- **Story sequencing and dependencies**
- **Greenfield project setup coverage**
- **Risk identification and mitigation**
## Special Features
### Intelligent Adaptation
- Automatically adjusts validation based on project level
- Recognizes when UX workflow is active
- Handles greenfield vs. brownfield projects differently
### Comprehensive Coverage
- Validates not just presence but quality and alignment
- Checks for both gaps and gold-plating
- Ensures logical story sequencing
### Actionable Output
- Provides specific, actionable recommendations
- Categorizes issues by severity
- Includes positive findings and commendations
## Integration with BMad Method
This workflow integrates seamlessly with the BMad Method workflow system:
- Uses workflow-status to understand project context
- Can update workflow status to advance to next phase
- Follows standard BMad document naming conventions
- Searches standard output folders automatically
## Troubleshooting
### Documents Not Found
- Ensure documents are in the configured output folder
- Check that document names follow BMad conventions
- Verify workflow-status is properly configured
### Validation Too Strict
- The workflow adapts to project level automatically
- Level 0-1 projects get lighter validation
- Consider if your project level is set correctly
### Report Too Long
- Focus on Critical and High priority issues first
- Use the executive summary for quick decisions
- Review detailed findings only for areas of concern
## Support
For issues or questions about this workflow:
- Consult the BMad Method documentation
- Check the SM agent for workflow guidance
- Review validation-criteria.yaml for detailed rules
---
_This workflow is part of the BMad Method v6-alpha suite of planning and solutioning tools_

View File

@@ -0,0 +1,171 @@
# Implementation Readiness Validation Checklist
## Document Completeness
### Core Planning Documents
- [ ] PRD exists and is complete (Level 2-4 projects)
- [ ] PRD contains measurable success criteria
- [ ] PRD defines clear scope boundaries and exclusions
- [ ] Solution Architecture document exists (Level 3-4 projects)
- [ ] Technical Specification exists with implementation details
- [ ] Epic and story breakdown document exists
- [ ] All documents are dated and versioned
### Document Quality
- [ ] No placeholder sections remain in any document
- [ ] All documents use consistent terminology
- [ ] Technical decisions include rationale and trade-offs
- [ ] Assumptions and risks are explicitly documented
- [ ] Dependencies are clearly identified and documented
## Alignment Verification
### PRD to Architecture Alignment (Level 3-4)
- [ ] Every functional requirement in PRD has architectural support documented
- [ ] All non-functional requirements from PRD are addressed in architecture
- [ ] Architecture doesn't introduce features beyond PRD scope
- [ ] Performance requirements from PRD match architecture capabilities
- [ ] Security requirements from PRD are fully addressed in architecture
### PRD to Stories Coverage (Level 2-4)
- [ ] Every PRD requirement maps to at least one story
- [ ] All user journeys in PRD have complete story coverage
- [ ] Story acceptance criteria align with PRD success criteria
- [ ] Priority levels in stories match PRD feature priorities
- [ ] No stories exist without PRD requirement traceability
### Architecture to Stories Implementation
- [ ] All architectural components have implementation stories
- [ ] Infrastructure setup stories exist for each architectural layer
- [ ] Integration points defined in architecture have corresponding stories
- [ ] Data migration/setup stories exist if required by architecture
- [ ] Security implementation stories cover all architecture security decisions
## Story and Sequencing Quality
### Story Completeness
- [ ] All stories have clear acceptance criteria
- [ ] Technical tasks are defined within relevant stories
- [ ] Stories include error handling and edge cases
- [ ] Each story has clear definition of done
- [ ] Stories are appropriately sized (no epic-level stories remaining)
### Sequencing and Dependencies
- [ ] Stories are sequenced in logical implementation order
- [ ] Dependencies between stories are explicitly documented
- [ ] No circular dependencies exist
- [ ] Prerequisite technical tasks precede dependent stories
- [ ] Foundation/infrastructure stories come before feature stories
### Greenfield Project Specifics
- [ ] Initial project setup and configuration stories exist
- [ ] Development environment setup is documented
- [ ] CI/CD pipeline stories are included early in sequence
- [ ] Database/storage initialization stories are properly placed
- [ ] Authentication/authorization stories precede protected features
## Risk and Gap Assessment
### Critical Gaps
- [ ] No core PRD requirements lack story coverage
- [ ] No architectural decisions lack implementation stories
- [ ] All integration points have implementation plans
- [ ] Error handling strategy is defined and implemented
- [ ] Security concerns are all addressed
### Technical Risks
- [ ] No conflicting technical approaches between stories
- [ ] Technology choices are consistent across all documents
- [ ] Performance requirements are achievable with chosen architecture
- [ ] Scalability concerns are addressed if applicable
- [ ] Third-party dependencies are identified with fallback plans
## UX and Special Concerns (if applicable)
### UX Coverage
- [ ] UX requirements are documented in PRD
- [ ] UX implementation tasks exist in relevant stories
- [ ] Accessibility requirements have story coverage
- [ ] Responsive design requirements are addressed
- [ ] User flow continuity is maintained across stories
### Special Considerations
- [ ] Compliance requirements are fully addressed
- [ ] Internationalization needs are covered if required
- [ ] Performance benchmarks are defined and measurable
- [ ] Monitoring and observability stories exist
- [ ] Documentation stories are included where needed
## Overall Readiness
### Ready to Proceed Criteria
- [ ] All critical issues have been resolved
- [ ] High priority concerns have mitigation plans
- [ ] Story sequencing supports iterative delivery
- [ ] Team has necessary skills for implementation
- [ ] No blocking dependencies remain unresolved
### Quality Indicators
- [ ] Documents demonstrate thorough analysis
- [ ] Clear traceability exists across all artifacts
- [ ] Consistent level of detail throughout documents
- [ ] Risks are identified with mitigation strategies
- [ ] Success criteria are measurable and achievable
## Assessment Completion
### Report Quality
- [ ] All findings are supported by specific examples
- [ ] Recommendations are actionable and specific
- [ ] Severity levels are appropriately assigned
- [ ] Positive findings are highlighted
- [ ] Next steps are clearly defined
### Process Validation
- [ ] All expected documents were reviewed
- [ ] Cross-references were systematically checked
- [ ] Project level considerations were applied correctly
- [ ] Workflow status was checked and considered
- [ ] Output folder was thoroughly searched for artifacts
---
## Issue Log
### Critical Issues Found
- [ ] ***
- [ ] ***
- [ ] ***
### High Priority Issues Found
- [ ] ***
- [ ] ***
- [ ] ***
### Medium Priority Issues Found
- [ ] ***
- [ ] ***
- [ ] ***
---
_Use this checklist to ensure comprehensive validation of implementation readiness_

View File

@@ -0,0 +1,262 @@
# Implementation Ready Check - Workflow Instructions
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
<critical>You MUST have already loaded and processed: {project-root}/bmad/bmm/workflows/3-solutioning/implementation-ready-check/workflow.yaml</critical>
<critical>Communicate all findings and analysis in {communication_language} throughout the assessment</critical>
<workflow>
<step n="0" goal="Initialize and understand project context">
<invoke-workflow path="{workflow_status_workflow}">
<param>mode: data</param>
<param>data_request: project_config</param>
</invoke-workflow>
<check if="status_exists == false">
<output>**⚠️ No Workflow Status File Found**
The Implementation Ready Check requires a status file to understand your project context.
Please run `workflow-init` first to establish your project configuration.
After setup, return here to validate implementation readiness.
</output>
<action>Exit workflow - cannot proceed without status file</action>
</check>
<check if="status_exists == true">
<action>Store {{status_file_path}} for later updates</action>
<action>Store {{project_level}}, {{active_path}}, and {{workflow_phase}} for validation context</action>
<action>Based on the project_level, understand what artifacts should exist:
- Level 0-1: Tech spec and simple stories only (no PRD, minimal solutioning)
- Level 2: PRD, tech spec, epics/stories (no separate architecture doc)
- Level 3-4: Full suite - PRD, solution architecture, epics/stories, possible UX artifacts
</action>
<critical>The validation approach must adapt to the project level - don't look for documents that shouldn't exist at lower levels</critical>
</check>
<template-output>project_context</template-output>
</step>
<step n="1" goal="Discover and inventory project artifacts">
<action>Search the {output_folder} for relevant planning and solutioning documents based on project level identified in Step 0</action>
<action>For Level 0-1 projects, locate:
- Technical specification document(s)
- Story/task lists or simple epic breakdowns
- Any API or interface definitions
</action>
<action>For Level 2-4 projects, locate:
- Product Requirements Document (PRD)
- Solution Architecture document (Level 3-4 only)
- Technical Specification (Level 2 includes architecture within)
- Epic and story breakdowns
- UX artifacts if the active path includes UX workflow
- Any supplementary planning documents
</action>
<action>Create an inventory of found documents with:
- Document type and purpose
- File path and last modified date
- Brief description of what each contains
- Any missing expected documents flagged as potential issues
</action>
<template-output>document_inventory</template-output>
</step>
<step n="2" goal="Deep analysis of core planning documents">
<action>Load and thoroughly analyze each discovered document to extract:
- Core requirements and success criteria
- Architectural decisions and constraints
- Technical implementation approaches
- User stories and acceptance criteria
- Dependencies and sequencing requirements
- Any assumptions or risks documented
</action>
<action>For PRD analysis (Level 2-4), focus on:
- User requirements and use cases
- Functional and non-functional requirements
- Success metrics and acceptance criteria
- Scope boundaries and explicitly excluded items
- Priority levels for different features
</action>
<action>For Architecture/Tech Spec analysis, focus on:
- System design decisions and rationale
- Technology stack and framework choices
- Integration points and APIs
- Data models and storage decisions
- Security and performance considerations
- Any architectural constraints that might affect story implementation
</action>
<action>For Epic/Story analysis, focus on:
- Coverage of PRD requirements
- Story sequencing and dependencies
- Acceptance criteria completeness
- Technical tasks within stories
- Estimated complexity and effort indicators
</action>
<template-output>document_analysis</template-output>
</step>
<step n="3" goal="Cross-reference validation and alignment check">
<action>Systematically validate alignment between all artifacts, adapting validation based on project level</action>
<action>PRD ↔ Architecture Alignment (Level 3-4):
- Verify every PRD requirement has corresponding architectural support
- Check that architecture decisions don't contradict PRD constraints
- Identify any architecture additions beyond PRD scope (potential gold-plating)
- Ensure non-functional requirements from PRD are addressed in architecture
</action>
<action>PRD ↔ Stories Coverage (Level 2-4):
- Map each PRD requirement to implementing stories
- Identify any PRD requirements without story coverage
- Find stories that don't trace back to PRD requirements
- Validate that story acceptance criteria align with PRD success criteria
</action>
<action>Architecture ↔ Stories Implementation Check:
- Verify architectural decisions are reflected in relevant stories
- Check that story technical tasks align with architectural approach
- Identify any stories that might violate architectural constraints
- Ensure infrastructure and setup stories exist for architectural components
</action>
<action>For Level 0-1 projects (Tech Spec only):
- Validate internal consistency within tech spec
- Check that all specified features have corresponding stories
- Verify story sequencing matches technical dependencies
</action>
<template-output>alignment_validation</template-output>
</step>
<step n="4" goal="Gap and risk analysis">
<action>Identify and categorize all gaps, risks, and potential issues discovered during validation</action>
<action>Check for Critical Gaps:
- Missing stories for core requirements
- Unaddressed architectural concerns
- Absent infrastructure or setup stories for greenfield projects
- Missing error handling or edge case coverage
- Security or compliance requirements not addressed
</action>
<action>Identify Sequencing Issues:
- Dependencies not properly ordered
- Stories that assume components not yet built
- Parallel work that should be sequential
- Missing prerequisite technical tasks
</action>
<action>Detect Potential Contradictions:
- Conflicts between PRD and architecture approaches
- Stories with conflicting technical approaches
- Acceptance criteria that contradict requirements
- Resource or technology conflicts
</action>
<action>Find Gold-Plating and Scope Creep:
- Features in architecture not required by PRD
- Stories implementing beyond requirements
- Technical complexity beyond project needs
- Over-engineering indicators
</action>
<template-output>gap_risk_analysis</template-output>
</step>
<step n="5" goal="UX and special concerns validation" optional="true">
<check if="UX artifacts exist or UX workflow in active path">
<action>Review UX artifacts and validate integration:
- Check that UX requirements are reflected in PRD
- Verify stories include UX implementation tasks
- Ensure architecture supports UX requirements (performance, responsiveness)
- Identify any UX concerns not addressed in stories
</action>
<action>Validate accessibility and usability coverage:
- Check for accessibility requirement coverage in stories
- Verify responsive design considerations if applicable
- Ensure user flow completeness across stories
</action>
</check>
<template-output>ux_validation</template-output>
</step>
<step n="6" goal="Generate comprehensive readiness assessment">
<action>Compile all findings into a structured readiness report with:
- Executive summary of readiness status
- Project context and validation scope
- Document inventory and coverage assessment
- Detailed findings organized by severity (Critical, High, Medium, Low)
- Specific recommendations for each issue
- Overall readiness recommendation (Ready, Ready with Conditions, Not Ready)
</action>
<action>Provide actionable next steps:
- List any critical issues that must be resolved
- Suggest specific document updates needed
- Recommend additional stories or tasks required
- Propose sequencing adjustments if needed
</action>
<action>Include positive findings:
- Highlight well-aligned areas
- Note particularly thorough documentation
- Recognize good architectural decisions
- Commend comprehensive story coverage where found
</action>
<template-output>readiness_assessment</template-output>
</step>
<step n="7" goal="Workflow status update offer" optional="true">
<ask>The readiness assessment is complete. Would you like to update the workflow status to proceed to the next phase? [yes/no]
Note: This will advance the project workflow to the next phase in your current path.</ask>
<action if="user_response == 'yes'">
Determine the next workflow phase based on current status:
- If Level 0-1: Advance to implementation phase
- If Level 2-4 in solutioning: Advance to Phase 4 (Implementation)
- Update the workflow status configuration accordingly
- Confirm the update with the user
</action>
<action if="user_response == 'no'">
Acknowledge that the workflow status remains unchanged.
Remind user they can manually update when ready.
</action>
<template-output>status_update_result</template-output>
</step>
</workflow>

View File

@@ -0,0 +1,146 @@
# Implementation Readiness Assessment Report
**Date:** {{date}}
**Project:** {{project_name}}
**Assessed By:** {{user_name}}
**Assessment Type:** Phase 3 to Phase 4 Transition Validation
---
## Executive Summary
{{readiness_assessment}}
---
## Project Context
{{project_context}}
---
## Document Inventory
### Documents Reviewed
{{document_inventory}}
### Document Analysis Summary
{{document_analysis}}
---
## Alignment Validation Results
### Cross-Reference Analysis
{{alignment_validation}}
---
## Gap and Risk Analysis
### Critical Findings
{{gap_risk_analysis}}
---
## UX and Special Concerns
{{ux_validation}}
---
## Detailed Findings
### 🔴 Critical Issues
_Must be resolved before proceeding to implementation_
{{critical_issues}}
### 🟠 High Priority Concerns
_Should be addressed to reduce implementation risk_
{{high_priority_concerns}}
### 🟡 Medium Priority Observations
_Consider addressing for smoother implementation_
{{medium_priority_observations}}
### 🟢 Low Priority Notes
_Minor items for consideration_
{{low_priority_notes}}
---
## Positive Findings
### ✅ Well-Executed Areas
{{positive_findings}}
---
## Recommendations
### Immediate Actions Required
{{immediate_actions}}
### Suggested Improvements
{{suggested_improvements}}
### Sequencing Adjustments
{{sequencing_adjustments}}
---
## Readiness Decision
### Overall Assessment: {{overall_readiness_status}}
{{readiness_rationale}}
### Conditions for Proceeding (if applicable)
{{conditions_for_proceeding}}
---
## Next Steps
{{recommended_next_steps}}
### Workflow Status Update
{{status_update_result}}
---
## Appendices
### A. Validation Criteria Applied
{{validation_criteria_used}}
### B. Traceability Matrix
{{traceability_matrix}}
### C. Risk Mitigation Strategies
{{risk_mitigation_strategies}}
---
_This readiness assessment was generated using the BMad Method Implementation Ready Check workflow (v6-alpha)_

View File

@@ -0,0 +1,184 @@
# Implementation Readiness Validation Criteria
# Defines systematic validation rules by project level
validation_rules:
# Level 0-1 Projects (Simple, minimal planning)
level_0_1:
required_documents:
- tech_spec
- stories_or_tasks
validations:
- name: "Tech Spec Completeness"
checks:
- "All features defined with implementation approach"
- "Technical dependencies identified"
- "API contracts defined if applicable"
- "Data models specified"
- name: "Story Coverage"
checks:
- "All tech spec features have corresponding stories"
- "Stories are sequenced logically"
- "Technical tasks are defined"
- "No critical gaps in coverage"
# Level 2 Projects (PRD + Tech Spec, no separate architecture)
level_2:
required_documents:
- prd
- tech_spec # Includes architecture decisions
- epics_and_stories
validations:
- name: "PRD to Tech Spec Alignment"
checks:
- "All PRD requirements addressed in tech spec"
- "Architecture embedded in tech spec covers PRD needs"
- "Non-functional requirements are specified"
- "Technical approach supports business goals"
- name: "Story Coverage and Alignment"
checks:
- "Every PRD requirement has story coverage"
- "Stories align with tech spec approach"
- "Epic breakdown is complete"
- "Acceptance criteria match PRD success criteria"
- name: "Sequencing Validation"
checks:
- "Foundation stories come first"
- "Dependencies are properly ordered"
- "Iterative delivery is possible"
- "No circular dependencies"
# Level 3-4 Projects (Full planning with separate architecture)
level_3_4:
required_documents:
- prd
- solution_architecture
- epics_and_stories
- tech_spec # Optional at Level 4
validations:
- name: "PRD Completeness"
checks:
- "User requirements fully documented"
- "Success criteria are measurable"
- "Scope boundaries clearly defined"
- "Priorities are assigned"
- name: "Architecture Coverage"
checks:
- "All PRD requirements have architectural support"
- "System design is complete"
- "Integration points defined"
- "Security architecture specified"
- "Performance considerations addressed"
- name: "PRD-Architecture Alignment"
checks:
- "No architecture gold-plating beyond PRD"
- "NFRs from PRD reflected in architecture"
- "Technology choices support requirements"
- "Scalability matches expected growth"
- name: "Story Implementation Coverage"
checks:
- "All architectural components have stories"
- "Infrastructure setup stories exist"
- "Integration implementation planned"
- "Security implementation stories present"
- name: "Comprehensive Sequencing"
checks:
- "Infrastructure before features"
- "Authentication before protected resources"
- "Core features before enhancements"
- "Dependencies properly ordered"
- "Allows for iterative releases"
# Special validation contexts
special_contexts:
greenfield:
additional_checks:
- "Project initialization stories exist"
- "Development environment setup documented"
- "CI/CD pipeline stories included"
- "Initial data/schema setup planned"
- "Deployment infrastructure stories present"
ux_workflow_active:
additional_checks:
- "UX requirements in PRD"
- "UX implementation stories exist"
- "Accessibility requirements covered"
- "Responsive design addressed"
- "User flow continuity maintained"
api_heavy:
additional_checks:
- "API contracts fully defined"
- "Versioning strategy documented"
- "Authentication/authorization specified"
- "Rate limiting considered"
- "API documentation stories included"
# Severity definitions
severity_levels:
critical:
description: "Must be resolved before implementation"
examples:
- "Missing stories for core requirements"
- "Conflicting technical approaches"
- "No infrastructure setup for greenfield"
- "Security requirements not addressed"
high:
description: "Should be addressed to reduce risk"
examples:
- "Incomplete acceptance criteria"
- "Unclear story dependencies"
- "Missing error handling coverage"
- "Performance requirements not validated"
medium:
description: "Consider addressing for smoother implementation"
examples:
- "Documentation gaps"
- "Test strategy not defined"
- "Monitoring approach unclear"
- "Minor sequencing improvements possible"
low:
description: "Minor improvements for consideration"
examples:
- "Formatting inconsistencies"
- "Optional enhancements identified"
- "Style guide compliance"
- "Nice-to-have features noted"
# Readiness decision criteria
readiness_decisions:
ready:
criteria:
- "No critical issues found"
- "All required documents present"
- "Core alignments validated"
- "Story sequencing logical"
- "Team can begin implementation"
ready_with_conditions:
criteria:
- "Only high/medium issues found"
- "Mitigation plans identified"
- "Core path to MVP clear"
- "Issues won't block initial stories"
not_ready:
criteria:
- "Critical issues identified"
- "Major gaps in coverage"
- "Conflicting approaches found"
- "Required documents missing"
- "Blocking dependencies unresolved"

View File

@@ -0,0 +1,35 @@
# Implementation Ready Check - Workflow Configuration
name: implementation-ready-check
description: "Systematically validate that all planning and solutioning phases are complete and properly aligned before transitioning to Phase 4 implementation. Ensures PRD, architecture, and stories are cohesive with no gaps or contradictions."
author: "BMad Builder"
# Critical variables from config
config_source: "{project-root}/bmad/bmm/config.yaml"
output_folder: "{config_source}:output_folder"
user_name: "{config_source}:user_name"
communication_language: "{config_source}:communication_language"
date: system-generated
# Workflow status integration
workflow_status_workflow: "{project-root}/bmad/bmm/workflows/1-analysis/workflow-status/workflow.yaml"
workflow_paths_dir: "{project-root}/bmad/bmm/workflows/1-analysis/workflow-status/paths"
# Module path and component files
installed_path: "{project-root}/bmad/bmm/workflows/3-solutioning/implementation-ready-check"
template: "{installed_path}/template.md"
instructions: "{installed_path}/instructions.md"
validation: "{installed_path}/checklist.md"
# Output configuration
default_output_file: "{output_folder}/implementation-readiness-report-{{date}}.md"
# Expected input documents (varies by project level)
recommended_inputs:
- prd: "{output_folder}/prd*.md"
- architecture: "{output_folder}/solution-architecture*.md"
- tech_spec: "{output_folder}/tech-spec*.md"
- epics_stories: "{output_folder}/epic*.md"
- ux_artifacts: "{output_folder}/ux*.md"
# Validation criteria data
validation_criteria: "{installed_path}/validation-criteria.yaml"

File diff suppressed because it is too large Load Diff