some output should be improved and not run together in chat windows

This commit is contained in:
Brian Madison
2025-10-30 08:13:18 -05:00
parent 6d7f42dbec
commit ec111972a0
29 changed files with 1098 additions and 713 deletions

View File

@@ -19,7 +19,7 @@ The workflow status system provides:
workflow-status/
├── workflow.yaml # Main configuration
├── instructions.md # Status checker (99 lines)
├── workflow-status-template.md # Clean key-value template
├── workflow-status-template.yaml # Clean YAML status template
├── project-levels.yaml # Source of truth for scale definitions
└── paths/ # Modular workflow definitions
├── greenfield-level-0.yaml through level-4.yaml
@@ -61,25 +61,44 @@ workflow-init/
## Status File Format
Simple key-value pairs for instant parsing:
Clean YAML format with all workflows listed up front:
```markdown
PROJECT_NAME: MyProject
PROJECT_TYPE: software
PROJECT_LEVEL: 2
FIELD_TYPE: greenfield
CURRENT_PHASE: 2-Planning
CURRENT_WORKFLOW: prd
NEXT_ACTION: Continue PRD
NEXT_COMMAND: prd
NEXT_AGENT: pm
```yaml
# generated: 2025-10-29
# project: MyProject
# project_type: software
# project_level: 2
# field_type: greenfield
# workflow_path: greenfield-level-2.yaml
workflow_status:
# Phase 1: Analysis
brainstorm-project: optional
research: optional
product-brief: recommended
# Phase 2: Planning
prd: docs/prd.md
validate-prd: optional
create-design: conditional
# Phase 3: Solutioning
create-architecture: required
validate-architecture: optional
solutioning-gate-check: required
```
Any agent can instantly grep what they need:
**Status Values:**
- Any: `grep 'NEXT_ACTION:' status.md`
- Any: `grep 'CURRENT_PHASE:' status.md`
- Any: `grep 'NEXT_COMMAND:' status.md`
- `required` / `optional` / `recommended` / `conditional` - Not yet started
- `{file-path}` - Completed (e.g., `docs/prd.md`)
- `skipped` - Optional workflow that was skipped
Any agent can instantly parse what they need:
- Read YAML to see all workflows and their status
- Check which workflows are completed vs pending
- Auto-detect existing work by scanning for output files
## Project Levels
@@ -213,10 +232,10 @@ Other workflows read the status to coordinate:
**Phase 4 (Implementation):**
- workflow-status only tracks sprint-planning completion
- After sprint-planning, all story/epic tracking happens in the sprint plan output file
- After sprint-planning, all story/epic tracking happens in sprint-status.yaml
- Phase 4 workflows do NOT read/write workflow-status (except sprint-planning for prerequisite verification)
The status file is the single source of truth for Phases 1-3 and the hub that keeps all agents synchronized.
The workflow-status.yaml file is the single source of truth for Phases 1-3, and sprint-status.yaml takes over for Phase 4 implementation tracking.
## Benefits

View File

@@ -261,36 +261,129 @@ Here's the complexity scale for reference:
<template-output>workflow_path_file</template-output>
</step>
<step n="5" goal="Generate workflow summary">
<action>Build workflow from loaded path file</action>
<action>Display phases and workflows</action>
<action>Set initial values for status file</action>
<step n="5" goal="Build workflow status YAML structure">
<action>Parse the loaded workflow path file and extract all workflows</action>
<template-output>current_phase</template-output>
<template-output>current_workflow</template-output>
<template-output>current_agent</template-output>
<template-output>next_action</template-output>
<template-output>next_command</template-output>
<template-output>next_agent</template-output>
<action>For each phase in the path file:
- Extract phase number and name
- Extract all workflows in that phase
- For each workflow, determine its status type:
- required: true → status = "required"
- recommended: true → status = "recommended"
- conditional: "if_has_ui" → status = "conditional"
- optional: true → status = "optional"
- Default if not specified → status = "required"
</action>
<action>Build the workflow_items list in this format:
For each phase:
1. Add comment header: ` # Phase {n}: {Phase Name}`
2. For each workflow in phase:
- Add entry: ` {workflow-id}: {status}`
3. Add blank line between phases
Example structure:
```
# Phase 1: Analysis
brainstorm-project: optional
research: optional
product-brief: recommended
# Phase 2: Planning
prd: required
validate-prd: optional
create-design: conditional
```
</action>
<action>Scan for existing workflow output files to auto-detect completion:
For each workflow in the list, check common output locations:
- {output_folder}/brainstorm-\*.md for brainstorm-project
- {output_folder}/research-\*.md for research
- {output_folder}/product-brief.md for product-brief
- {output_folder}/prd.md for prd
- {output_folder}/ux-design.md for create-design
- {output_folder}/architecture.md for create-architecture
- {output_folder}/tech-spec.md for tech-spec
- {output_folder}/sprint-status.yaml for sprint-planning
CRITICAL: If file exists, replace status with ONLY the file path - nothing else.
Example: product-brief: docs/product-brief.md
NOT: product-brief: "completed - docs/product-brief.md" or any other text.
</action>
<template-output>workflow_items</template-output>
</step>
<step n="6" goal="Create status file">
<action>Initialize all status values</action>
<template-output>start_date</template-output>
<template-output>last_updated</template-output>
<template-output>phase_1_complete</template-output>
<template-output>phase_2_complete</template-output>
<template-output>phase_3_complete</template-output>
<template-output>phase_4_complete</template-output>
<step n="6" goal="Create workflow status file">
<action>Set generated date to current date</action>
<template-output>generated</template-output>
<action>Prepare all template variables for workflow-status-template.yaml:
- generated: {current_date}
- project_name: {project_name}
- project_type: {project_type}
- project_level: {project_level}
- field_type: {field_type}
- workflow_path_file: {workflow_path_file}
- workflow_items: {workflow_items from step 5}
</action>
<action>Display a preview of what will be created:
Show the first workflow in each phase and total count:
"Ready to create workflow status tracking:
- Phase 1 ({phase_1_workflow_count} workflows): Starting with {first_workflow_phase_1}
- Phase 2 ({phase_2_workflow_count} workflows): Starting with {first_workflow_phase_2}
- Phase 3 ({phase_3_workflow_count} workflows): Starting with {first_workflow_phase_3}
- Phase 4 (Implementation tracked separately in sprint-status.yaml)
{{#if detected_completed_workflows}}
Found existing work:
{{#each detected_files}}
- {{workflow_name}}: {{file_path}}
{{/each}}
{{/if}}"
</action>
<ask>Ready to create your workflow status file? (y/n)</ask>
<check if="answer == y">
<action>Save status file to {output_folder}/bmm-workflow-status.md</action>
<output>✅ Status file created! Next up: {{next_agent}} agent, run `{{next_command}}`</output>
<check if="next_agent !== current_agent">
<output>It is strongly recommended to clear the context or start a new chat and load the next agent to execute the next command from that agents help menu, unless there is something else I can do for you first.</output>
</check>
<action>Generate YAML from workflow-status-template.yaml with all variables</action>
<action>Save status file to {output_folder}/bmm-workflow-status.yaml</action>
<action>Identify the first non-completed workflow in the list</action>
<action>Look up that workflow's agent and command from the path file</action>
<output>✅ Workflow status file created at {output_folder}/bmm-workflow-status.yaml
**Next Steps:**
{{#if detected_completed_workflows}}
You have {{detected_count}} workflow(s) already completed. Great progress!
{{/if}}
**Next Workflow:** {{next_workflow_name}}
**Agent:** {{next_agent}}
**Command:** /bmad:bmm:workflows:{{next_workflow_id}}
{{#if next_agent !== 'pm'}}
It is recommended to start a new chat and load the {{next_agent}} agent before running the next workflow.
{{/if}}
</output>
</check>
</step>

View File

@@ -16,13 +16,13 @@ date: system-generated
# Workflow components
installed_path: "{project-root}/bmad/bmm/workflows/workflow-status/init"
instructions: "{installed_path}/instructions.md"
template: "{project-root}/bmad/bmm/workflows/workflow-status/workflow-status-template.md"
template: "{project-root}/bmad/bmm/workflows/workflow-status/workflow-status-template.yaml"
# Path data files
path_files: "{project-root}/bmad/bmm/workflows/workflow-status/paths/"
# Output configuration
default_output_file: "{output_folder}/bmm-workflow-status.md"
default_output_file: "{output_folder}/bmm-workflow-status.yaml"
standalone: true
web_bundle: false

View File

@@ -33,7 +33,7 @@
</step>
<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.yaml</action>
<check if="no status file found">
<output>No workflow status found. To get started:
@@ -50,51 +50,66 @@ This will guide you through project setup and create your workflow path.</output
</step>
<step n="2" goal="Read and parse status">
<action>Read bmm-workflow-status.md</action>
<action>Extract key-value pairs from status file:</action>
<action>Read bmm-workflow-status.yaml</action>
<action>Parse YAML file and extract metadata from comments and fields:</action>
Parse these fields:
Parse these fields from YAML comments and metadata:
- PROJECT_NAME
- PROJECT_TYPE
- PROJECT_LEVEL
- FIELD_TYPE
- CURRENT_PHASE
- CURRENT_WORKFLOW
- NEXT_ACTION
- NEXT_COMMAND
- NEXT_AGENT
- project (from YAML field)
- project_type (from YAML field)
- project_level (from YAML field)
- field_type (from YAML field)
- workflow_path (from YAML field)
<action>Parse workflow_status section:</action>
- Extract all workflow entries with their statuses
- Identify completed workflows (status = file path)
- Identify pending workflows (status = required/optional/recommended/conditional)
- Identify skipped workflows (status = skipped)
<action>Determine current state:</action>
- Find first workflow with status != file path and != skipped
- This is the NEXT workflow to work on
- Look up agent and command from workflow path file
</step>
<step n="3" goal="Display current status and options">
<action>Load workflow path file to check for optional steps</action>
<action>Check if current workflow is in progress or complete</action>
<action>Load workflow path file based on workflow_path field</action>
<action>Identify current phase from next workflow to be done</action>
<action>Build list of completed, pending, and optional workflows</action>
<output>
## 📊 Current Status
**Project:** {{PROJECT_NAME}} (Level {{PROJECT_LEVEL}} {{PROJECT_TYPE}})
**Phase:** {{CURRENT_PHASE}}
**Current Workflow:** {{CURRENT_WORKFLOW}}
**Project:** {{project}} (Level {{project_level}} {{project_type}})
## 🎯 Your Options
**Path:** {{workflow_path}}
{{#if CURRENT_WORKFLOW != "complete"}}
**Continue in progress:**
**Progress:**
- {{CURRENT_WORKFLOW}} ({{CURRENT_AGENT}} agent)
{{/if}}
{{#each phases}}
{{phase_name}}:
{{#each workflows_in_phase}}
**Next required step:**
- {{workflow_name}}: {{status_display}}
{{/each}}
{{/each}}
- Command: `{{NEXT_COMMAND}}`
- Agent: {{NEXT_AGENT}}
## 🎯 Next Steps
**Next Workflow:** {{next_workflow_name}}
**Agent:** {{next_agent}}
**Command:** /bmad:bmm:workflows:{{next_workflow_id}}
{{#if optional_workflows_available}}
**Optional workflows available:**
**Optional Workflows Available:**
{{#each optional_workflows}}
- {{workflow_name}} ({{agent}})
- {{workflow_name}} ({{agent}}) - {{status}}
{{/each}}
{{/if}}
</output>
@@ -103,20 +118,69 @@ Parse these fields:
<step n="4" goal="Offer actions">
<ask>What would you like to do?
{{#if CURRENT_WORKFLOW != "complete"}}
1. **Continue current** - Resume {{CURRENT_WORKFLOW}}
{{/if}}
2. **Next required** - {{NEXT_COMMAND}}
1. **Start next workflow** - {{next_workflow_name}} ({{next_agent}} agent)
{{#if optional_workflows_available}}
3. **Optional workflow** - Choose from available options
2. **Run optional workflow** - Choose from available options
{{/if}}
4. **View full status** - See complete status file
3. **View full status YAML** - See complete status file
4. **Update workflow status** - Mark a workflow as completed or skipped
5. **Exit** - Return to agent
Your choice:</ask>
<action>Handle user selection based on available options</action>
<check if="choice == 1">
<output>Ready to run {{next_workflow_name}}!
**Command:** /bmad:bmm:workflows:{{next_workflow_id}}
**Agent:** Load {{next_agent}} agent first
{{#if next_agent !== current_agent}}
Tip: Start a new chat and load the {{next_agent}} agent before running this workflow.
{{/if}}
</output>
</check>
<check if="choice == 2 AND optional_workflows_available">
<ask>Which optional workflow?
{{#each optional_workflows numbered}}
{{number}}. {{workflow_name}} ({{agent}})
{{/each}}
Your choice:</ask>
<action>Display selected workflow command and agent</action>
</check>
<check if="choice == 3">
<action>Display complete bmm-workflow-status.yaml file contents</action>
</check>
<check if="choice == 4">
<ask>What would you like to update?
1. Mark a workflow as **completed** (provide file path)
2. Mark a workflow as **skipped**
Your choice:</ask>
<check if="update_choice == 1">
<ask>Which workflow? (Enter workflow ID like 'prd' or 'create-architecture')</ask>
<ask>File path created? (e.g., docs/prd.md)</ask>
<critical>ONLY write the file path as the status value - no other text, notes, or metadata</critical>
<action>Update workflow_status in YAML file: {{workflow_id}}: {{file_path}}</action>
<action>Save updated YAML file preserving ALL structure and comments</action>
<output>✅ Updated {{workflow_id}} to completed: {{file_path}}</output>
</check>
<check if="update_choice == 2">
<ask>Which workflow to skip? (Enter workflow ID)</ask>
<action>Update workflow_status in YAML file: {{workflow_id}}: skipped</action>
<action>Save updated YAML file</action>
<output>✅ Marked {{workflow_id}} as skipped</output>
</check>
</check>
</step>
<!-- ============================================= -->
@@ -124,7 +188,7 @@ Your choice:</ask>
<!-- ============================================= -->
<step n="10" goal="Validate mode - Check if calling workflow should proceed">
<action>Read {output_folder}/bmm-workflow-status.md if exists</action>
<action>Read {output_folder}/bmm-workflow-status.yaml if exists</action>
<check if="status file not found">
<template-output>status_exists = false</template-output>
@@ -135,23 +199,16 @@ Your choice:</ask>
</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>
<action>Parse YAML file to extract project metadata and workflow_status</action>
<action>Load workflow path file from workflow_path field</action>
<action>Find first non-completed workflow in workflow_status (next workflow)</action>
<action>Check if {{calling_workflow}} matches next workflow or is in the workflow list</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>
<template-output>project_level = {{project_level}}</template-output>
<template-output>project_type = {{project_type}}</template-output>
<template-output>field_type = {{field_type}}</template-output>
<template-output>next_workflow = {{next_workflow_id}}</template-output>
<check if="calling_workflow == next_workflow">
<template-output>should_proceed = true</template-output>
@@ -159,16 +216,22 @@ Your choice:</ask>
<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="calling_workflow in workflow_status list">
<action>Check the status of calling_workflow in YAML</action>
<check if="is optional">
<check if="status is file path">
<template-output>should_proceed = true</template-output>
<template-output>warning = "⚠️ Workflow already completed: {{calling_workflow}}"</template-output>
<template-output>suggestion = "This workflow was already completed. Re-running will overwrite: {{status}}"</template-output>
</check>
<check if="status is optional/recommended">
<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">
<check if="status is required but not next">
<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>
@@ -176,14 +239,20 @@ Your choice:</ask>
</check>
<template-output>status_file_path = {{path to bmm-workflow-status.md}}</template-output>
<check if="calling_workflow NOT in workflow_status list">
<template-output>should_proceed = true</template-output>
<template-output>warning = "⚠️ Unknown workflow: {{calling_workflow}} not in workflow path"</template-output>
<template-output>suggestion = "This workflow is not part of the defined path for this project"</template-output>
</check>
<template-output>status_file_path = {{path to bmm-workflow-status.yaml}}</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>
<action>Read {output_folder}/bmm-workflow-status.yaml if exists</action>
<check if="status file not found">
<template-output>status_exists = false</template-output>
@@ -192,37 +261,46 @@ Your choice:</ask>
</check>
<check if="status file found">
<action>Parse status file completely</action>
<action>Parse YAML file completely</action>
<template-output>status_exists = true</template-output>
<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>
<template-output>project_name = {{project}}</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 if="data_request == workflow_status">
<action>Parse workflow_status section and return all workflow: status pairs</action>
<template-output>workflow_status = {{workflow_status_object}}</template-output>
<action>Calculate completion stats:</action>
<template-output>total_workflows = {{count all workflows}}</template-output>
<template-output>completed_workflows = {{count file path statuses}}</template-output>
<template-output>pending_workflows = {{count required/optional/etc}}</template-output>
<template-output>skipped_workflows = {{count skipped}}</template-output>
</check>
<check if="data_request == all">
<action>Return all parsed fields as template outputs</action>
<template-output>project = {{project}}</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>
<template-output>workflow_status = {{workflow_status_object}}</template-output>
<template-output>generated = {{generated}}</template-output>
</check>
<template-output>status_file_path = {{path to bmm-workflow-status.md}}</template-output>
<template-output>status_file_path = {{path to bmm-workflow-status.yaml}}</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>
<action>Check if {output_folder}/bmm-workflow-status.yaml exists</action>
<check if="exists">
<template-output>status_exists = true</template-output>
@@ -238,7 +316,7 @@ Your choice:</ask>
</step>
<step n="40" goal="Update mode - Centralized status file updates">
<action>Read {output_folder}/bmm-workflow-status.md</action>
<action>Read {output_folder}/bmm-workflow-status.yaml</action>
<check if="status file not found">
<template-output>success = false</template-output>
@@ -247,64 +325,48 @@ Your choice:</ask>
</check>
<check if="status file found">
<action>Parse all current values from status file</action>
<action>Load workflow path file from WORKFLOW_PATH field</action>
<action>Parse YAML file completely</action>
<action>Load workflow path file from workflow_path field</action>
<action>Check {{action}} parameter to determine update type</action>
<!-- ============================================= -->
<!-- ACTION: complete_workflow -->
<!-- ============================================= -->
<check if="action == complete_workflow">
<action>Get {{workflow_name}} parameter (required)</action>
<action>Get {{workflow_id}} parameter (required)</action>
<action>Get {{output_file}} parameter (required - path to created file)</action>
<action>Mark workflow complete:</action>
- Update CURRENT_WORKFLOW to "{{workflow_name}} - Complete"
<critical>ONLY write the file path as the status value - no other text, notes, or metadata</critical>
<action>Update workflow status in YAML:</action>
- In workflow_status section, update: {{workflow_id}}: {{output_file}}
<action>Find {{workflow_name}} in loaded path YAML</action>
<action>Find {{workflow_id}} in loaded path YAML</action>
<action>Determine next workflow from path sequence</action>
<action>Find first workflow in workflow_status with status != file path and != skipped</action>
<action>Update Next Action fields:</action>
- NEXT_ACTION: Description from next workflow in path
- NEXT_COMMAND: Command for next workflow
- NEXT_AGENT: Agent for next workflow
- CURRENT_WORKFLOW: Set to next workflow name (or "Complete" if no more)
- CURRENT_AGENT: Set to next agent
<action>Check if phase complete:</action>
- If {{workflow_name}} is last required workflow in current phase
- Update PHASE_X_COMPLETE to true
- Update CURRENT_PHASE to next phase (if applicable)
<action>Update LAST_UPDATED to {{date}}</action>
<action>Save status file</action>
<action>Save updated YAML file preserving ALL structure and comments</action>
<template-output>success = true</template-output>
<template-output>next_workflow = {{determined next workflow}}</template-output>
<template-output>next_agent = {{determined next agent}}</template-output>
<template-output>phase_complete = {{true/false}}</template-output>
<template-output>next_agent = {{determined next agent from path file}}</template-output>
<template-output>completed_workflow = {{workflow_id}}</template-output>
<template-output>output_file = {{output_file}}</template-output>
</check>
<!-- ============================================= -->
<!-- ACTION: set_current_workflow (manual override) -->
<!-- ACTION: skip_workflow -->
<!-- ============================================= -->
<check if="action == set_current_workflow">
<action>Get {{workflow_name}} parameter (required)</action>
<action>Get {{agent_name}} parameter (optional)</action>
<check if="action == skip_workflow">
<action>Get {{workflow_id}} parameter (required)</action>
<action>Update current workflow:</action>
- CURRENT_WORKFLOW: {{workflow_name}}
- CURRENT_AGENT: {{agent_name or infer from path}}
<action>Update workflow status in YAML:</action>
- In workflow_status section, update: {{workflow_id}}: skipped
<action>Find {{workflow_name}} in path to determine next:</action>
- NEXT_ACTION: Next workflow description
- NEXT_COMMAND: Next workflow command
- NEXT_AGENT: Next workflow agent
<action>Update LAST_UPDATED to {{date}}</action>
<action>Save status file</action>
<action>Save updated YAML file</action>
<template-output>success = true</template-output>
<template-output>skipped_workflow = {{workflow_id}}</template-output>
</check>
@@ -313,7 +375,7 @@ Your choice:</ask>
<!-- ============================================= -->
<check if="action not recognized">
<template-output>success = false</template-output>
<template-output>error = "Unknown action: {{action}}. Valid actions: complete_workflow, set_current_workflow"</template-output>
<template-output>error = "Unknown action: {{action}}. Valid actions: complete_workflow, skip_workflow"</template-output>
</check>
</check>

View File

@@ -0,0 +1,49 @@
# Workflow Status Template
# This tracks progress through phases 1-3 of the BMM methodology
# Phase 4 (Implementation) is tracked separately in sprint-status.yaml
# generated: 2025-10-29
# project: Enterprise Customer Portal
# project_type: software
# project_level: 3
# field_type: greenfield
# workflow_path: greenfield-level-3.yaml
# STATUS DEFINITIONS:
# ==================
# Initial Status (before completion):
# - required: Must be completed to progress
# - optional: Can be completed but not required
# - recommended: Strongly suggested but not required
# - conditional: Required only if certain conditions met (e.g., if_has_ui)
#
# Completion Status:
# - {file-path}: File created/found (e.g., "docs/product-brief.md")
# - skipped: Optional/conditional workflow that was skipped
generated: 2025-10-29
project: Enterprise Customer Portal
project_type: software
project_level: 3
field_type: greenfield
workflow_path: greenfield-level-3.yaml
workflow_status:
# Phase 1: Analysis
brainstorm-project: docs/brainstorm-session-2025-10-15.md
research: docs/research-api-patterns.md
product-brief: docs/product-brief.md
# Phase 2: Planning
prd: docs/prd.md
validate-prd: skipped
create-design: docs/ux-design.md
# Phase 3: Solutioning
create-architecture: required
validate-architecture: optional
solutioning-gate-check: recommended
# Phase 4: Implementation
sprint-planning: required
# Note: Subsequent implementation workflows tracked in sprint-status.yaml

View File

@@ -1,30 +0,0 @@
# BMM Workflow Status
## Project Configuration
PROJECT_NAME: {{project_name}}
PROJECT_TYPE: {{project_type}}
PROJECT_LEVEL: {{project_level}}
FIELD_TYPE: {{field_type}}
START_DATE: {{start_date}}
WORKFLOW_PATH: {{workflow_path_file}}
## Current State
CURRENT_PHASE: {{current_phase}}
CURRENT_WORKFLOW: {{current_workflow}}
CURRENT_AGENT: {{current_agent}}
PHASE_1_COMPLETE: {{phase_1_complete}}
PHASE_2_COMPLETE: {{phase_2_complete}}
PHASE_3_COMPLETE: {{phase_3_complete}}
PHASE_4_COMPLETE: {{phase_4_complete}}
## Next Action
NEXT_ACTION: {{next_action}}
NEXT_COMMAND: {{next_command}}
NEXT_AGENT: {{next_agent}}
---
_Last Updated: {{last_updated}}_

View File

@@ -0,0 +1,31 @@
# Workflow Status Template
# This tracks progress through phases 1-3 of the BMM methodology
# Phase 4 (Implementation) is tracked separately in sprint-status.yaml
# generated: {{generated}}
# project: {{project_name}}
# project_type: {{project_type}}
# project_level: {{project_level}}
# field_type: {{field_type}}
# workflow_path: {{workflow_path_file}}
# STATUS DEFINITIONS:
# ==================
# Initial Status (before completion):
# - required: Must be completed to progress
# - optional: Can be completed but not required
# - recommended: Strongly suggested but not required
# - conditional: Required only if certain conditions met (e.g., if_has_ui)
#
# Completion Status:
# - {file-path}: File created/found (e.g., "docs/product-brief.md")
# - skipped: Optional/conditional workflow that was skipped
generated: "{{generated}}"
project: "{{project_name}}"
project_type: "{{project_type}}"
project_level: "{{project_level}}"
field_type: "{{field_type}}"
workflow_path: "{{workflow_path_file}}"
workflow_status: "{{workflow_items}}"

View File

@@ -1,6 +1,6 @@
# Workflow Status - Master Router and Status Tracker
name: workflow-status
description: 'Lightweight status checker - answers "what should I do now?" for any agent. Reads simple key-value status file for instant parsing. Use workflow-init for new projects.'
description: 'Lightweight status checker - answers "what should I do now?" for any agent. Reads YAML status file for workflow tracking. Use workflow-init for new projects.'
author: "BMad"
# Critical variables from config
@@ -17,13 +17,13 @@ installed_path: "{project-root}/bmad/bmm/workflows/workflow-status"
instructions: "{installed_path}/instructions.md"
# Template for status file creation (used by workflow-init)
template: "{installed_path}/workflow-status-template.md"
template: "{installed_path}/workflow-status-template.yaml"
# Path definitions for project types
path_files: "{installed_path}/paths/"
# Output configuration - reads existing status
default_output_file: "{output_folder}/bmm-workflow-status.md"
default_output_file: "{output_folder}/bmm-workflow-status.yaml"
standalone: true