From 5762941321a61c78e10f9397ed471a6add6ec603 Mon Sep 17 00:00:00 2001 From: Brian Madison Date: Sat, 25 Oct 2025 14:26:30 -0500 Subject: [PATCH] better status loading and updating for phase 4 --- .../create-story/instructions.md | 50 +- .../dev-story/instructions.md | 82 +-- .../epic-tech-context/instructions.md | 35 +- .../retrospective/instructions.md | 61 +- .../review-story/instructions.md | 51 +- .../story-context/instructions.md | 76 ++- .../story-done/instructions.md | 48 +- .../story-ready/instructions.md | 50 +- .../workflows/helpers/sprint-status/README.md | 292 ---------- .../helpers/sprint-status/instructions.md | 542 ------------------ .../helpers/sprint-status/workflow.yaml | 53 -- .../workflow-status/init/instructions.md | 3 + .../paths/greenfield-level-3.yaml | 2 +- v6-open-items.md | 11 +- 14 files changed, 288 insertions(+), 1068 deletions(-) delete mode 100644 src/modules/bmm/workflows/helpers/sprint-status/README.md delete mode 100644 src/modules/bmm/workflows/helpers/sprint-status/instructions.md delete mode 100644 src/modules/bmm/workflows/helpers/sprint-status/workflow.yaml diff --git a/src/modules/bmm/workflows/4-implementation/create-story/instructions.md b/src/modules/bmm/workflows/4-implementation/create-story/instructions.md index 34a2e0b2..2a40e328 100644 --- a/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/create-story/instructions.md @@ -28,15 +28,19 @@ READ COMPLETE FILES for all items found in the prioritized set. Store content and paths for citation. - - Query sprint-status for next backlog story: + + MUST read COMPLETE sprint-status.yaml file from start to end to preserve order + Load the FULL file: {{output_folder}}/sprint-status.yaml + Read ALL lines from beginning to end - do not skip any content + Parse the development_status section completely to understand story order - - action: get_next_story - filter_status: backlog - + Find the FIRST story (by reading in order from top to bottom) where: + - Key matches pattern: number-number-name (e.g., "1-2-user-auth") + - NOT an epic key (epic-X) or retrospective (epic-X-retrospective) + - Status value equals "backlog" + - + 📋 No backlog stories found in sprint-status.yaml All stories are either already drafted or completed. @@ -49,13 +53,16 @@ All stories are either already drafted or completed. HALT - Parse {{result_story_key}} to extract epic_num, story_num, and story_title - Example: "1-2-user-authentication" → epic_num=1, story_num=2, title="user-authentication" + Extract from found story key (e.g., "1-2-user-authentication"): + - epic_num: first number before dash (e.g., "1") + - story_num: second number after first dash (e.g., "2") + - story_title: remainder after second dash (e.g., "user-authentication") Set {{story_id}} = "{{epic_num}}.{{story_num}}" + Store story_key for later use (e.g., "1-2-user-authentication") Verify story is enumerated in {{epics_file}}. If not found, HALT with message: - "Story {{result_story_key}} not found in epics.md. Please load PM agent and run correct-course to sync epics, then rerun create-story." + "Story {{story_key}} not found in epics.md. Please load PM agent and run correct-course to sync epics, then rerun create-story." Check if story file already exists at expected path in {{story_dir}} @@ -97,19 +104,20 @@ Will update existing story file rather than creating new one. change_log - + Validate against checklist at {installed_path}/checklist.md using bmad/core/tasks/validate-workflow.xml Save document unconditionally (non-interactive default). In interactive mode, allow user confirmation. - - action: update_story_status - story_key: {{result_story_key}} - new_status: drafted - validate: true - + + Update {{output_folder}}/sprint-status.yaml + Load the FULL file and read all development_status entries + Find development_status key matching {{story_key}} + Verify current status is "backlog" (expected previous state) + Update development_status[{{story_key}}] = "drafted" + Save file, preserving ALL comments and structure including STATUS DEFINITIONS - - âš ī¸ Could not update story status: {{result_error}} + + âš ī¸ Could not update story status: {{story_key}} not found in sprint-status.yaml Story file was created successfully, but sprint-status.yaml was not updated. You may need to run sprint-planning to refresh tracking. @@ -122,9 +130,9 @@ You may need to run sprint-planning to refresh tracking. **Story Details:** - Story ID: {{story_id}} -- Story Key: {{result_story_key}} +- Story Key: {{story_key}} - File: {{story_file}} -- Status: {{result_new_status}} (was {{result_old_status}}) +- Status: drafted (was backlog) **Next Steps:** 1. Review the drafted story in {{story_file}} diff --git a/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md b/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md index fb263504..697575e4 100644 --- a/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md @@ -15,7 +15,7 @@ - + Use {{story_path}} directly Read COMPLETE story file @@ -23,14 +23,18 @@ task_check - Query sprint-status for ready stories: + MUST read COMPLETE sprint-status.yaml file from start to end to preserve order + Load the FULL file: {{output_folder}}/sprint-status.yaml + Read ALL lines from beginning to end - do not skip any content + Parse the development_status section completely to understand story order - - action: get_next_story - filter_status: ready-for-dev - + Find the FIRST story (by reading in order from top to bottom) where: + - Key matches pattern: number-number-name (e.g., "1-2-user-auth") + - NOT an epic key (epic-X) or retrospective (epic-X-retrospective) + - Status value equals "ready-for-dev" + - + 📋 No ready-for-dev stories found in sprint-status.yaml **Options:** @@ -41,9 +45,9 @@ HALT - Use {{result_story_key}} to find story file in {{story_dir}} + Store the found story_key (e.g., "1-2-user-authentication") for later status updates + Find matching story file in {{story_dir}} using story_key pattern Read COMPLETE story file from discovered path - Store {{result_story_key}} for later status updates @@ -55,32 +59,30 @@ ASK user to clarify or HALT - - - action: get_story_status - story_key: {{result_story_key}} - + + Load the FULL file: {{output_folder}}/sprint-status.yaml + Read all development_status entries to find {{story_key}} + Get current status value for development_status[{{story_key}}] - - - action: update_story_status - story_key: {{result_story_key}} - new_status: in-progress - validate: true - - - - 🚀 Starting work on story {{result_story_key}} -Status updated: {{result_old_status}} → {{result_new_status}} - - + + Update development_status[{{story_key}}] = "in-progress" + Save file, preserving ALL comments and structure including STATUS DEFINITIONS + 🚀 Starting work on story {{story_key}} +Status updated: ready-for-dev → in-progress + - - â¯ī¸ Resuming work on story {{result_story_key}} + + â¯ī¸ Resuming work on story {{story_key}} Story is already marked in-progress + + + âš ī¸ Unexpected story status: {{current_status}} +Expected ready-for-dev or in-progress. Continuing anyway... + + @@ -123,22 +125,22 @@ Story is already marked in-progress Completion - + Verify ALL tasks and subtasks are marked [x] (re-scan the story document now) Run the full regression suite (do not skip) Confirm File List includes every changed file Execute story definition-of-done checklist, if the story includes one Update the story Status to: Ready for Review - - action: update_story_status - story_key: {{result_story_key}} - new_status: review - validate: true - + + Load the FULL file: {{output_folder}}/sprint-status.yaml + Find development_status key matching {{story_key}} + Verify current status is "in-progress" (expected previous state) + Update development_status[{{story_key}}] = "review" + Save file, preserving ALL comments and structure including STATUS DEFINITIONS - - âš ī¸ Story file updated, but sprint-status update failed: {{result_error}} + + âš ī¸ Story file updated, but sprint-status update failed: {{story_key}} not found Story is marked Ready for Review in file, but sprint-status.yaml may be out of sync. @@ -157,10 +159,10 @@ Story is marked Ready for Review in file, but sprint-status.yaml may be out of s **Story Details:** - Story ID: {{current_story_id}} -- Story Key: {{result_story_key}} +- Story Key: {{story_key}} - Title: {{current_story_title}} - File: {{story_path}} -- Status: {{result_new_status}} (was {{result_old_status}}) +- Status: review (was in-progress) **Next Steps:** 1. Review the implemented story and test the changes diff --git a/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md b/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md index 901dd7bd..b32d9d15 100644 --- a/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md @@ -16,13 +16,15 @@ Resolve output file path using workflow variables and initialize by writing the template. - - - action: get_epic_status - epic_id: {{epic_id}} - + + MUST read COMPLETE sprint-status.yaml file to find epic status + Load the FULL file: {{output_folder}}/sprint-status.yaml + Read ALL development_status entries - + Look for epic key "epic-{{epic_id}}" in development_status + Get current status value if epic exists + + âš ī¸ Epic {{epic_id}} not found in sprint-status.yaml This epic hasn't been registered in the sprint plan yet. @@ -31,7 +33,7 @@ Run sprint-planning workflow to initialize epic tracking. HALT - + â„šī¸ Epic {{epic_id}} already marked as contexted Continuing to regenerate tech spec... @@ -89,17 +91,18 @@ Continuing to regenerate tech spec... - + Validate against checklist at {installed_path}/checklist.md using bmad/core/tasks/validate-workflow.xml - - action: update_epic_status - epic_id: {{epic_id}} - new_status: contexted - + + Load the FULL file: {{output_folder}}/sprint-status.yaml + Find development_status key "epic-{{epic_id}}" + Verify current status is "backlog" (expected previous state) + Update development_status["epic-{{epic_id}}"] = "contexted" + Save file, preserving ALL comments and structure including STATUS DEFINITIONS - - âš ī¸ Could not update epic status: {{result_error}} + + âš ī¸ Could not update epic status: epic-{{epic_id}} not found **✅ Tech Spec Generated Successfully, {user_name}!** @@ -108,7 +111,7 @@ Continuing to regenerate tech spec... - Epic ID: {{epic_id}} - Epic Title: {{epic_title}} - Tech Spec File: {{default_output_file}} -- Epic Status: {{result_new_status}} (was {{result_old_status}}) +- Epic Status: contexted (was backlog) **Note:** This is a JIT (Just-In-Time) workflow - run again for other epics as needed. diff --git a/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md b/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md index b14c4cf0..f392ac3a 100644 --- a/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md @@ -20,30 +20,40 @@ FACILITATION NOTES: - + Help the user identify which epic was just completed through natural conversation Attempt to auto-detect by checking {output_folder}/stories/ for the highest numbered completed story and extracting the epic number If auto-detection succeeds, confirm with user: "It looks like Epic {{epic_number}} was just completed - is that correct?" If auto-detection fails or user indicates different epic, ask them to share which epic they just completed -Verify epic completion status in sprint-status: +Verify epic completion status: - - action: check_epic_complete - epic_id: {{epic_number}} - +Load the FULL file: {{output_folder}}/sprint-status.yaml +Read ALL development_status entries - +Find all stories for epic {{epic_number}}: + +- Look for keys starting with "{{epic_number}}-" (e.g., "1-1-", "1-2-", etc.) +- Exclude epic key itself ("epic-{{epic_number}}") +- Exclude retrospective key ("epic-{{epic_number}}-retrospective") + + +Count total stories found for this epic +Count stories with status = "done" +Collect list of pending story keys (status != "done") +Determine if complete: true if all stories are done, false otherwise + + âš ī¸ Epic {{epic_number}} is not yet complete for retrospective **Epic Status:** -- Total Stories: {{result_total_stories}} -- Completed (Done): {{result_done_stories}} -- Pending: {{result_total_stories - result_done_stories}} +- Total Stories: {{total_stories}} +- Completed (Done): {{done_stories}} +- Pending: {{pending_count}} **Pending Stories:** -{{result_pending_stories}} +{{pending_story_list}} **Options:** @@ -61,8 +71,8 @@ FACILITATION NOTES: Set {{partial_retrospective}} = true - - ✅ Epic {{epic_number}} is complete - all {{result_done_stories}} stories done! + + ✅ Epic {{epic_number}} is complete - all {{done_stories}} stories done! Ready to proceed with retrospective. @@ -403,27 +413,32 @@ See you at sprint planning once prep work is done!" ``` Save retrospective summary to: {output_folder}/retrospectives/epic-{{completed_number}}-retro-{{date}}.md + - - action: complete_retrospective - epic_id: {{completed_number}} - + +Load the FULL file: {{output_folder}}/sprint-status.yaml +Find development_status key "epic-{{completed_number}}-retrospective" +Verify current status is "optional" (expected previous state) +Update development_status["epic-{{completed_number}}-retrospective"] = "completed" +Save file, preserving ALL comments and structure including STATUS DEFINITIONS - + ✅ Retrospective marked as completed in sprint-status.yaml -Retrospective key: {{result_retro_key}} -Status: {{result_old_status}} → {{result_new_status}} +Retrospective key: epic-{{completed_number}}-retrospective +Status: optional → completed - - âš ī¸ Could not update retrospective status: {{result_error}} + + âš ī¸ Could not update retrospective status: epic-{{completed_number}}-retrospective not found Retrospective document was saved, but sprint-status.yaml may need manual update. + + Confirm all action items have been captured Remind user to schedule prep sprint if needed **✅ Retrospective Complete, {user_name}!** @@ -431,7 +446,7 @@ Retrospective document was saved, but sprint-status.yaml may need manual update. **Epic Review:** - Epic {{completed_number}}: {{epic_title}} reviewed -- Retrospective Status: {{result_new_status}} +- Retrospective Status: completed - Retrospective saved: {output_folder}/retrospectives/epic-{{completed_number}}-retro-{{date}}.md - Action Items: {{action_count}} - Preparation Tasks: {{prep_task_count}} diff --git a/src/modules/bmm/workflows/4-implementation/review-story/instructions.md b/src/modules/bmm/workflows/4-implementation/review-story/instructions.md index cc71a128..b6e2b0e9 100644 --- a/src/modules/bmm/workflows/4-implementation/review-story/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/review-story/instructions.md @@ -14,7 +14,7 @@ - + Use {{story_path}} directly Read COMPLETE file and parse sections @@ -22,15 +22,21 @@ verify_status - Query sprint-status for review stories: + MUST read COMPLETE sprint-status.yaml file from start to end to preserve order + Load the FULL file: {{output_folder}}/sprint-status.yaml + Read ALL lines from beginning to end - do not skip any content + Parse the development_status section completely - - action: list_stories - filter_status: review - limit: 10 - + Find ALL stories (reading in order from top to bottom) where: + - Key matches pattern: number-number-name (e.g., "1-2-user-auth") + - NOT an epic key (epic-X) or retrospective (epic-X-retrospective) + - Status value equals "review" + - + Collect up to 10 review story keys in order (limit for display purposes) + Count total review stories found + + 📋 No stories in review status found **Options:** @@ -42,14 +48,14 @@ Display available review stories: -**Stories Ready for Review ({{result_count}} found):** +**Stories Ready for Review ({{review_count}} found):** -{{result_story_list}} +{{list_of_review_story_keys}} Select story to review (enter story key or number): - Auto-select first story from result_stories + Auto-select first story from the list Resolve selected story_key and find file path in {{story_dir}} Resolve {{story_path}} and read the COMPLETE file @@ -118,26 +124,25 @@ Save the story file. - + Determine target status based on review outcome: - If {{outcome}} == "Approve" → target_status = "done" - If {{outcome}} == "Changes Requested" → target_status = "in-progress" - If {{outcome}} == "Blocked" → target_status = "review" (stay in review) - - action: update_story_status - story_key: {{story_key}} - new_status: {{target_status}} - validate: true - + Load the FULL file: {{output_folder}}/sprint-status.yaml + Read all development_status entries to find {{story_key}} + Verify current status is "review" (expected previous state) + Update development_status[{{story_key}}] = {{target_status}} + Save file, preserving ALL comments and structure including STATUS DEFINITIONS - - ✅ Sprint status updated: {{result_old_status}} → {{result_new_status}} + + ✅ Sprint status updated: review → {{target_status}} - - âš ī¸ Could not update sprint-status: {{result_error}} + + âš ī¸ Could not update sprint-status: {{story_key}} not found Review was saved to story file, but sprint-status.yaml may be out of sync. @@ -170,7 +175,7 @@ Review was saved to story file, but sprint-status.yaml may be out of sync. - Story: {{epic_num}}.{{story_num}} - Story Key: {{story_key}} - Review Outcome: {{outcome}} -- Sprint Status: {{result_new_status}} +- Sprint Status: {{target_status}} - Action Items: {{action_item_count}} **Next Steps:** diff --git a/src/modules/bmm/workflows/4-implementation/story-context/instructions.md b/src/modules/bmm/workflows/4-implementation/story-context/instructions.md index a7fd1c0f..8cb1d1a6 100644 --- a/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/story-context/instructions.md @@ -11,12 +11,52 @@ DOCUMENT OUTPUT: Technical XML context file. Concise, structured, project-relative paths only. User skill level ({user_skill_level}) affects conversation style ONLY, not context content. - - If {{story_path}} provided and valid → use it; else auto-discover from {{story_dir}}. - Auto-discovery: read {{story_dir}} (dev_story_location). If invalid/missing or contains no .md files, ASK for a story file path or directory to scan. - If a directory is provided, list markdown files named "story-*.md" recursively; sort by last modified time; display top {{story_selection_limit}} with index, filename, path, modified time. - "Select a story (1-{{story_selection_limit}}) or enter a path:" - If {{non_interactive}} == true: choose the most recently modified story automatically. If none found, HALT with a clear message to provide 'story_path' or 'story_dir'. Else resolve selection into {{story_path}} and READ COMPLETE file. + + If {{story_path}} provided and valid → use it; extract story_key from filename/metadata; GOTO initialize_context + + MUST read COMPLETE sprint-status.yaml file from start to end to preserve order + Load the FULL file: {{output_folder}}/sprint-status.yaml + Read ALL lines from beginning to end - do not skip any content + Parse the development_status section completely + + Find ALL stories (reading in order from top to bottom) where: + - Key matches pattern: number-number-name (e.g., "1-2-user-auth") + - NOT an epic key (epic-X) or retrospective (epic-X-retrospective) + - Status value equals "drafted" + + + Collect up to 10 drafted story keys in order (limit for display purposes) + Count total drafted stories found + + + 📋 No drafted stories found in sprint-status.yaml + +All stories are either still in backlog or already marked ready/in-progress/done. + +**Options:** +1. Run `create-story` to draft more stories +2. Run `sprint-planning` to refresh story tracking + + HALT + + + Display available drafted stories: + +**Drafted Stories Available ({{drafted_count}} found):** + +{{list_of_drafted_story_keys}} + + + + Select the drafted story to generate context for (enter story key or number): + Auto-select first story from the list + + Resolve selected story_key from user input or auto-selection + Find matching story file in {{story_dir}} using story_key pattern + Resolve {{story_path}} and READ COMPLETE file + + + Extract {{epic_id}}, {{story_id}}, {{story_title}}, {{story_status}} from filename/content; parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Notes. Extract user story fields (asA, iWant, soThat). Store project root path for relative path conversion: extract from {project-root} variable. @@ -91,16 +131,36 @@ Validate against checklist at {installed_path}/checklist.md using bmad/core/tasks/validate-workflow.xml - - Open {{story_path}}; if Status == 'Draft' then set to 'ContextReadyDraft'; otherwise leave unchanged. + + Open {{story_path}} + Find the "Status:" line (usually at the top) + Update story file: Change Status to "Ready" Under 'Dev Agent Record' → 'Context Reference' (create if missing), add or update a list item for {default_output_file}. Save the story file. + + + Load the FULL file: {{output_folder}}/sprint-status.yaml + Find development_status key matching {{story_key}} + Verify current status is "drafted" (expected previous state) + Update development_status[{{story_key}}] = "ready-for-dev" + Save file, preserving ALL comments and structure including STATUS DEFINITIONS + + + âš ī¸ Story file updated, but could not update sprint-status: {{story_key}} not found + +You may need to run sprint-planning to refresh tracking. + + + **✅ Story Context Generated Successfully, {user_name}!** **Story Details:** - Story ID: {{story_id}} +- Story Key: {{story_key}} - Title: {{story_title}} - Context File: {{default_output_file}} +- Story Status: Ready (was Draft) +- Sprint Status: ready-for-dev (was drafted) **Next Steps:** 1. Load DEV agent (bmad/bmm/agents/dev.md) diff --git a/src/modules/bmm/workflows/4-implementation/story-done/instructions.md b/src/modules/bmm/workflows/4-implementation/story-done/instructions.md index d63276e7..2e1b7318 100644 --- a/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/story-done/instructions.md @@ -10,19 +10,26 @@ This workflow is run by DEV agent AFTER user confirms a story is approved (Definition of Done is complete) Workflow: Update story file status to Done - + If {{story_path}} is provided → use it directly; extract story_key from filename or metadata; GOTO mark_done -Otherwise query sprint-status for reviewed stories: +MUST read COMPLETE sprint-status.yaml file from start to end to preserve order +Load the FULL file: {{output_folder}}/sprint-status.yaml +Read ALL lines from beginning to end - do not skip any content +Parse the development_status section completely - - action: list_stories - filter_status: review - limit: 10 - +Find ALL stories (reading in order from top to bottom) where: - +- Key matches pattern: number-number-name (e.g., "1-2-user-auth") +- NOT an epic key (epic-X) or retrospective (epic-X-retrospective) +- Status value equals "review" + + +Collect up to 10 review story keys in order (limit for display purposes) +Count total review stories found + + 📋 No stories in review status found All stories are either still in development or already done. @@ -38,9 +45,9 @@ All stories are either still in development or already done. Display available reviewed stories: -**Stories Ready to Mark Done ({{result_count}} found):** +**Stories Ready to Mark Done ({{review_count}} found):** -{{result_story_list}} +{{list_of_review_story_keys}} @@ -69,16 +76,17 @@ All stories are either still in development or already done. Save the story file + - - action: update_story_status - story_key: {{story_key}} - new_status: done - validate: true - + +Load the FULL file: {{output_folder}}/sprint-status.yaml +Find development_status key matching {{story_key}} +Verify current status is "review" (expected previous state) +Update development_status[{{story_key}}] = "done" +Save file, preserving ALL comments and structure including STATUS DEFINITIONS - - âš ī¸ Story file updated, but could not update sprint-status: {{result_error}} + + âš ī¸ Story file updated, but could not update sprint-status: {{story_key}} not found Story is marked Done in file, but sprint-status.yaml may be out of sync. @@ -86,12 +94,12 @@ Story is marked Done in file, but sprint-status.yaml may be out of sync. - + **Story Approved and Marked Done, {user_name}!** ✅ Story file updated: `{{story_file}}` → Status: Done -✅ Sprint status updated: {{result_old_status}} → {{result_new_status}} +✅ Sprint status updated: review → done **Completed Story:** diff --git a/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md b/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md index c897aad7..159c3278 100644 --- a/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md @@ -10,19 +10,26 @@ This workflow is run by SM agent AFTER user reviews a drafted story and confirms it's ready for development Simple workflow: Update story file status to Ready - + If {{story_path}} is provided → use it directly; extract story_key from filename or metadata; GOTO mark_ready -Otherwise query sprint-status for drafted stories: +MUST read COMPLETE sprint-status.yaml file from start to end to preserve order +Load the FULL file: {{output_folder}}/sprint-status.yaml +Read ALL lines from beginning to end - do not skip any content +Parse the development_status section completely - - action: list_stories - filter_status: drafted - limit: 10 - +Find ALL stories (reading in order from top to bottom) where: - +- Key matches pattern: number-number-name (e.g., "1-2-user-auth") +- NOT an epic key (epic-X) or retrospective (epic-X-retrospective) +- Status value equals "drafted" + + +Collect up to 10 drafted story keys in order (limit for display purposes) +Count total drafted stories found + + 📋 No drafted stories found in sprint-status.yaml All stories are either still in backlog or already marked ready/in-progress/done. @@ -37,14 +44,14 @@ All stories are either still in backlog or already marked ready/in-progress/done Display available drafted stories: -**Drafted Stories Available ({{result_count}} found):** +**Drafted Stories Available ({{drafted_count}} found):** -{{result_story_list}} +{{list_of_drafted_story_keys}} Select the drafted story to mark as Ready (enter story key or number): -Auto-select first story from result_stories +Auto-select first story from the list Resolve selected story_key from user input or auto-selection Find matching story file in {{story_dir}} using story_key pattern @@ -57,16 +64,17 @@ All stories are either still in backlog or already marked ready/in-progress/done Find the "Status:" line (usually at the top) Update story file: Change Status to "Ready" Save the story file + - - action: update_story_status - story_key: {{story_key}} - new_status: ready-for-dev - validate: true - + +Load the FULL file: {{output_folder}}/sprint-status.yaml +Find development_status key matching {{story_key}} +Verify current status is "drafted" (expected previous state) +Update development_status[{{story_key}}] = "ready-for-dev" +Save file, preserving ALL comments and structure including STATUS DEFINITIONS - - âš ī¸ Story file updated, but could not update sprint-status: {{result_error}} + + âš ī¸ Story file updated, but could not update sprint-status: {{story_key}} not found You may need to run sprint-planning to refresh tracking. @@ -74,12 +82,12 @@ You may need to run sprint-planning to refresh tracking. - + **Story Marked Ready for Development, {user_name}!** ✅ Story file updated: `{{story_file}}` → Status: Ready -✅ Sprint status updated: {{result_old_status}} → {{result_new_status}} +✅ Sprint status updated: drafted → ready-for-dev **Story Details:** diff --git a/src/modules/bmm/workflows/helpers/sprint-status/README.md b/src/modules/bmm/workflows/helpers/sprint-status/README.md deleted file mode 100644 index 0a22dcd5..00000000 --- a/src/modules/bmm/workflows/helpers/sprint-status/README.md +++ /dev/null @@ -1,292 +0,0 @@ -# Sprint Status Helper - -**Purpose:** Utility workflow for reading and updating `sprint-status.yaml` tracking file used across Phase 4 implementation workflows. - -**Location:** `src/modules/bmm/workflows/helpers/sprint-status/` - -**Status File:** `{output_folder}/sprint-status.yaml` (created by sprint-planning workflow) - ---- - -## Quick Reference - -### Usage Pattern - -```xml - - action: ACTION_NAME - PARAM_NAME: value - - - - -Do something with {{result_*}} variables -``` - ---- - -## Available Actions - -### Read Operations - -| Action | Purpose | Key Parameters | Key Returns | -| --------------------- | ---------------------------- | --------------------------------------- | ----------------------------------------------------------------------------- | -| `get_next_story` | Find first story by status | `filter_status`, `epic_filter` | `result_found`, `result_story_key`, `result_epic_id`, `result_story_id` | -| `list_stories` | Get all matching stories | `filter_status`, `epic_filter`, `limit` | `result_count`, `result_stories`, `result_story_list` | -| `get_story_status` | Check story's current status | `story_key` | `result_found`, `result_status` | -| `get_epic_status` | Check epic status + stats | `epic_id` | `result_status`, `result_story_count`, `result_done_count`, `result_complete` | -| `check_epic_complete` | Verify all stories done | `epic_id` | `result_complete`, `result_pending_stories` | -| `get_metadata` | Get project info from file | none | `result_project`, `result_story_location`, `result_generated_date` | -| `get_file_path` | Get file location | none | `result_file_path`, `result_exists` | - -### Write Operations - -| Action | Purpose | Key Parameters | Key Returns | -| ------------------------ | ---------------------- | ------------------------------------- | ---------------------------------------------------------- | -| `update_story_status` | Change story status | `story_key`, `new_status`, `validate` | `result_success`, `result_old_status`, `result_new_status` | -| `update_epic_status` | Mark epic as contexted | `epic_id`, `new_status` | `result_success`, `result_old_status`, `result_new_status` | -| `complete_retrospective` | Mark epic retro done | `epic_id` | `result_success`, `result_retro_key` | - -### Utility Operations - -| Action | Purpose | Key Parameters | Key Returns | -| --------------------- | ------------------------------- | -------------------------- | --------------------------------------------------------- | -| `validate_transition` | Check if status change is legal | `from_status`, `to_status` | `result_valid`, `result_message`, `result_suggested_path` | - ---- - -## Status Flow Reference - -**Epic Status:** - -``` -backlog → contexted -``` - -**Story Status:** - -``` -backlog → drafted → ready-for-dev → in-progress → review → done - ↑_________ Corrections allowed (backward movement) ________↑ -``` - -**Retrospective Status:** - -``` -optional ↔ completed -``` - ---- - -## Common Patterns - -### Pattern 1: Find and Update Next Story - -```xml - - - action: get_next_story - filter_status: backlog - - - - Work on story: {{result_story_key}} - - - - action: update_story_status - story_key: {{result_story_key}} - new_status: drafted - - - - - No backlog stories available - -``` - -### Pattern 2: List Stories for User Selection - -```xml - - - action: list_stories - filter_status: drafted - limit: 10 - - - - Available drafted stories ({{result_count}} found): -{{result_story_list}} - - Select a story to work on: - -``` - -### Pattern 3: Check Epic Completion Before Retrospective - -```xml - - - action: check_epic_complete - epic_id: 1 - - - - Epic 1 is complete! Ready for retrospective. - - - - action: complete_retrospective - epic_id: 1 - - - - - Epic 1 has {{result_total_stories - result_done_stories}} pending stories: -{{result_pending_stories}} - - -``` - -### Pattern 4: Validate Before Update - -```xml - - - action: validate_transition - from_status: drafted - to_status: in-progress - - - - Cannot transition directly from drafted to in-progress. -{{result_suggested_path}} - - HALT - -``` - -### Pattern 5: Mark Epic Contexted - -```xml - - - action: update_epic_status - epic_id: {{epic_num}} - new_status: contexted - -``` - ---- - -## Return Variables - -**All actions return:** - -- `result_success`: `true` | `false` -- `result_error`: Error message (if `result_success == false`) - -**Common additional returns:** - -- `result_found`: `true` | `false` (for query operations) -- `result_status`: Current status value -- `result_old_status`: Previous status (for updates) -- `result_new_status`: Updated status (for updates) -- `result_story_key`: Story key like "1-1-story-name" -- `result_epic_id`: Epic number extracted from key -- `result_story_id`: Story number extracted from key - ---- - -## Error Handling - -**File Not Found:** - -```xml - - Sprint status file not found. -Run sprint-planning workflow first to initialize tracking. - - HALT - -``` - -**Story Not Found:** - -```xml - - Story {{story_key}} not found in sprint-status.yaml. -Run sprint-planning to refresh tracking. - - -``` - -**Invalid Transition:** - -```xml - - {{result_error}} -{{result_validation_message}} - - -``` - ---- - -## Options - -| Parameter | Default | Description | -| ------------- | ------- | ---------------------------------------------------------- | -| `validate` | `true` | Enforce legal status transitions for `update_story_status` | -| `dry_run` | `false` | Test update without saving (for debugging) | -| `show_output` | `true` | Helper displays status messages (✅/❌/📋) | - ---- - -## Integration Checklist - -When adding sprint-status helper to a workflow: - -- [ ] Add `sprint_status_file` variable to workflow.yaml if needed -- [ ] Use `invoke-workflow` with correct action parameter -- [ ] Check `result_success` and `result_found` before proceeding -- [ ] Handle `result_error == 'file_not_found'` case -- [ ] Use returned `result_*` variables in workflow logic -- [ ] Update status at appropriate workflow steps - ---- - -## Workflow Integration Map - -| Workflow | Actions Used | When | -| --------------------- | ------------------------------------------------- | ------------------------------------------- | -| **epic-tech-context** | `get_epic_status`
`update_epic_status` | Check epic exists → Mark contexted | -| **create-story** | `get_next_story`
`update_story_status` | Find backlog → Mark drafted | -| **story-ready** | `list_stories`
`update_story_status` | List drafted → Mark ready-for-dev | -| **story-context** | `get_next_story` | Find drafted (read-only) | -| **dev-story** | `get_next_story`
`update_story_status` (2x) | Find ready → Mark in-progress → Mark review | -| **review-story** | `list_stories`
`update_story_status` | List review → Update based on outcome | -| **story-done** | `list_stories`
`update_story_status` | List review → Mark done | -| **retrospective** | `check_epic_complete`
`complete_retrospective` | Verify complete → Mark retro done | - ---- - -## Notes - -- **Source of Truth:** File system is authoritative. Sprint-planning regenerates from epics + file detection. -- **Refresh Strategy:** Re-run sprint-planning anytime to resync tracking with actual files. -- **Concurrency:** Not designed for concurrent access. Single-user CLI workflow execution. -- **Alpha Status:** No backward compatibility. Re-run sprint-planning with latest version before using. - ---- - -## Examples in Context - -See individual workflow instructions in `src/modules/bmm/workflows/4-implementation/` for integration examples. - -**Helper Files:** - -- `workflow.yaml` - Interface definition -- `instructions.md` - Action implementation logic -- `README.md` - This file diff --git a/src/modules/bmm/workflows/helpers/sprint-status/instructions.md b/src/modules/bmm/workflows/helpers/sprint-status/instructions.md deleted file mode 100644 index f33156a6..00000000 --- a/src/modules/bmm/workflows/helpers/sprint-status/instructions.md +++ /dev/null @@ -1,542 +0,0 @@ -# Sprint Status Helper - Workflow Instructions - -The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml -You MUST have already loaded and processed: {installed_path}/workflow.yaml -Communicate all responses in {communication_language} -This is a HELPER workflow - it performs operations on sprint-status.yaml and returns results to the calling workflow via variables - - - - - Check if {{action}} parameter is provided and not empty - - - Set result_success = false - Set result_error = "Action parameter is required. See workflow.yaml for supported actions." - ❌ Sprint Status Helper Error: No action specified - HALT - return to calling workflow with error - - -Check if sprint status file exists at {status_file} - - - Set result_success = false - Set result_error = "file_not_found" - Set result_file_path = {status_file} - - - ❌ Sprint status file not found at: {status_file} - -Please run the sprint-planning workflow first to initialize tracking. - - - - HALT - return to calling workflow with error - - - -Read complete sprint status file from {status_file} -Parse YAML structure into memory -Extract metadata fields: generated, project, project_key, tracking_system, story_location -Extract development_status map: all epic and story keys with their current status values - - - Set result_success = false - Set result_error = "Invalid YAML format in sprint-status.yaml" - ❌ Sprint status file is malformed. Run sprint-planning to regenerate. - HALT - return to calling workflow with error - - - - - Route to appropriate action handler based on {{action}} value - - - Get Next Story - - - - List Stories - - - - Get Story Status - - - - Get Epic Status - - - - Check Epic Complete - - - - Update Story Status - - - - Update Epic Status - - - - Complete Retrospective - - - - Validate Transition - - - - Get Metadata - - - - Get File Path - - - - Set result_success = false - Set result_error = "Unknown action: {{action}}" - ❌ Unknown action: {{action}} - -Supported actions: get_next_story, list_stories, get_story_status, get_epic_status, check_epic_complete, update_story_status, update_epic_status, complete_retrospective, validate_transition, get_metadata, get_file_path - -HALT - return to calling workflow with error - - - - - - - Filter development_status map to find stories (keys matching pattern: number-number-name, not epic-X or epic-X-retrospective) - - - Further filter to only stories where status == {{filter_status}} - - - - Further filter to only stories from epic {{epic_filter}} (keys starting with "{{epic_filter}}-") - - -From filtered list, select the FIRST story (stories are in order in the file) - - - Extract story key (e.g., "1-1-user-authentication") - Parse epic_id from key (first number before dash) - Parse story_id from key (second number after first dash) - Get current status value from development_status map - - Set result_found = true - Set result_story_key = extracted story key - Set result_story_status = current status - Set result_epic_id = extracted epic id - Set result_story_id = extracted story id - Set result_success = true - - - 📋 Next {{filter_status}} story: {{result_story_key}} (Epic {{result_epic_id}}, Story {{result_story_id}}) - - - - - - Set result_found = false - Set result_story_key = "" - Set result_story_status = "" - Set result_epic_id = "" - Set result_story_id = "" - Set result_success = true - - - â„šī¸ No {{filter_status}} stories found{{#if epic_filter}} in {{epic_filter}}{{/if}} - - - - -COMPLETE - return to calling workflow - - - - Filter development_status map to find all stories (keys matching pattern: number-number-name) - - - Further filter to only stories where status == {{filter_status}} - - - - Further filter to only stories from epic {{epic_filter}} - - -Collect all matching story keys into an array -Apply limit: if more than {{limit}} stories, take first {{limit}} only - -Set result_count = number of stories found (before limit applied) -Set result_stories = array of story keys ["1-1-auth", "1-2-nav", ...] -Set result_story_list = comma-separated string of keys "1-1-auth, 1-2-nav, ..." -Set result_success = true - - - 📋 Found {{result_count}} {{filter_status}} stories{{#if epic_filter}} in {{epic_filter}}{{/if}}{{#if result_count > limit}} (showing first {{limit}}){{/if}} - - -COMPLETE - return to calling workflow - - - - Validate {{story_key}} is provided - - - Set result_success = false - Set result_error = "story_key parameter required for get_story_status" - HALT - return to calling workflow with error - - -Look up {{story_key}} in development_status map - - - Get status value from map - Set result_found = true - Set result_status = status value - Set result_success = true - - - 📋 Story {{story_key}} status: {{result_status}} - - - - - - Set result_found = false - Set result_status = "" - Set result_success = true - - - âš ī¸ Story {{story_key}} not found in sprint-status.yaml - - - - -COMPLETE - return to calling workflow - - - - Validate {{epic_id}} is provided - - - Set result_success = false - Set result_error = "epic_id parameter required for get_epic_status" - HALT - return to calling workflow with error - - -Construct epic key: "epic-{{epic_id}}" (e.g., "epic-1") -Look up epic key in development_status map - - - Get status value from map - - Count total stories in this epic (keys starting with "{{epic_id}}-") - Count done stories in this epic (keys starting with "{{epic_id}}-" where status == "done") - Determine if complete: true if done_count == story_count AND all stories exist - - Set result_found = true - Set result_status = epic status value - Set result_story_count = total story count - Set result_done_count = done story count - Set result_complete = true/false based on completion check - Set result_success = true - - - 📋 Epic {{epic_id}} status: {{result_status}} ({{result_done_count}}/{{result_story_count}} stories done) - - - - - - Set result_found = false - Set result_status = "" - Set result_story_count = 0 - Set result_done_count = 0 - Set result_complete = false - Set result_success = true - - - âš ī¸ Epic {{epic_id}} not found in sprint-status.yaml - - - - -COMPLETE - return to calling workflow - - - - Validate {{epic_id}} is provided - - - Set result_success = false - Set result_error = "epic_id parameter required for check_epic_complete" - HALT - return to calling workflow with error - - -Find all stories for epic {{epic_id}} (keys starting with "{{epic_id}}-") -Count total stories found -Count stories with status == "done" -Collect list of pending stories (status != "done") - -Determine complete: true if all stories are done, false otherwise - -Set result_complete = true/false -Set result_total_stories = total count -Set result_done_stories = done count -Set result_pending_stories = array of pending story keys -Set result_success = true - - - 📊 Epic {{epic_id}}: {{result_done_stories}}/{{result_total_stories}} stories complete{{#if result_complete}} ✅{{/if}} - - -COMPLETE - return to calling workflow - - - - - - Validate {{story_key}} is provided - Validate {{new_status}} is provided - - - Set result_success = false - Set result_error = "story_key and new_status parameters required for update_story_status" - HALT - return to calling workflow with error - - -Look up {{story_key}} in development_status map - - - Set result_success = false - Set result_error = "Story {{story_key}} not found in sprint-status.yaml" - - - ❌ Story {{story_key}} not found in tracking file - - - HALT - return to calling workflow with error - - - -Get current status (old_status) from map - - - Check if transition from old_status → {{new_status}} is legal - - Define legal transitions: - - backlog → drafted - - drafted → ready-for-dev OR drafted (re-edit) - - ready-for-dev → in-progress OR drafted (corrections) - - in-progress → review OR in-progress (continue work) - - review → done OR in-progress (corrections needed) - - done → done (idempotent) - - - - Set result_success = false - Set result_error = "Invalid transition: {{old_status}} → {{new_status}}" - Set result_validation_message = "Stories must follow workflow: backlog → drafted → ready-for-dev → in-progress → review → done" - - - ❌ Invalid status transition for {{story_key}}: {{old_status}} → {{new_status}} - -Legal workflow path: backlog → drafted → ready-for-dev → in-progress → review → done -Stories can move backward for corrections (e.g., review → in-progress) - - - - HALT - return to calling workflow with error - - - - - - Update development_status map: set {{story_key}} = {{new_status}} - Write updated YAML back to {status_file} - Preserve all metadata and comments in file - Maintain story order in development_status section - - -Set result_success = true -Set result_old_status = old_status -Set result_new_status = {{new_status}} -Set result_story_key = {{story_key}} - - - ✅ Updated sprint-status: {{story_key}} → {{new_status}}{{#if dry_run}} (DRY RUN - not saved){{/if}} - - -COMPLETE - return to calling workflow - - - - Validate {{epic_id}} is provided - Validate {{new_status}} is provided - - - Set result_success = false - Set result_error = "epic_id and new_status parameters required for update_epic_status" - HALT - return to calling workflow with error - - -Construct epic key: "epic-{{epic_id}}" -Look up epic key in development_status map - - - Set result_success = false - Set result_error = "Epic {{epic_id}} not found in sprint-status.yaml" - - - ❌ Epic {{epic_id}} not found in tracking file - - - HALT - return to calling workflow with error - - - -Get current status (old_status) from map - - - Update development_status map: set "epic-{{epic_id}}" = {{new_status}} - Write updated YAML back to {status_file} - - -Set result_success = true -Set result_old_status = old_status -Set result_new_status = {{new_status}} - - - ✅ Updated sprint-status: epic-{{epic_id}} → {{new_status}}{{#if dry_run}} (DRY RUN - not saved){{/if}} - - -COMPLETE - return to calling workflow - - - - Validate {{epic_id}} is provided - - - Set result_success = false - Set result_error = "epic_id parameter required for complete_retrospective" - HALT - return to calling workflow with error - - -Construct retrospective key: "epic-{{epic_id}}-retrospective" -Look up retrospective key in development_status map - - - Set result_success = false - Set result_error = "Retrospective for epic {{epic_id}} not found in sprint-status.yaml" - - - ❌ Epic {{epic_id}} retrospective not found in tracking file - - - HALT - return to calling workflow with error - - - -Get current status (old_status) from map - - - Update development_status map: set "epic-{{epic_id}}-retrospective" = "completed" - Write updated YAML back to {status_file} - - -Set result_success = true -Set result_retro_key = "epic-{{epic_id}}-retrospective" -Set result_old_status = old_status -Set result_new_status = "completed" - - - ✅ Updated sprint-status: epic-{{epic_id}}-retrospective → completed{{#if dry_run}} (DRY RUN - not saved){{/if}} - - -COMPLETE - return to calling workflow - - - - - - Validate {{from_status}} and {{to_status}} are provided - - - Set result_success = false - Set result_error = "from_status and to_status parameters required for validate_transition" - HALT - return to calling workflow with error - - -Check if transition {{from_status}} → {{to_status}} is legal - -Legal transitions for stories: - backlog → drafted: ✓ - drafted → ready-for-dev: ✓ - drafted → drafted: ✓ (re-edit) - ready-for-dev → in-progress: ✓ - ready-for-dev → drafted: ✓ (corrections) - in-progress → review: ✓ - in-progress → in-progress: ✓ (continue) - review → done: ✓ - review → in-progress: ✓ (corrections needed) - done → done: ✓ (idempotent) - All other transitions: ✗ - - - - Set result_valid = true - Set result_message = "Legal transition: {{from_status}} → {{to_status}}" - Set result_success = true - - - - Set result_valid = false - Set result_message = "Invalid transition: {{from_status}} → {{to_status}}" - Set result_suggested_path = "backlog → drafted → ready-for-dev → in-progress → review → done" - Set result_success = true - - - - {{#if result_valid}}✅{{else}}❌{{/if}} {{result_message}} - - -COMPLETE - return to calling workflow - - - - Extract metadata from loaded sprint status file - -Set result_project = metadata.project value -Set result_project_key = metadata.project_key value -Set result_tracking_system = metadata.tracking_system value -Set result_story_location = metadata.story_location value -Set result_generated_date = metadata.generated value -Set result_success = true - - - 📋 Sprint Status Metadata: -- Project: {{result_project}} -- Tracking: {{result_tracking_system}} -- Stories: {{result_story_location}} -- Generated: {{result_generated_date}} - - - -COMPLETE - return to calling workflow - - - - This action was already completed in step 1 when we loaded the file - -Set result_file_path = {status_file} -Set result_exists = true (because we successfully loaded it in step 1) -Set result_success = true - - - 📁 Sprint status file: {{result_file_path}} - - -COMPLETE - return to calling workflow - - - diff --git a/src/modules/bmm/workflows/helpers/sprint-status/workflow.yaml b/src/modules/bmm/workflows/helpers/sprint-status/workflow.yaml deleted file mode 100644 index 9d95b9a3..00000000 --- a/src/modules/bmm/workflows/helpers/sprint-status/workflow.yaml +++ /dev/null @@ -1,53 +0,0 @@ -name: sprint-status -description: "Helper workflow for reading and updating sprint-status.yaml tracking file. Provides query and update operations for Phase 4 implementation workflows." -author: "BMad Method" - -# Critical variables -config_source: "{project-root}/bmad/bmm/config.yaml" -output_folder: "{config_source}:output_folder" -communication_language: "{config_source}:communication_language" -date: system-generated - -# Workflow components -installed_path: "{project-root}/bmad/bmm/workflows/helpers/sprint-status" -instructions: "{installed_path}/instructions.md" -template: false - -# Sprint status file location -status_file: "{output_folder}/sprint-status.yaml" - -# Input parameters (provided by calling workflow) -# Action is REQUIRED - all others depend on the action type -variables: - action: "" # REQUIRED: get_next_story | list_stories | get_story_status | get_epic_status | check_epic_complete | update_story_status | update_epic_status | complete_retrospective | validate_transition | get_metadata | get_file_path - - # Query parameters - story_key: "" # For: get_story_status, update_story_status - epic_id: "" # For: get_epic_status, check_epic_complete, update_epic_status, complete_retrospective - filter_status: "" # For: get_next_story, list_stories - values: backlog | drafted | ready-for-dev | in-progress | review | done - epic_filter: "" # For: get_next_story, list_stories - limit to specific epic (e.g., "epic-1") - limit: 10 # For: list_stories - max results to return - - # Update parameters - new_status: "" # For: update_story_status, update_epic_status - target status - - # Validation parameters - from_status: "" # For: validate_transition - to_status: "" # For: validate_transition - - # Options - validate: true # For: update_story_status - enforce legal transitions - dry_run: false # For: update operations - test without saving - show_output: true # Show helper messages (caller can override) - -# Output variables (returned to calling workflow) -# All results are prefixed with result_* for clarity -# Specific variables depend on action - see instructions.md for details - -# Common returns (most actions): -# result_success: true | false -# result_error: error message (if failed) -# -# Action-specific returns documented in instructions.md - -web_bundle: false diff --git a/src/modules/bmm/workflows/workflow-status/init/instructions.md b/src/modules/bmm/workflows/workflow-status/init/instructions.md index 7eb36299..898bad2e 100644 --- a/src/modules/bmm/workflows/workflow-status/init/instructions.md +++ b/src/modules/bmm/workflows/workflow-status/init/instructions.md @@ -160,6 +160,9 @@ Is that correct? (y/n or tell me what's different) Save status file to {output_folder}/bmm-workflow-status.md ✅ Status file created! Next up: {{next_agent}} agent, run `{{next_command}}` + + 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. +
diff --git a/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml b/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml index 73999b70..307bd42e 100644 --- a/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml +++ b/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml @@ -57,7 +57,7 @@ phases: agent: "architect" command: "validate-architecture" - id: "solutioning-gate-check" - required: true + recommended: true agent: "architect" command: "solutioning-gate-check" note: "Validate PRD + UX + architecture cohesion before implementation" diff --git a/v6-open-items.md b/v6-open-items.md index 5cf6ab09..ffc6dc55 100644 --- a/v6-open-items.md +++ b/v6-open-items.md @@ -7,17 +7,12 @@ Aside from stability and bug fixes found during the alpha period - the main focu - NPX installer - github pipelines, branch protection, vulnerability scanners - subagent injections reenabled -- Solutioning Architecture - - is not asking for advanced elicitation - - the order of the document needs to rework the start to first align on what type of project architecture it is - - the architect put out some other not asked for documents as part of the final step - - the architect started dumping out the epic 1 tech spec with way too much prescriptive code in it -- both the PRD and the solutioning process need to work in more of the questioning before dumping out a section (this might be happening since so much is already known from the brief though) -- the UX Agent ux-spec process needs updates to be MUCH more interactive -- the UX agent needs to be given commands to generate comps or mock ups in HTML - it works really well, just need to make it an actual thing the agent offers to do +- docs docs docs --- done --- +- Done - UX Expert replaced with UX Designer and has a massively improved create-design workflow. +- Done - Architecture Reworked, searches web, more user interactive - Done - Sprint Status Workflow to generate the story status tracker - Done - Brownfield v6 integrated into the workflow. - Done - Full workflow single file tracking.