diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md index 9ed3ffe2a..cb2135c58 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md @@ -6,8 +6,8 @@ description: 'Initialize quiz game with mode selection and category choice' workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master' # File References -thisStepFile: '{workflow_path}/steps/step-01-init.md' -nextStepFile: '{workflow_path}/steps/step-02-q1.md' +thisStepFile: './step-01-init.md' +nextStepFile: './step-02-q1.md' workflowFile: '{workflow_path}/workflow.md' csvFile: '{project-root}/BMad-quiz-results.csv' csvTemplate: '{workflow_path}/templates/csv-headers.template' @@ -146,7 +146,7 @@ Display: **Starting your quiz adventure...** ## CRITICAL STEP COMPLETION NOTE -ONLY WHEN setup is complete (mode selected, category chosen, CSV initialized) will you then load, read fully, and execute `{workflow_path}/steps/step-02-q1.md` to begin the first question. +ONLY WHEN setup is complete (mode selected, category chosen, CSV initialized) will you then load, read fully, and execute `./step-02-q1.md` to begin the first question. ## 🚨 SYSTEM SUCCESS/FAILURE METRICS diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md index 2fe668e18..3141dd3c4 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md @@ -6,9 +6,9 @@ description: 'Question 1 - Level 1 difficulty' workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master' # File References -thisStepFile: '{workflow_path}/steps/step-02-q1.md' -nextStepFile: '{workflow_path}/steps/step-03-q2.md' -resultsStepFile: '{workflow_path}/steps/step-12-results.md' +thisStepFile: './step-02-q1.md' +nextStepFile: './step-03-q2.md' +resultsStepFile: './step-12-results.md' workflowFile: '{workflow_path}/workflow.md' csvFile: '{project-root}/BMad-quiz-results.csv' # Task References diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md index 489317f9e..b7ca00da0 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md @@ -6,9 +6,9 @@ description: 'Question 2 - Level 2 difficulty' workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master' # File References -thisStepFile: '{workflow_path}/steps/step-03-q2.md' -nextStepFile: '{workflow_path}/steps/step-04-q3.md' -resultsStepFile: '{workflow_path}/steps/step-12-results.md' +thisStepFile: './step-03-q2.md' +nextStepFile: './step-04-q3.md' +resultsStepFile: './step-12-results.md' workflowFile: '{workflow_path}/workflow.md' csvFile: '{project-root}/BMad-quiz-results.csv' --- diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md index 8184f3e53..c16a0d7fe 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md @@ -6,9 +6,9 @@ description: 'Question 3 - Level 3 difficulty' workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master' # File References -thisStepFile: '{workflow_path}/steps/step-04-q3.md' -nextStepFile: '{workflow_path}/steps/step-04-q3.md' -resultsStepFile: '{workflow_path}/steps/step-12-results.md' +thisStepFile: './step-04-q3.md' +nextStepFile: './step-04-q3.md' +resultsStepFile: './step-12-results.md' workflowFile: '{workflow_path}/workflow.md' csvFile: '{project-root}/BMad-quiz-results.csv' --- diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md index ca8fec89e..c5e2414fc 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md @@ -6,9 +6,9 @@ description: 'Question 4 - Level 4 difficulty' workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master' # File References -thisStepFile: '{workflow_path}/steps/step-05-q4.md' -nextStepFile: '{workflow_path}/steps/step-05-q4.md' -resultsStepFile: '{workflow_path}/steps/step-12-results.md' +thisStepFile: './step-05-q4.md' +nextStepFile: './step-05-q4.md' +resultsStepFile: './step-12-results.md' workflowFile: '{workflow_path}/workflow.md' csvFile: '{project-root}/BMad-quiz-results.csv' --- diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md index d98b43f29..815ee91a5 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md @@ -6,9 +6,9 @@ description: 'Question 5 - Level 5 difficulty' workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master' # File References -thisStepFile: '{workflow_path}/steps/step-06-q5.md' -nextStepFile: '{workflow_path}/steps/step-06-q5.md' -resultsStepFile: '{workflow_path}/steps/step-12-results.md' +thisStepFile: './step-06-q5.md' +nextStepFile: './step-06-q5.md' +resultsStepFile: './step-12-results.md' workflowFile: '{workflow_path}/workflow.md' csvFile: '{project-root}/BMad-quiz-results.csv' --- diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md index baaf49f1a..d216e0f1f 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md @@ -6,9 +6,9 @@ description: 'Question 6 - Level 6 difficulty' workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master' # File References -thisStepFile: '{workflow_path}/steps/step-07-q6.md' -nextStepFile: '{workflow_path}/steps/step-07-q6.md' -resultsStepFile: '{workflow_path}/steps/step-12-results.md' +thisStepFile: './step-07-q6.md' +nextStepFile: './step-07-q6.md' +resultsStepFile: './step-12-results.md' workflowFile: '{workflow_path}/workflow.md' csvFile: '{project-root}/BMad-quiz-results.csv' --- diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md index 1563fb846..1ca2589c0 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md @@ -6,9 +6,9 @@ description: 'Question 7 - Level 7 difficulty' workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master' # File References -thisStepFile: '{workflow_path}/steps/step-08-q7.md' -nextStepFile: '{workflow_path}/steps/step-08-q7.md' -resultsStepFile: '{workflow_path}/steps/step-12-results.md' +thisStepFile: './step-08-q7.md' +nextStepFile: './step-08-q7.md' +resultsStepFile: './step-12-results.md' workflowFile: '{workflow_path}/workflow.md' csvFile: '{project-root}/BMad-quiz-results.csv' --- diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md index 8dc7f7119..2f1a04eb4 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md @@ -6,9 +6,9 @@ description: 'Question 8 - Level 8 difficulty' workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master' # File References -thisStepFile: '{workflow_path}/steps/step-09-q8.md' -nextStepFile: '{workflow_path}/steps/step-09-q8.md' -resultsStepFile: '{workflow_path}/steps/step-12-results.md' +thisStepFile: './step-09-q8.md' +nextStepFile: './step-09-q8.md' +resultsStepFile: './step-12-results.md' workflowFile: '{workflow_path}/workflow.md' csvFile: '{project-root}/BMad-quiz-results.csv' --- diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md index 6c76c0fcd..d85b1016c 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md @@ -6,9 +6,9 @@ description: 'Question 9 - Level 9 difficulty' workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master' # File References -thisStepFile: '{workflow_path}/steps/step-10-q9.md' -nextStepFile: '{workflow_path}/steps/step-10-q9.md' -resultsStepFile: '{workflow_path}/steps/step-12-results.md' +thisStepFile: './step-10-q9.md' +nextStepFile: './step-10-q9.md' +resultsStepFile: './step-12-results.md' workflowFile: '{workflow_path}/workflow.md' csvFile: '{project-root}/BMad-quiz-results.csv' --- diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md index 4468c937d..22eb6ebe3 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md @@ -6,9 +6,9 @@ description: 'Question 10 - Level 10 difficulty' workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master' # File References -thisStepFile: '{workflow_path}/steps/step-11-q10.md' -nextStepFile: '{workflow_path}/steps/results.md' -resultsStepFile: '{workflow_path}/steps/step-12-results.md' +thisStepFile: './step-11-q10.md' +nextStepFile: './results.md' +resultsStepFile: './step-12-results.md' workflowFile: '{workflow_path}/workflow.md' csvFile: '{project-root}/BMad-quiz-results.csv' --- diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md index a0eb36d8a..0d20ccfb0 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md @@ -6,8 +6,8 @@ description: 'Final results and celebration' workflow_path: '{project-root}/_bmad/custom/src/workflows/quiz-master' # File References -thisStepFile: '{workflow_path}/steps/step-12-results.md' -initStepFile: '{workflow_path}/steps/step-01-init.md' +thisStepFile: './step-12-results.md' +initStepFile: './step-01-init.md' workflowFile: '{workflow_path}/workflow.md' csvFile: '{project-root}/BMad-quiz-results.csv' # Task References diff --git a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md index badf9c510..b446773de 100644 --- a/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md +++ b/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md @@ -51,4 +51,4 @@ Load and read full config from {project-root}/_bmad/bmb/config.yaml and resolve: ### 2. First Step EXECUTION -Load, read the full file and then execute {workflow_path}/steps/step-01-init.md to begin the workflow. +Load, read the full file and then execute ./step-01-init.md to begin the workflow. diff --git a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md index a6cb91e76..e004d3e2e 100644 --- a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +++ b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md @@ -6,12 +6,12 @@ description: 'Initialize the nutrition plan workflow by detecting continuation s workflow_path: '{project-root}/_bmad/bmb/reference/workflows/meal-prep-nutrition' # File References -thisStepFile: '{workflow_path}/steps/step-01-init.md' -nextStepFile: '{workflow_path}/steps/step-02-profile.md' +thisStepFile: './step-01-init.md' +nextStepFile: './step-02-profile.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/nutrition-plan-{project_name}.md' templateFile: '{workflow_path}/templates/nutrition-plan.md' -continueFile: '{workflow_path}/steps/step-01b-continue.md' +continueFile: './step-01b-continue.md' # Template References # This step doesn't use content templates, only the main template --- diff --git a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md index a01d7711b..36a1eb015 100644 --- a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +++ b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md @@ -6,7 +6,7 @@ description: 'Handle workflow continuation from previous session' workflow_path: '{project-root}/_bmad/bmb/reference/workflows/meal-prep-nutrition' # File References -thisStepFile: '{workflow_path}/steps/step-01b-continue.md' +thisStepFile: './step-01b-continue.md' outputFile: '{output_folder}/nutrition-plan-{project_name}.md' --- diff --git a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md index 29fc76b2e..09b301d02 100644 --- a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +++ b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md @@ -6,8 +6,8 @@ description: 'Gather comprehensive user profile information through collaborativ workflow_path: '{project-root}/_bmad/bmb/reference/workflows/meal-prep-nutrition' # File References (all use {variable} format in file) -thisStepFile: '{workflow_path}/steps/step-02-profile.md' -nextStepFile: '{workflow_path}/steps/step-03-assessment.md' +thisStepFile: './step-02-profile.md' +nextStepFile: './step-03-assessment.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/nutrition-plan-{project_name}.md' diff --git a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md index 6e0ead930..142b18a08 100644 --- a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +++ b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md @@ -6,8 +6,8 @@ description: 'Analyze nutritional requirements, identify restrictions, and calcu workflow_path: '{project-root}/_bmad/bmb/reference/workflows/meal-prep-nutrition' # File References -thisStepFile: '{workflow_path}/steps/step-03-assessment.md' -nextStepFile: '{workflow_path}/steps/step-04-strategy.md' +thisStepFile: './step-03-assessment.md' +nextStepFile: './step-04-strategy.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/nutrition-plan-{project_name}.md' diff --git a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md index 39a254847..479765dde 100644 --- a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +++ b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md @@ -6,9 +6,9 @@ description: 'Design a personalized meal strategy that meets nutritional needs a workflow_path: '{project-root}/_bmad/bmb/reference/workflows/meal-prep-nutrition' # File References -thisStepFile: '{workflow_path}/steps/step-04-strategy.md' -nextStepFile: '{workflow_path}/steps/step-05-shopping.md' -alternateNextStepFile: '{workflow_path}/steps/step-06-prep-schedule.md' +thisStepFile: './step-04-strategy.md' +nextStepFile: './step-05-shopping.md' +alternateNextStepFile: './step-06-prep-schedule.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/nutrition-plan-{project_name}.md' diff --git a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md index 6e035b057..275722d69 100644 --- a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +++ b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md @@ -6,8 +6,8 @@ description: 'Create a comprehensive shopping list that supports the meal strate workflow_path: '{project-root}/_bmad/bmb/reference/workflows/meal-prep-nutrition' # File References -thisStepFile: '{workflow_path}/steps/step-05-shopping.md' -nextStepFile: '{workflow_path}/steps/step-06-prep-schedule.md' +thisStepFile: './step-05-shopping.md' +nextStepFile: './step-06-prep-schedule.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/nutrition-plan-{project_name}.md' diff --git a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md index 545ce1c9a..492b76352 100644 --- a/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +++ b/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md @@ -6,7 +6,7 @@ description: "Create a realistic meal prep schedule that fits the user's lifesty workflow_path: '{project-root}/_bmad/bmb/reference/workflows/meal-prep-nutrition' # File References -thisStepFile: '{workflow_path}/steps/step-06-prep-schedule.md' +thisStepFile: './step-06-prep-schedule.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/nutrition-plan-{project_name}.md' diff --git a/src/modules/bmb/workflows/workflow/data/architecture.md b/src/modules/bmb/workflows/workflow/data/architecture.md index e0d0c2e11..d594c61a7 100644 --- a/src/modules/bmb/workflows/workflow/data/architecture.md +++ b/src/modules/bmb/workflows/workflow/data/architecture.md @@ -91,8 +91,8 @@ workflow.md → step-01-init.md (detects existing) → step-01b-continue.md → ### Standard (All Workflows) ```yaml workflow_path: '{project-root}/_bmad/[module]/workflows/[name]' -thisStepFile: '{workflow_path}/steps/step-[N]-[name].md' -nextStepFile: '{workflow_path}/steps/step-[N+1]-[name].md' +thisStepFile: './step-[N]-[name].md' +nextStepFile: './step-[N+1]-[name].md' outputFile: '{output_folder}/[output].md' ``` diff --git a/src/modules/bmb/workflows/workflow/data/frontmatter-standards.md b/src/modules/bmb/workflows/workflow/data/frontmatter-standards.md index ba3dda17b..86432a923 100644 --- a/src/modules/bmb/workflows/workflow/data/frontmatter-standards.md +++ b/src/modules/bmb/workflows/workflow/data/frontmatter-standards.md @@ -14,14 +14,14 @@ ## Standard Variables (Always Available) -| Variable | Example Value | -| ----------------- | -------------------------------------- | -| `{project-root}` | `/Users/user/dev/BMAD-METHOD` | -| `{project_name}` | `my-project` | -| `{output_folder}` | `/Users/user/dev/BMAD-METHOD/output` | -| `{user_name}` | `Brian` | -| `{communication_language}` | `english` | -| `{document_output_language}` | `english` | +| Variable | Example Value | +| ---------------------------- | ------------------------------------ | +| `{project-root}` | `/Users/user/dev/BMAD-METHOD` | +| `{project_name}` | `my-project` | +| `{output_folder}` | `/Users/user/dev/BMAD-METHOD/output` | +| `{user_name}` | `Brian` | +| `{communication_language}` | `english` | +| `{document_output_language}` | `english` | --- @@ -101,7 +101,7 @@ nextStepFile: './step-02-foo.md' ### 1. Step to Step (SAME folder) = ./filename.md ```yaml # ❌ WRONG -nextStepFile: '{workflow_path}/steps/step-02.md' +nextStepFile: './step-02.md' nextStepFile: '{project-root}/_bmad/bmm/workflows/foo/steps/step-02.md' # ✅ CORRECT @@ -145,14 +145,14 @@ outputFile: '{output_folder}/output.md' These patterns are **NEVER ALLOWED** in workflow step frontmatter: -| Pattern | Why It's Wrong | -|---------|----------------| -| `workflow_path: '{project-root}/...'` | Use relative paths instead | -| `thisStepFile: './step-XX.md'` | Almost never used - remove unless actually referenced | -| `workflowFile: './workflow.md'` | Almost never used - remove unless actually referenced | -| `{workflow_path}/steps/...` | Use `./step-XX.md` (same folder) | -| `{workflow_path}/templates/...` | Use `../template.md` (parent folder) | -| `{workflow_path}/data/...` | Use `./data/file.md` (subfolder) | +| Pattern | Why It's Wrong | +| ------------------------------------- | ----------------------------------------------------- | +| `workflow_path: '{project-root}/...'` | Use relative paths instead | +| `thisStepFile: './step-XX.md'` | Almost never used - remove unless actually referenced | +| `workflowFile: './workflow.md'` | Almost never used - remove unless actually referenced | +| `./...` | Use `./step-XX.md` (same folder) | +| `{workflow_path}/templates/...` | Use `../template.md` (parent folder) | +| `{workflow_path}/data/...` | Use `./data/file.md` (subfolder) | --- @@ -160,13 +160,13 @@ These patterns are **NEVER ALLOWED** in workflow step frontmatter: Use `snake_case` with descriptive prefixes: -| Pattern | Usage | Example | -| --------- | ---------------------- | -------------------------- | -| `{*_File}` | File references | `outputFile`, `nextStepFile` | -| `{*_Task}` | Task references | `advancedElicitationTask` | -| `{*_Workflow}` | Workflow references | `partyModeWorkflow` | -| `{*_Template}` | Templates | `productBriefTemplate` | -| `{*_Data}` | Data files | `dietaryData` | +| Pattern | Usage | Example | +| -------------- | ------------------- | ---------------------------- | +| `{*_File}` | File references | `outputFile`, `nextStepFile` | +| `{*_Task}` | Task references | `advancedElicitationTask` | +| `{*_Workflow}` | Workflow references | `partyModeWorkflow` | +| `{*_Template}` | Templates | `productBriefTemplate` | +| `{*_Data}` | Data files | `dietaryData` | --- diff --git a/src/modules/bmb/workflows/workflow/data/step-type-patterns.md b/src/modules/bmb/workflows/workflow/data/step-type-patterns.md index 4bc9478a1..772b6be3a 100644 --- a/src/modules/bmb/workflows/workflow/data/step-type-patterns.md +++ b/src/modules/bmb/workflows/workflow/data/step-type-patterns.md @@ -11,7 +11,7 @@ All steps share this skeleton: --- name: 'step-[N]-[name]' description: '[what it does]' -[file references - ONLY used variables] +[file references - relative path and only if used in this steps file] --- # Step [N]: [Name] @@ -76,10 +76,9 @@ description: '[what it does]' --- name: 'step-01-init' description: 'Initialize [workflow]' -thisStepFile: '{workflow_path}/steps/step-01-init.md' -nextStepFile: '{workflow_path}/steps/step-02-[name].md' +nextStepFile: './step-02-[name].md' outputFile: '{output_folder}/[output].md' -templateFile: '{workflow_path}/templates/[template].md' +templateFile: '../templates/[template].md' --- ``` @@ -97,7 +96,7 @@ templateFile: '{workflow_path}/templates/[template].md' **Frontmatter:** Add `continueFile` reference ```yaml -continueFile: '{workflow_path}/steps/step-01b-continue.md' +continueFile: './step-01b-continue.md' ``` **Logic:** @@ -140,7 +139,7 @@ workflowFile: '{workflow_path}/workflow.md' ```yaml --- name: 'step-[N]-[name]' -nextStepFile: '{workflow_path}/steps/step-[N+1]-[name].md' +nextStepFile: './step-[N+1]-[name].md' outputFile: '{output_folder}/[output].md' advancedElicitationTask: '{project-root}/.../advanced-elicitation/workflow.xml' partyModeWorkflow: '{project-root}/.../party-mode/workflow.md' @@ -161,8 +160,8 @@ partyModeWorkflow: '{project-root}/.../party-mode/workflow.md' **Frontmatter:** ```yaml -nextStepFile: '{workflow_path}/steps/step-[default].md' -altStepFile: '{workflow_path}/steps/step-[alternate].md' +nextStepFile: './step-[default].md' +altStepFile: './step-[alternate].md' ``` **Menu:** Custom letters (L/R/etc.) with branching logic @@ -297,16 +296,16 @@ Mark workflow complete ## Step Size Guidelines -| Type | Recommended | Maximum | -| ------------------------ | ----------- | ------- | -| Init | < 100 | 150 | -| Init (with discovery) | < 150 | 200 | -| Continuation | < 150 | 200 | -| Middle (simple) | < 150 | 200 | -| Middle (complex) | < 200 | 250 | -| Branch | < 150 | 200 | -| Validation sequence | < 100 | 150 | -| Final polish | < 150 | 200 | -| Final | < 150 | 200 | +| Type | Recommended | Maximum | +| --------------------- | ----------- | ------- | +| Init | < 100 | 150 | +| Init (with discovery) | < 150 | 200 | +| Continuation | < 150 | 200 | +| Middle (simple) | < 150 | 200 | +| Middle (complex) | < 200 | 250 | +| Branch | < 150 | 200 | +| Validation sequence | < 100 | 150 | +| Final polish | < 150 | 200 | +| Final | < 150 | 200 | **If exceeded:** Split into multiple steps or extract to `/data/` files. diff --git a/src/modules/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md b/src/modules/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md index 717780375..85daf8995 100644 --- a/src/modules/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +++ b/src/modules/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md @@ -60,7 +60,7 @@ Load {frontmatterStandards} to understand validation criteria. - `workflow_path: '...'` - use relative paths instead - `thisStepFile: '...'` - remove unless actually referenced in body - `workflowFile: '...'` - remove unless actually referenced in body -- `{workflow_path}/steps/...` - use `./step-XX.md` +- `./...` - use `./step-XX.md` - `{workflow_path}/templates/...` - use `../template.md` ### 2. Validate EVERY Step File - Systematic Algorithm @@ -132,10 +132,10 @@ Create report table: ```markdown ### Frontmatter Validation Results -| File | Required | All Vars Used | Relative Paths | No Forbidden | Status | -|------|----------|---------------|----------------|-------------|--------| -| step-01-init.md | ✅ | ❌ Unused: thisStepFile, workflowFile | ✅ | ✅ | ❌ FAIL | -| step-02-vision.md | ✅ | ✅ | ✅ | ✅ | ✅ PASS | +| File | Required | All Vars Used | Relative Paths | No Forbidden | Status | +| ----------------- | -------- | ------------------------------------ | -------------- | ------------ | ------ | +| step-01-init.md | ✅ | ❌ Unused: thisStepFile, workflowFile | ✅ | ✅ | ❌ FAIL | +| step-02-vision.md | ✅ | ✅ | ✅ | ✅ | ✅ PASS | ``` ### 4. List All Violations diff --git a/src/modules/bmb/workflows/workflow/templates/step-01-init-continuable-template.md b/src/modules/bmb/workflows/workflow/templates/step-01-init-continuable-template.md index 9b5794efc..84e4628c4 100644 --- a/src/modules/bmb/workflows/workflow/templates/step-01-init-continuable-template.md +++ b/src/modules/bmb/workflows/workflow/templates/step-01-init-continuable-template.md @@ -17,11 +17,11 @@ workflow\*path: `{project-root}/_bmad/[module-path]/workflows/[workflow-name]` # File References (all use {variable} format in file) -thisStepFile: `{workflow_path}/steps/step-01-init.md` -nextStepFile: `{workflow_path}/steps/step-02-[step-name].md` +thisStepFile: `./step-01-init.md` +nextStepFile: `./step-02-[step-name].md` workflowFile: `{workflow_path}/workflow.md` outputFile: `{output_folder}/[output-file-name]-{project_name}.md` -continueFile: `{workflow_path}/steps/step-01b-continue.md` +continueFile: `./step-01b-continue.md` templateFile: `{workflow_path}/templates/[main-template].md` # Template References diff --git a/src/modules/bmb/workflows/workflow/templates/step-1b-template.md b/src/modules/bmb/workflows/workflow/templates/step-1b-template.md index 8e34bdd40..0f5e7104b 100644 --- a/src/modules/bmb/workflows/workflow/templates/step-1b-template.md +++ b/src/modules/bmb/workflows/workflow/templates/step-1b-template.md @@ -17,7 +17,7 @@ workflow\*path: '{project-root}/_bmad/[module-path]/workflows/[workflow-name]' # File References (all use {variable} format in file) -thisStepFile: '{workflow_path}/steps/step-01b-continue.md' +thisStepFile: './step-01b-continue.md' outputFile: '{output_folder}/[output-file-name]-{project_name}.md' workflowFile: '{workflow_path}/workflow.md' diff --git a/src/modules/bmb/workflows/workflow/templates/step-template.md b/src/modules/bmb/workflows/workflow/templates/step-template.md index a67586034..0acbd071e 100644 --- a/src/modules/bmb/workflows/workflow/templates/step-template.md +++ b/src/modules/bmb/workflows/workflow/templates/step-template.md @@ -15,9 +15,9 @@ workflow\*path: '{project-root}/_bmad/[module]/reference/workflows/[workflow-nam # File References (all use {variable} format in file) -thisStepFile: '{workflow_path}/steps/step-[N]-[short-name].md' -nextStep{N+1}: '{workflow_path}/steps/step-[N+1]-[next-short-name].md' # Remove for final step or no next step -altStep{Y}: '{workflow_path}/steps/step-[Y]-[some-other-step].md' # if there is an alternate next story depending on logic +thisStepFile: './step-[N]-[short-name].md' +nextStep{N+1}: './step-[N+1]-[next-short-name].md' # Remove for final step or no next step +altStep{Y}: './step-[Y]-[some-other-step].md' # if there is an alternate next story depending on logic workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/[output-file-name]-{project_name}.md' diff --git a/src/modules/bmb/workflows/workflow/templates/workflow-template.md b/src/modules/bmb/workflows/workflow/templates/workflow-template.md index 5cc687a3e..2abe1e8aa 100644 --- a/src/modules/bmb/workflows/workflow/templates/workflow-template.md +++ b/src/modules/bmb/workflows/workflow/templates/workflow-template.md @@ -97,7 +97,7 @@ Copy the template above and replace: Update the last line of the workflow.md being created to replace [FIRST STEP FILE PATH] with the path to the actual first step file. -Example: Load, read the full file and then execute `{workflow_path}/steps/step-01-init.md` to begin the workflow. +Example: Load, read the full file and then execute `./step-01-init.md` to begin the workflow. ### NOTE: You can View a real example of a perfect workflow.md file that was created from this template diff --git a/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md b/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md index 661c68f40..ef1719efa 100644 --- a/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +++ b/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md @@ -6,8 +6,8 @@ description: 'Initialize the game brainstorming workflow and validate readiness' workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/brainstorm-game' # File References -thisStepFile: '{workflow_path}/steps/step-01-init.md' -nextStepFile: '{workflow_path}/steps/step-02-context.md' +thisStepFile: './step-01-init.md' +nextStepFile: './step-02-context.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/brainstorming-session-{date}.md' diff --git a/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md b/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md index 9380031a9..b7312261a 100644 --- a/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +++ b/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md @@ -6,8 +6,8 @@ description: 'Load game-specific brainstorming context and techniques' workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/brainstorm-game' # File References -thisStepFile: '{workflow_path}/steps/step-02-context.md' -nextStepFile: '{workflow_path}/steps/step-03-ideation.md' +thisStepFile: './step-02-context.md' +nextStepFile: './step-03-ideation.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/brainstorming-session-{date}.md' diff --git a/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md b/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md index 3e4c7d5bb..355297a07 100644 --- a/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +++ b/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md @@ -6,8 +6,8 @@ description: 'Execute the brainstorming session with game-specific techniques' workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/brainstorm-game' # File References -thisStepFile: '{workflow_path}/steps/step-03-ideation.md' -nextStepFile: '{workflow_path}/steps/step-04-complete.md' +thisStepFile: './step-03-ideation.md' +nextStepFile: './step-04-complete.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/brainstorming-session-{date}.md' diff --git a/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md b/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md index 14118fc11..3807e0af4 100644 --- a/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +++ b/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md @@ -6,7 +6,7 @@ description: 'Complete the brainstorming session with summary and next steps' workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/brainstorm-game' # File References -thisStepFile: '{workflow_path}/steps/step-04-complete.md' +thisStepFile: './step-04-complete.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/brainstorming-session-{date}.md' diff --git a/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md b/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md index 1ba0767e1..948ab591b 100644 --- a/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +++ b/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md @@ -28,7 +28,7 @@ stepsCompleted: [1, 2, 3, ...] # Array of completed step numbers To begin, load and execute step-01-init.md: ``` -{workflow_path}/steps/step-01-init.md +./step-01-init.md ``` ## Critical Rules diff --git a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md index 534e57e72..b203fbe20 100644 --- a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +++ b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md @@ -6,9 +6,9 @@ description: 'Initialize the Game Brief workflow by detecting continuation state workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief' # File References -thisStepFile: '{workflow_path}/steps/step-01-init.md' -nextStepFile: '{workflow_path}/steps/step-02-vision.md' -continueStepFile: '{workflow_path}/steps/step-01b-continue.md' +thisStepFile: './step-01-init.md' +nextStepFile: './step-02-vision.md' +continueStepFile: './step-01b-continue.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-brief.md' diff --git a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md index bd943bdeb..514be4968 100644 --- a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +++ b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md @@ -6,7 +6,7 @@ description: 'Resume an interrupted Game Brief workflow from the last completed workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief' # File References -thisStepFile: '{workflow_path}/steps/step-01b-continue.md' +thisStepFile: './step-01b-continue.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-brief.md' --- diff --git a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md index 85ddd1ad6..34f84a065 100644 --- a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +++ b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md @@ -6,8 +6,8 @@ description: 'Define the core game vision including name, concept, pitch, and vi workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief' # File References -thisStepFile: '{workflow_path}/steps/step-02-vision.md' -nextStepFile: '{workflow_path}/steps/step-03-market.md' +thisStepFile: './step-02-vision.md' +nextStepFile: './step-03-market.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-brief.md' diff --git a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md index 1f902b296..6fb67ffb4 100644 --- a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +++ b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md @@ -6,8 +6,8 @@ description: 'Define target audience and market context' workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief' # File References -thisStepFile: '{workflow_path}/steps/step-03-market.md' -nextStepFile: '{workflow_path}/steps/step-04-fundamentals.md' +thisStepFile: './step-03-market.md' +nextStepFile: './step-04-fundamentals.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-brief.md' diff --git a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md index 63ce809f5..2238262de 100644 --- a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +++ b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md @@ -6,8 +6,8 @@ description: 'Define core gameplay pillars, mechanics, and player experience goa workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief' # File References -thisStepFile: '{workflow_path}/steps/step-04-fundamentals.md' -nextStepFile: '{workflow_path}/steps/step-05-scope.md' +thisStepFile: './step-04-fundamentals.md' +nextStepFile: './step-05-scope.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-brief.md' diff --git a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md index 7a8c8e50e..3f5fce6a4 100644 --- a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +++ b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md @@ -6,8 +6,8 @@ description: 'Define project scope including platforms, constraints, and resourc workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief' # File References -thisStepFile: '{workflow_path}/steps/step-05-scope.md' -nextStepFile: '{workflow_path}/steps/step-06-references.md' +thisStepFile: './step-05-scope.md' +nextStepFile: './step-06-references.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-brief.md' diff --git a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md index 052410752..3ed602598 100644 --- a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +++ b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md @@ -6,8 +6,8 @@ description: 'Define inspiration games, competitive analysis, and key differenti workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief' # File References -thisStepFile: '{workflow_path}/steps/step-06-references.md' -nextStepFile: '{workflow_path}/steps/step-07-content.md' +thisStepFile: './step-06-references.md' +nextStepFile: './step-07-content.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-brief.md' diff --git a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md index 1e98a5a99..1a48dcc1a 100644 --- a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +++ b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md @@ -6,8 +6,8 @@ description: 'Define content framework, art/audio direction, and risk assessment workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief' # File References -thisStepFile: '{workflow_path}/steps/step-07-content.md' -nextStepFile: '{workflow_path}/steps/step-08-complete.md' +thisStepFile: './step-07-content.md' +nextStepFile: './step-08-complete.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-brief.md' diff --git a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md index 2ab5abe0a..3b3f6f7b3 100644 --- a/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +++ b/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md @@ -6,7 +6,7 @@ description: 'Define success criteria and complete the game brief with handoff g workflow_path: '{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief' # File References -thisStepFile: '{workflow_path}/steps/step-08-complete.md' +thisStepFile: './step-08-complete.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-brief.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md index 5f87633d6..ae40ccd3e 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md @@ -6,9 +6,9 @@ description: 'Initialize the GDD workflow by detecting continuation state and se workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-01-init.md' -nextStepFile: '{workflow_path}/steps/step-02-context.md' -continueStepFile: '{workflow_path}/steps/step-01b-continue.md' +thisStepFile: './step-01-init.md' +nextStepFile: './step-02-context.md' +continueStepFile: './step-01b-continue.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md index eb70d7d26..29318ee4f 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md @@ -6,7 +6,7 @@ description: 'Resume an interrupted GDD workflow from the last completed step' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-01b-continue.md' +thisStepFile: './step-01b-continue.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' --- diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md index 12b5bd036..300ffd6d2 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md @@ -6,8 +6,8 @@ description: 'Load game context from brief and determine the game type' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-02-context.md' -nextStepFile: '{workflow_path}/steps/step-03-platforms.md' +thisStepFile: './step-02-context.md' +nextStepFile: './step-03-platforms.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md index 0ccc1ee6f..5433eab11 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md @@ -6,8 +6,8 @@ description: 'Define target platforms and target audience for the game' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-03-platforms.md' -nextStepFile: '{workflow_path}/steps/step-04-vision.md' +thisStepFile: './step-03-platforms.md' +nextStepFile: './step-04-vision.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md index 1c5e66237..1df866795 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md @@ -6,8 +6,8 @@ description: 'Define project goals, context, and unique selling points' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-04-vision.md' -nextStepFile: '{workflow_path}/steps/step-05-core-gameplay.md' +thisStepFile: './step-04-vision.md' +nextStepFile: './step-05-core-gameplay.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md index ae62ab2fc..b2756e535 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md @@ -6,8 +6,8 @@ description: 'Define game pillars, core gameplay loop, and win/loss conditions' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-05-core-gameplay.md' -nextStepFile: '{workflow_path}/steps/step-06-mechanics.md' +thisStepFile: './step-05-core-gameplay.md' +nextStepFile: './step-06-mechanics.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md index 0dbc9eb80..e5322a02c 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md @@ -6,8 +6,8 @@ description: 'Define primary game mechanics and control schemes' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-06-mechanics.md' -nextStepFile: '{workflow_path}/steps/step-07-game-type.md' +thisStepFile: './step-06-mechanics.md' +nextStepFile: './step-07-game-type.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md index 00ae53b1d..4fc8bcd7e 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md @@ -6,8 +6,8 @@ description: 'Process game-type specific sections from the loaded game type guid workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-07-game-type.md' -nextStepFile: '{workflow_path}/steps/step-08-progression.md' +thisStepFile: './step-07-game-type.md' +nextStepFile: './step-08-progression.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md index bcd3a33e6..2cb2ae311 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md @@ -6,8 +6,8 @@ description: 'Define player progression systems and game balance' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-08-progression.md' -nextStepFile: '{workflow_path}/steps/step-09-levels.md' +thisStepFile: './step-08-progression.md' +nextStepFile: './step-09-levels.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md index d286cc42d..edd358463 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md @@ -6,8 +6,8 @@ description: 'Define level design framework and level progression' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-09-levels.md' -nextStepFile: '{workflow_path}/steps/step-10-art-audio.md' +thisStepFile: './step-09-levels.md' +nextStepFile: './step-10-art-audio.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md index a9ceb02cd..8ac6b3c53 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md @@ -6,8 +6,8 @@ description: 'Define art style and audio direction' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-10-art-audio.md' -nextStepFile: '{workflow_path}/steps/step-11-technical.md' +thisStepFile: './step-10-art-audio.md' +nextStepFile: './step-11-technical.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md index a3b3e3d6f..e60fcce2a 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md @@ -6,8 +6,8 @@ description: 'Define technical specifications and requirements' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-11-technical.md' -nextStepFile: '{workflow_path}/steps/step-12-epics.md' +thisStepFile: './step-11-technical.md' +nextStepFile: './step-12-epics.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md index 83fc22139..dff493016 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md @@ -6,8 +6,8 @@ description: 'Define development epics and high-level story breakdown' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-12-epics.md' -nextStepFile: '{workflow_path}/steps/step-13-metrics.md' +thisStepFile: './step-12-epics.md' +nextStepFile: './step-13-metrics.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' epicsOutputFile: '{output_folder}/epics.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md index 00fed1be4..d2360f77f 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md @@ -6,8 +6,8 @@ description: 'Define success metrics for technical and gameplay evaluation' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-13-metrics.md' -nextStepFile: '{workflow_path}/steps/step-14-complete.md' +thisStepFile: './step-13-metrics.md' +nextStepFile: './step-14-complete.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' diff --git a/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md b/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md index df6f531f8..cafa778db 100644 --- a/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +++ b/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md @@ -6,7 +6,7 @@ description: 'Document out of scope items, capture assumptions, and provide hand workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/gdd' # File References -thisStepFile: '{workflow_path}/steps/step-14-complete.md' +thisStepFile: './step-14-complete.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/gdd.md' epicsFile: '{output_folder}/epics.md' diff --git a/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md b/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md index fc0226413..aa3dfc7b9 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +++ b/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md @@ -6,9 +6,9 @@ description: 'Initialize narrative workflow, load GDD context, and assess narrat workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative' # File References -thisStepFile: '{workflow_path}/steps/step-01-init.md' -continueStepFile: '{workflow_path}/steps/step-01b-continue.md' -nextStepFile: '{workflow_path}/steps/step-02-foundation.md' +thisStepFile: './step-01-init.md' +continueStepFile: './step-01b-continue.md' +nextStepFile: './step-02-foundation.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/narrative-design.md' templateFile: '{workflow_path}/templates/narrative-template.md' diff --git a/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md b/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md index 8acb86a42..28558abe1 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +++ b/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md @@ -6,21 +6,21 @@ description: 'Continue an existing narrative workflow from where it left off' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative' # File References -thisStepFile: '{workflow_path}/steps/step-01b-continue.md' +thisStepFile: './step-01b-continue.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/narrative-design.md' # Step Files (for routing) -step02: '{workflow_path}/steps/step-02-foundation.md' -step03: '{workflow_path}/steps/step-03-story.md' -step04: '{workflow_path}/steps/step-04-characters.md' -step05: '{workflow_path}/steps/step-05-world.md' -step06: '{workflow_path}/steps/step-06-dialogue.md' -step07: '{workflow_path}/steps/step-07-environmental.md' -step08: '{workflow_path}/steps/step-08-delivery.md' -step09: '{workflow_path}/steps/step-09-integration.md' -step10: '{workflow_path}/steps/step-10-production.md' -step11: '{workflow_path}/steps/step-11-complete.md' +step02: './step-02-foundation.md' +step03: './step-03-story.md' +step04: './step-04-characters.md' +step05: './step-05-world.md' +step06: './step-06-dialogue.md' +step07: './step-07-environmental.md' +step08: './step-08-delivery.md' +step09: './step-09-integration.md' +step10: './step-10-production.md' +step11: './step-11-complete.md' --- # Step 1b: Continue Existing Narrative diff --git a/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md b/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md index c432467ef..509cdcadf 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +++ b/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md @@ -6,8 +6,8 @@ description: 'Define narrative premise, themes, tone, and story structure' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative' # File References -thisStepFile: '{workflow_path}/steps/step-02-foundation.md' -nextStepFile: '{workflow_path}/steps/step-03-story.md' +thisStepFile: './step-02-foundation.md' +nextStepFile: './step-03-story.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/narrative-design.md' diff --git a/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md b/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md index fe1278df7..5f633e7e8 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +++ b/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md @@ -6,8 +6,8 @@ description: 'Define major story beats and narrative pacing' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative' # File References -thisStepFile: '{workflow_path}/steps/step-03-story.md' -nextStepFile: '{workflow_path}/steps/step-04-characters.md' +thisStepFile: './step-03-story.md' +nextStepFile: './step-04-characters.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/narrative-design.md' diff --git a/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md b/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md index a5bb65376..e03f68156 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +++ b/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md @@ -6,8 +6,8 @@ description: 'Develop all characters including protagonists, antagonists, suppor workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative' # File References -thisStepFile: '{workflow_path}/steps/step-04-characters.md' -nextStepFile: '{workflow_path}/steps/step-05-world.md' +thisStepFile: './step-04-characters.md' +nextStepFile: './step-05-world.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/narrative-design.md' diff --git a/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md b/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md index 2e8da212b..a77a6bc7e 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +++ b/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md @@ -6,8 +6,8 @@ description: 'Build the world including setting, history, factions, and key loca workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative' # File References -thisStepFile: '{workflow_path}/steps/step-05-world.md' -nextStepFile: '{workflow_path}/steps/step-06-dialogue.md' +thisStepFile: './step-05-world.md' +nextStepFile: './step-06-dialogue.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/narrative-design.md' diff --git a/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md b/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md index cef4ed33d..70a79015b 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +++ b/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md @@ -6,8 +6,8 @@ description: 'Define dialogue style, key conversations, and branching systems' workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative' # File References -thisStepFile: '{workflow_path}/steps/step-06-dialogue.md' -nextStepFile: '{workflow_path}/steps/step-07-environmental.md' +thisStepFile: './step-06-dialogue.md' +nextStepFile: './step-07-environmental.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/narrative-design.md' diff --git a/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md b/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md index a6dcf7b0b..05f37827b 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +++ b/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md @@ -6,8 +6,8 @@ description: 'Plan environmental storytelling including visual, audio, and found workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative' # File References -thisStepFile: '{workflow_path}/steps/step-07-environmental.md' -nextStepFile: '{workflow_path}/steps/step-08-delivery.md' +thisStepFile: './step-07-environmental.md' +nextStepFile: './step-08-delivery.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/narrative-design.md' diff --git a/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md b/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md index 3af385db6..2e76b2086 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +++ b/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md @@ -6,8 +6,8 @@ description: 'Design narrative delivery methods including cutscenes, in-game sto workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative' # File References -thisStepFile: '{workflow_path}/steps/step-08-delivery.md' -nextStepFile: '{workflow_path}/steps/step-09-integration.md' +thisStepFile: './step-08-delivery.md' +nextStepFile: './step-09-integration.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/narrative-design.md' diff --git a/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md b/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md index a99f41df5..460eac739 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +++ b/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md @@ -6,8 +6,8 @@ description: 'Define how narrative integrates with gameplay including gating, ag workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative' # File References -thisStepFile: '{workflow_path}/steps/step-09-integration.md' -nextStepFile: '{workflow_path}/steps/step-10-production.md' +thisStepFile: './step-09-integration.md' +nextStepFile: './step-10-production.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/narrative-design.md' diff --git a/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md b/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md index d3a8b4051..f262956d8 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +++ b/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md @@ -6,8 +6,8 @@ description: 'Plan production scope including writing estimates, localization, a workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative' # File References -thisStepFile: '{workflow_path}/steps/step-10-production.md' -nextStepFile: '{workflow_path}/steps/step-11-complete.md' +thisStepFile: './step-10-production.md' +nextStepFile: './step-11-complete.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/narrative-design.md' diff --git a/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md b/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md index 205e9d899..a6bd67c9c 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +++ b/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md @@ -6,7 +6,7 @@ description: 'Complete the narrative workflow with final summary, visualizations workflow_path: '{project-root}/_bmad/bmgd/workflows/2-design/narrative' # File References -thisStepFile: '{workflow_path}/steps/step-11-complete.md' +thisStepFile: './step-11-complete.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/narrative-design.md' diff --git a/src/modules/bmgd/workflows/2-design/narrative/workflow.md b/src/modules/bmgd/workflows/2-design/narrative/workflow.md index e9012d296..2757c3514 100644 --- a/src/modules/bmgd/workflows/2-design/narrative/workflow.md +++ b/src/modules/bmgd/workflows/2-design/narrative/workflow.md @@ -36,7 +36,7 @@ stepsCompleted: [1, 2, 3, ...] # Array of completed step numbers To begin, load and execute step-01-init.md: ``` -{workflow_path}/steps/step-01-init.md +./step-01-init.md ``` ## Critical Rules diff --git a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md index 37ee96e70..36448a27f 100644 --- a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +++ b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md @@ -6,9 +6,9 @@ description: 'Initialize the architecture workflow, validate readiness, and disc workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture' # File References -thisStepFile: '{workflow_path}/steps/step-01-init.md' -continueStepFile: '{workflow_path}/steps/step-01b-continue.md' -nextStepFile: '{workflow_path}/steps/step-02-context.md' +thisStepFile: './step-01-init.md' +continueStepFile: './step-01b-continue.md' +nextStepFile: './step-02-context.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md' templateFile: '{workflow_path}/templates/architecture-template.md' diff --git a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md index 0f095fcae..4ac310189 100644 --- a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +++ b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md @@ -6,19 +6,19 @@ description: 'Continue an existing architecture workflow from where it left off' workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture' # File References -thisStepFile: '{workflow_path}/steps/step-01b-continue.md' +thisStepFile: './step-01b-continue.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md' # Step Files (for routing) -step02: '{workflow_path}/steps/step-02-context.md' -step03: '{workflow_path}/steps/step-03-starter.md' -step04: '{workflow_path}/steps/step-04-decisions.md' -step05: '{workflow_path}/steps/step-05-crosscutting.md' -step06: '{workflow_path}/steps/step-06-structure.md' -step07: '{workflow_path}/steps/step-07-patterns.md' -step08: '{workflow_path}/steps/step-08-validation.md' -step09: '{workflow_path}/steps/step-09-complete.md' +step02: './step-02-context.md' +step03: './step-03-starter.md' +step04: './step-04-decisions.md' +step05: './step-05-crosscutting.md' +step06: './step-06-structure.md' +step07: './step-07-patterns.md' +step08: './step-08-validation.md' +step09: './step-09-complete.md' --- # Step 1b: Continue Existing Architecture diff --git a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md index ffa6009e1..7c83a1118 100644 --- a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +++ b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md @@ -6,8 +6,8 @@ description: 'Load and understand project context from GDD and supporting docume workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture' # File References -thisStepFile: '{workflow_path}/steps/step-02-context.md' -nextStepFile: '{workflow_path}/steps/step-03-starter.md' +thisStepFile: './step-02-context.md' +nextStepFile: './step-03-starter.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md' diff --git a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md index eeda5e90f..bc55778bd 100644 --- a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +++ b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md @@ -6,8 +6,8 @@ description: 'Discover and evaluate game engine and starter template options' workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture' # File References -thisStepFile: '{workflow_path}/steps/step-03-starter.md' -nextStepFile: '{workflow_path}/steps/step-04-decisions.md' +thisStepFile: './step-03-starter.md' +nextStepFile: './step-04-decisions.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md' diff --git a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md index de1d6e9c5..025e13fa0 100644 --- a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +++ b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md @@ -6,8 +6,8 @@ description: 'Facilitate collaborative architectural decision making for game sy workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture' # File References -thisStepFile: '{workflow_path}/steps/step-04-decisions.md' -nextStepFile: '{workflow_path}/steps/step-05-crosscutting.md' +thisStepFile: './step-04-decisions.md' +nextStepFile: './step-05-crosscutting.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md' diff --git a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md index 46a24b91b..d195dc0c5 100644 --- a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +++ b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md @@ -6,8 +6,8 @@ description: 'Address cross-cutting concerns that affect all game systems' workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture' # File References -thisStepFile: '{workflow_path}/steps/step-05-crosscutting.md' -nextStepFile: '{workflow_path}/steps/step-06-structure.md' +thisStepFile: './step-05-crosscutting.md' +nextStepFile: './step-06-structure.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md' diff --git a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md index 4c6160c45..698aa6d29 100644 --- a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +++ b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md @@ -6,8 +6,8 @@ description: 'Define project structure, directory organization, and architectura workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture' # File References -thisStepFile: '{workflow_path}/steps/step-06-structure.md' -nextStepFile: '{workflow_path}/steps/step-07-patterns.md' +thisStepFile: './step-06-structure.md' +nextStepFile: './step-07-patterns.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md' diff --git a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md index 080990616..31ccc90b8 100644 --- a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +++ b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md @@ -6,8 +6,8 @@ description: 'Design implementation patterns and novel architectural patterns fo workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture' # File References -thisStepFile: '{workflow_path}/steps/step-07-patterns.md' -nextStepFile: '{workflow_path}/steps/step-08-validation.md' +thisStepFile: './step-07-patterns.md' +nextStepFile: './step-08-validation.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md' diff --git a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md index 5b550d1ab..c8785a5ce 100644 --- a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +++ b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md @@ -6,8 +6,8 @@ description: 'Validate architectural coherence and completeness' workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture' # File References -thisStepFile: '{workflow_path}/steps/step-08-validation.md' -nextStepFile: '{workflow_path}/steps/step-09-complete.md' +thisStepFile: './step-08-validation.md' +nextStepFile: './step-09-complete.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md' checklistFile: '{workflow_path}/checklist.md' diff --git a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md index 2247d83e4..810011c25 100644 --- a/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +++ b/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md @@ -6,7 +6,7 @@ description: 'Complete the architecture workflow with final review and handoff g workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture' # File References -thisStepFile: '{workflow_path}/steps/step-09-complete.md' +thisStepFile: './step-09-complete.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{output_folder}/game-architecture.md' diff --git a/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md b/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md index 9311f67eb..60a9595e0 100644 --- a/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +++ b/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md @@ -34,7 +34,7 @@ stepsCompleted: [1, 2, 3, ...] # Array of completed step numbers To begin, load and execute step-01-init.md: ``` -{workflow_path}/steps/step-01-init.md +./step-01-init.md ``` ## Critical Rules diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv b/src/modules/bmm/workflows/2-plan-workflows/prd/data/domain-complexity.csv similarity index 100% rename from src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv rename to src/modules/bmm/workflows/2-plan-workflows/prd/data/domain-complexity.csv diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv b/src/modules/bmm/workflows/2-plan-workflows/prd/data/project-types.csv similarity index 100% rename from src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv rename to src/modules/bmm/workflows/2-plan-workflows/prd/data/project-types.csv diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-01-init.md similarity index 91% rename from src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md rename to src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-01-init.md index 7bafaae4b..63a8e7ae9 100644 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-01-init.md @@ -2,19 +2,13 @@ name: 'step-01-init' description: 'Initialize the PRD workflow by detecting continuation state and setting up the document' -# Path Definitions -workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' - # File References -thisStepFile: '{workflow_path}/steps/step-01-init.md' -nextStepFile: '{workflow_path}/steps/step-02-discovery.md' -continueStepFile: '{workflow_path}/steps/step-01b-continue.md' -workflowFile: '{workflow_path}/workflow.md' +nextStepFile: './step-02-discovery.md' +continueStepFile: './step-01b-continue.md' outputFile: '{planning_artifacts}/prd.md' - -# Template References -prdTemplate: '{workflow_path}/prd-template.md' +# Template Reference +prdTemplate: '../templates/prd-template.md' --- # Step 1: Workflow Initialization @@ -157,7 +151,7 @@ Display menu after setup report: #### Menu Handling Logic: -- IF C: Update frontmatter with `stepsCompleted: [1]`, then load, read entire {nextStepFile}, then execute {nextStepFile} +- IF C: Update output file frontmatter, adding this step name to the end of the list of stepsCompleted, then load, read entire {nextStepFile}, then execute {nextStepFile} - IF user provides additional files: Load them, update inputDocuments and documentCounts, redisplay report - IF user asks questions: Answer and redisplay menu @@ -168,7 +162,7 @@ Display menu after setup report: ## CRITICAL STEP COMPLETION NOTE -ONLY WHEN [C continue option] is selected and [frontmatter properly updated with stepsCompleted: [1] and documentCounts], will you then load and read fully `{nextStepFile}` to execute and begin project discovery. +ONLY WHEN [C continue option] is selected and [frontmatter properly updated with this step added to stepsCompleted and documentCounts], will you then load and read fully `{nextStepFile}` to execute and begin project discovery. --- @@ -182,7 +176,7 @@ ONLY WHEN [C continue option] is selected and [frontmatter properly updated with - All discovered files tracked in frontmatter `inputDocuments` - User clearly informed of brownfield vs greenfield status - Menu presented and user input handled correctly -- Frontmatter updated with `stepsCompleted: [1]` before proceeding +- Frontmatter updated with this step name added to stepsCompleted before proceeding ### ❌ SYSTEM FAILURE: diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-01b-continue.md similarity index 70% rename from src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md rename to src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-01b-continue.md index 5f77a30e2..5f3999bf0 100644 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-01b-continue.md @@ -2,12 +2,7 @@ name: 'step-01b-continue' description: 'Resume an interrupted PRD workflow from the last completed step' -# Path Definitions -workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' - # File References -thisStepFile: '{workflow_path}/steps/step-01b-continue.md' -workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/prd.md' --- @@ -60,10 +55,9 @@ Resume the PRD workflow from where it was left off, ensuring smooth continuation **State Assessment:** Review the frontmatter to understand: -- `stepsCompleted`: Which steps are already done -- `lastStep`: The most recently completed step number +- `stepsCompleted`: Array of completed step filenames +- Last element of `stepsCompleted` array: The most recently completed step - `inputDocuments`: What context was already loaded -- `documentCounts`: briefs, research, brainstorming, projectDocs counts - All other frontmatter variables ### 2. Restore Context Documents @@ -74,47 +68,27 @@ Review the frontmatter to understand: - This ensures you have full context for continuation - Don't discover new documents - only reload what was previously processed -### 3. Present Current Progress +### 3. Determine Next Step -**Progress Report to User:** -"Welcome back {{user_name}}! I'm resuming our PRD collaboration for {{project_name}}. +**Simplified Next Step Logic:** +1. Get the last element from the `stepsCompleted` array (this is the filename of the last completed step, e.g., "step-03-success.md") +2. Load that step file and read its frontmatter +3. Extract the `nextStepFile` value from the frontmatter +4. That's the next step to load! -**Current Progress:** +**Example:** +- If `stepsCompleted = ["step-01-init.md", "step-02-discovery.md", "step-03-success.md"]` +- Last element is `"step-03-success.md"` +- Load `step-03-success.md`, read its frontmatter +- Find `nextStepFile: './step-04-journeys.md'` +- Next step to load is `./step-04-journeys.md` -- Steps completed: {stepsCompleted} -- Last worked on: Step {lastStep} -- Context documents available: {len(inputDocuments)} files +### 4. Handle Workflow Completion -**Document Status:** - -- Current PRD document is ready with all completed sections -- Ready to continue from where we left off - -Does this look right, or do you want to make any adjustments before we proceed?" - -### 4. Determine Continuation Path - -**Next Step Logic:** -Based on `lastStep` value, determine which step to load next: - -- If `lastStep = 1` → Load `./step-02-discovery.md` -- If `lastStep = 2` → Load `./step-03-success.md` -- If `lastStep = 3` → Load `./step-04-journeys.md` -- If `lastStep = 4` → Load `./step-05-domain.md` -- If `lastStep = 5` → Load `./step-06-innovation.md` -- If `lastStep = 6` → Load `./step-07-project-type.md` -- If `lastStep = 7` → Load `./step-08-scoping.md` -- If `lastStep = 8` → Load `./step-09-functional.md` -- If `lastStep = 9` → Load `./step-10-nonfunctional.md` -- If `lastStep = 10` → Load `./step-11-complete.md` -- If `lastStep = 11` → Workflow already complete - -### 5. Handle Workflow Completion - -**If workflow already complete (`lastStep = 11`):** +**If `stepsCompleted` array contains `"step-11-complete.md"`:** "Great news! It looks like we've already completed the PRD workflow for {{project_name}}. -The final document is ready at `{outputFile}` with all sections completed through step 11. +The final document is ready at `{outputFile}` with all sections completed. Would you like me to: @@ -124,16 +98,29 @@ Would you like me to: What would be most helpful?" -### 6. Present MENU OPTIONS +### 5. Present Current Progress **If workflow not complete:** -Display: "Ready to continue with Step {nextStepNumber}? +"Welcome back {{user_name}}! I'm resuming our PRD collaboration for {{project_name}}. -**Select an Option:** [C] Continue to next step" +**Current Progress:** +- Last completed: {last step filename from stepsCompleted array} +- Next up: {nextStepFile determined from that step's frontmatter} +- Context documents available: {len(inputDocuments)} files + +**Document Status:** +- Current PRD document is ready with all completed sections +- Ready to continue from where we left off + +Does this look right, or do you want to make any adjustments before we proceed?" + +### 6. Present MENU OPTIONS + +Display: "**Select an Option:** [C] Continue to {next step name}" #### Menu Handling Logic: -- IF C: Load, read entire file, then execute the appropriate next step file based on `lastStep` +- IF C: Load, read entire file, then execute the {nextStepFile} determined in step 3 - IF Any other comments or queries: respond and redisplay menu #### EXECUTION RULES: @@ -143,7 +130,7 @@ Display: "Ready to continue with Step {nextStepNumber}? ## CRITICAL STEP COMPLETION NOTE -ONLY WHEN [C continue option] is selected and [current state confirmed], will you then load and read fully the appropriate next step file to resume the workflow. +ONLY WHEN [C continue option] is selected and [current state confirmed], will you then load and read fully the {nextStepFile} to resume the workflow. --- @@ -160,7 +147,7 @@ ONLY WHEN [C continue option] is selected and [current state confirmed], will yo - Discovering new input documents instead of reloading existing ones - Modifying content from already completed steps -- Loading wrong next step based on `lastStep` value +- Failing to extract nextStepFile from the last completed step's frontmatter - Proceeding without user confirmation of current state **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE. diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md new file mode 100644 index 000000000..c7013b533 --- /dev/null +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md @@ -0,0 +1,197 @@ +--- +name: 'step-02-discovery' +description: 'Discover project type, domain, and context through collaborative dialogue' + +# File References +nextStepFile: './step-03-success.md' +outputFile: '{planning_artifacts}/prd.md' + +# Data Files +projectTypesCSV: '../data/project-types.csv' +domainComplexityCSV: '../data/domain-complexity.csv' + +# Task References +advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' +--- + +# Step 2: Project Discovery + +**Progress: Step 2 of 13** - Next: Product Vision + +## STEP GOAL: + +Discover and classify the project - understand what type of product this is, what domain it operates in, and the project context (greenfield vs brownfield). + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- 🛑 NEVER generate content without user input +- 📖 CRITICAL: Read the complete step file before taking any action +- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read +- ✅ ALWAYS treat this as collaborative discovery between PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- ✅ You are a product-focused PM facilitator collaborating with an expert peer +- ✅ We engage in collaborative dialogue, not command-response +- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision + +### Step-Specific Rules: + +- 🎯 Focus on classification and understanding - no content generation yet +- 🚫 FORBIDDEN to generate executive summary or vision statements (that's next steps) +- 💬 APPROACH: Natural conversation to understand the project +- 🎯 LOAD classification data BEFORE starting discovery conversation + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after classification complete +- 💾 ONLY save classification to frontmatter when user chooses C (Continue) +- 📖 Update frontmatter, adding this step to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + +## CONTEXT BOUNDARIES: + +- Current document and frontmatter from step 1 are available +- Input documents already loaded are in memory (product briefs, research, brainstorming, project docs) +- **Document counts available in frontmatter `documentCounts`** +- Classification CSV data will be loaded in this step only +- No executive summary or vision content yet (that's steps 2b and 2c) + +## YOUR TASK: + +Discover and classify the project through natural conversation: +- What type of product is this? (web app, API, mobile, etc.) +- What domain does it operate in? (healthcare, fintech, e-commerce, etc.) +- What's the project context? (greenfield new product vs brownfield existing system) +- How complex is this domain? (low, medium, high) + +## DISCOVERY SEQUENCE: + +### 1. Check Document State + +Read the frontmatter from `{outputFile}` to get document counts: +- `briefCount` - Product briefs available +- `researchCount` - Research documents available +- `brainstormingCount` - Brainstorming docs available +- `projectDocsCount` - Existing project documentation + +**Announce your understanding:** + +"From step 1, I have loaded: +- Product briefs: {{briefCount}} +- Research: {{researchCount}} +- Brainstorming: {{brainstormingCount}} +- Project docs: {{projectDocsCount}} + +{{if projectDocsCount > 0}}This is a brownfield project - I'll focus on understanding what you want to add or change.{{else}}This is a greenfield project - I'll help you define the full product vision.{{/if}}" + +### 2. Load Classification Data + +Load classification reference data: +- Load `{projectTypesCSV}` - project types with detection signals +- Load `{domainComplexityCSV}` - domain complexity levels +- Keep in memory for intelligent classification + +### 3. Begin Discovery Conversation + +**Start with what you know:** + +If the user has a product brief or project docs, acknowledge them and share your understanding. Then ask clarifying questions to deepen your understanding. + +If this is a greenfield project with no docs, start with open-ended discovery: +- What problem does this solve? +- Who's it for? +- What excites you about building this? + +**Listen for classification signals:** + +As the user describes their product, match against: +- **Project type signals** (API, mobile, SaaS, etc.) +- **Domain signals** (healthcare, fintech, education, etc.) +- **Complexity indicators** (regulated industries, novel technology, etc.) + +### 4. Confirm Classification + +Once you have enough understanding, share your classification: + +"I'm hearing this as: +- **Project Type:** {{detectedType}} +- **Domain:** {{detectedDomain}} +- **Complexity:** {{complexityLevel}} + +Does this sound right to you?" + +Let the user confirm or refine your classification. + +### 5. Save Classification to Frontmatter + +When user selects 'C', update frontmatter with classification: +```yaml +classification: + projectType: {{projectType}} + domain: {{domain}} + complexity: {{complexityLevel}} + projectContext: {{greenfield|brownfield}} +``` + +### N. Present MENU OPTIONS + +Present the project classification for review, then display menu: + +"Based on our conversation, I've discovered and classified your project. + +**Here's the classification:** + +**Project Type:** {{detectedType}} +**Domain:** {{detectedDomain}} +**Complexity:** {{complexityLevel}} +**Project Context:** {{greenfield|brownfield}} + +**What would you like to do?**" + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Product Vision (Step 2b of 13)" + +#### Menu Handling Logic: +- IF A: Execute {advancedElicitationTask} with the current classification, process the enhanced insights that come back, ask user if they accept the improvements, if yes update classification then redisplay menu, if no keep original classification then redisplay menu +- IF P: Execute {partyModeWorkflow} with the current classification, process the collaborative insights, ask user if they accept the changes, if yes update classification then redisplay menu, if no keep original classification then redisplay menu +- IF C: Save classification to {outputFile} frontmatter, add this step name to the end of stepsCompleted array, then load, read entire file, then execute {nextStepFile} +- IF Any other: help user respond, then redisplay menu + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## CRITICAL STEP COMPLETION NOTE + +ONLY WHEN [C continue option] is selected and [classification saved to frontmatter], will you then load and read fully `{nextStepFile}` to explore product vision. + +--- + +## 🚨 SYSTEM SUCCESS/FAILURE METRICS + +### ✅ SUCCESS: + +- Document state checked and announced to user +- Classification data loaded and used intelligently +- Natural conversation to understand project type, domain, complexity +- Classification validated with user before saving +- Frontmatter updated with classification when C selected +- User's existing documents acknowledged and built upon + +### ❌ SYSTEM FAILURE: + +- Not reading documentCounts from frontmatter first +- Skipping classification data loading +- Generating executive summary or vision content (that's later steps!) +- Not validating classification with user +- Being prescriptive instead of having natural conversation +- Proceeding without user selecting 'C' + +**Master Rule:** This is classification and understanding only. No content generation yet. Build on what the user already has. Have natural conversations, don't follow scripts. diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-03-success.md similarity index 76% rename from src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md rename to src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-03-success.md index d379f5047..d169758e6 100644 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-03-success.md @@ -2,13 +2,8 @@ name: 'step-03-success' description: 'Define comprehensive success criteria covering user, business, and technical success' -# Path Definitions -workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' - # File References -thisStepFile: '{workflow_path}/steps/step-03-success.md' -nextStepFile: '{workflow_path}/steps/step-04-journeys.md' -workflowFile: '{workflow_path}/workflow.md' +nextStepFile: './step-04-journeys.md' outputFile: '{planning_artifacts}/prd.md' # Task References @@ -37,24 +32,9 @@ partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' - 🎯 Show your analysis before taking any action - ⚠️ Present A/P/C menu after generating success criteria content - 💾 ONLY save when user chooses C (Continue) -- 📖 Update frontmatter `stepsCompleted: [1, 2, 3]` before loading next step +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted - 🚫 FORBIDDEN to load next step until C is selected -## COLLABORATION MENUS (A/P/C): - -This step will generate content and present choices: - -- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper insights about success metrics -- **P (Party Mode)**: Bring multiple perspectives to define comprehensive success criteria -- **C (Continue)**: Save the content to the document and proceed to next step - -## PROTOCOL INTEGRATION: - -- When 'A' selected: Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml -- When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md -- PROTOCOLS always return to this step's A/P/C menu -- User accepts/rejects protocol changes before proceeding - ## CONTEXT BOUNDARIES: - Current document and frontmatter from previous steps are available @@ -211,43 +191,30 @@ When saving to document, append these Level 2 and Level 3 sections: [Content about future vision based on conversation] ``` -### 8. Present Content and Menu +### 8. Present MENU OPTIONS -Show the generated content and present choices: -"I've drafted our success criteria and scope definition based on our conversation. +Present the success criteria content for user review, then display menu: + +"Based on our conversation, I've drafted success criteria and scope definition. **Here's what I'll add to the document:** -[Show the complete markdown content from step 7] +[Show the complete markdown content from section 7] -**What would you like to do?** -[A] Advanced Elicitation - Let's dive deeper and refine these success metrics -[P] Party Mode - Bring in different perspectives on success criteria -[C] Continue - Save success criteria and move to User Journey Mapping (Step 4 of 11)" +**What would you like to do?**" -### 9. Handle Menu Selection +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to User Journey Mapping (Step 4 of 11)" -#### If 'A' (Advanced Elicitation): +#### Menu Handling Logic: +- IF A: Execute {advancedElicitationTask} with the current success criteria content, process the enhanced success metrics that come back, ask user "Accept these improvements to the success criteria? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF P: Execute {partyModeWorkflow} with the current success criteria, process the collaborative improvements to metrics and scope, ask user "Accept these changes to the success criteria? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then load, read entire file, then execute {nextStepFile} +- IF Any other: help user respond, then redisplay menu -- Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current success criteria content -- Process the enhanced success metrics that come back -- Ask user: "Accept these improvements to the success criteria? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'P' (Party Mode): - -- Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current success criteria -- Process the collaborative improvements to metrics and scope -- Ask user: "Accept these changes to the success criteria? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'C' (Continue): - -- Append the final content to `{outputFile}` -- Update frontmatter: add this step to the end of the steps completed array -- Load `./step-04-journeys.md` +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu ## APPEND TO DOCUMENT: diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md similarity index 78% rename from src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md rename to src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md index 9b61a1bd9..bbb884ca1 100644 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md @@ -2,13 +2,8 @@ name: 'step-04-journeys' description: 'Map ALL user types that interact with the system with narrative story-based journeys' -# Path Definitions -workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' - # File References -thisStepFile: '{workflow_path}/steps/step-04-journeys.md' -nextStepFile: '{workflow_path}/steps/step-05-domain.md' -workflowFile: '{workflow_path}/workflow.md' +nextStepFile: './step-05-domain.md' outputFile: '{planning_artifacts}/prd.md' # Task References @@ -37,24 +32,9 @@ partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' - 🎯 Show your analysis before taking any action - ⚠️ Present A/P/C menu after generating journey content - 💾 ONLY save when user chooses C (Continue) -- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4]` before loading next step +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted - 🚫 FORBIDDEN to load next step until C is selected -## COLLABORATION MENUS (A/P/C): - -This step will generate content and present choices: - -- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper journey insights -- **P (Party Mode)**: Bring multiple perspectives to map comprehensive user journeys -- **C (Continue)**: Save the content to the document and proceed to next step - -## PROTOCOL INTEGRATION: - -- When 'A' selected: Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml -- When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md -- PROTOCOLS always return to this step's A/P/C menu -- User accepts/rejects protocol changes before proceeding - ## CONTEXT BOUNDARIES: - Current document and frontmatter from previous steps are available @@ -205,43 +185,30 @@ When saving to document, append these Level 2 and Level 3 sections: [Summary of capabilities revealed by journeys based on conversation] ``` -### 7. Present Content and Menu +### 7. Present MENU OPTIONS -Show the generated journey content and present choices: -"I've mapped out the user journeys based on our conversation. Each journey reveals different capabilities needed for {{project_name}}. +Present the user journey content for review, then display menu: + +"Based on our conversation, I've mapped out user journeys. Each journey reveals different capabilities needed for {{project_name}}. **Here's what I'll add to the document:** -[Show the complete markdown content from step 6] +[Show the complete markdown content from section 6] -**What would you like to do?** -[A] Advanced Elicitation - Let's dive deeper into these user journeys -[P] Party Mode - Bring different perspectives to ensure we have all journeys -[C] Continue - Save this and move to Domain Requirements (Step 5 of 11)" +**What would you like to do?**" -### 8. Handle Menu Selection +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Domain Requirements (Step 5 of 11)" -#### If 'A' (Advanced Elicitation): +#### Menu Handling Logic: +- IF A: Execute {advancedElicitationTask} with the current journey content, process the enhanced journey insights that come back, ask user "Accept these improvements to the user journeys? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF P: Execute {partyModeWorkflow} with the current journeys, process the collaborative journey improvements and additions, ask user "Accept these changes to the user journeys? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then load, read entire file, then execute {nextStepFile} +- IF Any other: help user respond, then redisplay menu -- Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current journey content -- Process the enhanced journey insights that come back -- Ask user: "Accept these improvements to the user journeys? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'P' (Party Mode): - -- Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current journeys -- Process the collaborative journey improvements and additions -- Ask user: "Accept these changes to the user journeys? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'C' (Continue): - -- Append the final content to `{outputFile}` -- Update frontmatter: add this step name to the end of the steps completed array -- Load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md` (or determine if step is optional based on domain complexity) +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu ## APPEND TO DOCUMENT: diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md new file mode 100644 index 000000000..aaea1a059 --- /dev/null +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md @@ -0,0 +1,193 @@ +--- +name: 'step-05-domain' +description: 'Explore domain-specific requirements for complex domains (optional step)' + +# File References +nextStepFile: './step-06-innovation.md' +outputFile: '{planning_artifacts}/prd.md' +domainComplexityCSV: '../data/domain-complexity.csv' + +# Task References +advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' +--- + +# Step 5: Domain-Specific Requirements (Optional) + +**Progress: Step 5 of 13** - Next: Innovation Focus + +## STEP GOAL: + +For complex domains only that have a mapping in {domainComplexityCSV}, explore domain-specific constraints, compliance requirements, and technical considerations that shape the product. + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- 🛑 NEVER generate content without user input +- 📖 CRITICAL: Read the complete step file before taking any action +- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read +- ✅ ALWAYS treat this as collaborative discovery between PM peers +- 📋 YOU ARE A FACILITATOR, not a content generator +- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- ✅ You are a product-focused PM facilitator collaborating with an expert peer +- ✅ We engage in collaborative dialogue, not command-response +- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise + +### Step-Specific Rules: + +- 🎯 This step is OPTIONAL - only needed for complex domains +- 🚫 SKIP if domain complexity is "low" from step-02 +- 💬 APPROACH: Natural conversation to discover domain-specific needs +- 🎯 Focus on constraints, compliance, and domain patterns + +## EXECUTION PROTOCOLS: + +- 🎯 Check domain complexity from step-02 classification first +- ⚠️ If complexity is "low", offer to skip this step +- ⚠️ Present A/P/C menu after domain requirements defined (or skipped) +- 💾 ONLY save when user chooses C (Continue) +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted +- 🚫 FORBIDDEN to load next step until C is selected + +## CONTEXT BOUNDARIES: + +- Domain classification from step-02 is available +- If complexity is low, this step may be skipped +- Domain CSV data provides complexity reference +- Focus on domain-specific constraints, not general requirements + +## YOUR TASK: + +For complex domains, explore what makes this domain special: +- **Compliance requirements** - regulations, standards, certifications +- **Technical constraints** - security, privacy, integration requirements +- **Domain patterns** - common patterns, best practices, anti-patterns +- **Risks and mitigations** - what could go wrong, how to prevent it + +## DOMAIN DISCOVERY SEQUENCE: + +### 1. Check Domain Complexity + +**Review classification from step-02:** + +- What's the domain complexity level? (low/medium/high) +- What's the specific domain? (healthcare, fintech, education, etc.) + +**If complexity is LOW:** + +Offer to skip: +"The domain complexity from our discovery is low. We may not need deep domain-specific requirements. Would you like to: +- [C] Skip this step and move to Innovation +- [D] Do domain exploration anyway" + +**If complexity is MEDIUM or HIGH:** + +Proceed with domain exploration. + +### 2. Load Domain Reference Data + +Load `{domainComplexityCSV}` to understand: +- Typical concerns for this domain +- Common compliance requirements +- Technical constraints to consider + +### 3. Explore Domain-Specific Concerns + +**Start with what you know:** + +Acknowledge the domain and explore what makes it complex: +- What regulations apply? (HIPAA, PCI-DSS, GDPR, SOX, etc.) +- What standards matter? (ISO, NIST, domain-specific standards) +- What certifications are needed? (security, privacy, domain-specific) +- What integrations are required? (EMR systems, payment processors, etc.) + +**Explore technical constraints:** +- Security requirements (encryption, audit logs, access control) +- Privacy requirements (data handling, consent, retention) +- Performance requirements (real-time, batch, latency) +- Availability requirements (uptime, disaster recovery) + +### 4. Document Domain Requirements + +**Structure the requirements around key concerns:** + +```markdown +### Compliance & Regulatory +- [Specific requirements] + +### Technical Constraints +- [Security, privacy, performance needs] + +### Integration Requirements +- [Required systems and data flows] + +### Risk Mitigations +- [Domain-specific risks and how to address them] +``` + +### 5. Validate Completeness + +**Check with the user:** + +"Are there other domain-specific concerns we should consider? For [this domain], what typically gets overlooked?" + +### N. Present MENU OPTIONS + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue - Save and Proceed to Innovation (Step 6 of 13)" + +#### Menu Handling Logic: +- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu +- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu +- IF C: Save content to {outputFile}, update frontmatter, then load, read entire file, then execute {nextStepFile} +- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#n-present-menu-options) + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu + +## APPEND TO DOCUMENT + +When user selects 'C', append to `{outputFile}`: + +```markdown +## Domain-Specific Requirements + +{{discovered domain requirements}} +``` + +If step was skipped, append nothing and proceed. + +## CRITICAL STEP COMPLETION NOTE + +ONLY WHEN [C continue option] is selected and [content saved or skipped], will you then load and read fully `{nextStepFile}` to explore innovation. + +--- + +## 🚨 SYSTEM SUCCESS/FAILURE METRICS + +### ✅ SUCCESS: + +- Domain complexity checked before proceeding +- Offered to skip if complexity is low +- Natural conversation exploring domain concerns +- Compliance, technical, and integration requirements identified +- Domain-specific risks documented with mitigations +- User validated completeness +- Content properly saved (or step skipped) when C selected + +### ❌ SYSTEM FAILURE: + +- Not checking domain complexity first +- Not offering to skip for low-complexity domains +- Missing critical compliance requirements +- Not exploring technical constraints +- Not asking about domain-specific risks +- Being generic instead of domain-specific +- Proceeding without user validation + +**Master Rule:** This step is OPTIONAL for simple domains. For complex domains, focus on compliance, constraints, and domain patterns. Natural conversation, not checklists. diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-06-innovation.md similarity index 70% rename from src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md rename to src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-06-innovation.md index 28af51eb1..0f45e5228 100644 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-06-innovation.md @@ -2,17 +2,12 @@ name: 'step-06-innovation' description: 'Detect and explore innovative aspects of the product (optional step)' -# Path Definitions -workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' - # File References -thisStepFile: '{workflow_path}/steps/step-06-innovation.md' -nextStepFile: '{workflow_path}/steps/step-07-project-type.md' -workflowFile: '{workflow_path}/workflow.md' +nextStepFile: './step-07-project-type.md' outputFile: '{planning_artifacts}/prd.md' # Data Files -projectTypesCSV: '{workflow_path}/project-types.csv' +projectTypesCSV: '../data/project-types.csv' # Task References advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' @@ -40,24 +35,9 @@ partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' - 🎯 Show your analysis before taking any action - ⚠️ Present A/P/C menu after generating innovation content - 💾 ONLY save when user chooses C (Continue) -- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6]` before loading next step +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted - 🚫 FORBIDDEN to load next step until C is selected -## COLLABORATION MENUS (A/P/C): - -This step will generate content and present choices: - -- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper innovation insights -- **P (Party Mode)**: Bring creative perspectives to explore innovation opportunities -- **C (Continue)**: Save the content to the document and proceed to next step - -## PROTOCOL INTEGRATION: - -- When 'A' selected: Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml -- When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md -- PROTOCOLS always return to this step's A/P/C menu -- User accepts/rejects protocol changes before proceeding - ## CONTEXT BOUNDARIES: - Current document and frontmatter from previous steps are available @@ -169,54 +149,47 @@ When saving to document, append these Level 2 and Level 3 sections: [Innovation risks and fallbacks based on conversation] ``` -### 6. Present Content and Menu (Only if Innovation Detected) +### 6. Present MENU OPTIONS (Only if Innovation Detected) -Show the generated innovation content and present choices: -"I've identified some innovative aspects of {{project_name}} that differentiate it from existing solutions. +Present the innovation content for review, then display menu: + +"Based on our conversation, I've identified innovative aspects of {{project_name}} that differentiate it from existing solutions. **Here's what I'll add to the document:** -[Show the complete markdown content from step 5] +[Show the complete markdown content from section 5] -**What would you like to do?** -[A] Advanced Elicitation - Let's dive deeper into these innovation opportunities -[P] Party Mode - Bring creative perspectives to explore innovation further -[C] Continue - Save this and move to Project Type Analysis (Step 7 of 11)" +**What would you like to do?**" -### 7. Handle Menu Selection +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Project Type Analysis (Step 7 of 11)" -#### If 'A' (Advanced Elicitation): +#### Menu Handling Logic: +- IF A: Execute {advancedElicitationTask} with the current innovation content, process the enhanced innovation insights that come back, ask user "Accept these improvements to the innovation analysis? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF P: Execute {partyModeWorkflow} with the current innovation content, process the collaborative innovation exploration and ideation, ask user "Accept these changes to the innovation analysis? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then load, read entire file, then execute {nextStepFile} +- IF Any other: help user respond, then redisplay menu -- Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current innovation content -- Process the enhanced innovation insights that come back -- Ask user: "Accept these improvements to the innovation analysis? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'P' (Party Mode): - -- Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current innovation content -- Process the collaborative innovation exploration and ideation -- Ask user: "Accept these changes to the innovation analysis? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'C' (Continue): - -- Append the final content to `{outputFile}` -- Update frontmatter: add this step name to the end of the steps completed array -- Load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md` +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu ## NO INNOVATION DETECTED: If no genuine innovation signals are found after exploration: "After exploring {{project_name}}, I don't see clear innovation signals that warrant a dedicated innovation section. This is perfectly fine - many successful products are excellent executions of existing concepts rather than breakthrough innovations. -**Options:** -[A] Force innovation exploration - Let's try to find innovative angles -[C] Continue - Skip innovation section and move to Project Type Analysis (Step 7 of 11)" +**What would you like to do?**" -If user selects 'A', proceed with content generation anyway. If 'C', skip this step and load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md`. +Display: "**Select:** [A] Advanced Elicitation - Let's try to find innovative angles [C] Continue - Skip innovation section and move to Project Type Analysis (Step 7 of 11)" + +#### Menu Handling Logic: +- IF A: Proceed with content generation anyway, then return to menu +- IF C: Skip this step, then load, read entire file, then execute {nextStepFile} + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' ## APPEND TO DOCUMENT: diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-07-project-type.md similarity index 70% rename from src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md rename to src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-07-project-type.md index 3b9925261..58975e687 100644 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-07-project-type.md @@ -2,17 +2,12 @@ name: 'step-07-project-type' description: 'Conduct project-type specific discovery using CSV-driven guidance' -# Path Definitions -workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' - # File References -thisStepFile: '{workflow_path}/steps/step-07-project-type.md' -nextStepFile: '{workflow_path}/steps/step-08-scoping.md' -workflowFile: '{workflow_path}/workflow.md' +nextStepFile: './step-08-scoping.md' outputFile: '{planning_artifacts}/prd.md' # Data Files -projectTypesCSV: '{workflow_path}/project-types.csv' +projectTypesCSV: '../data/project-types.csv' # Task References advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' @@ -40,24 +35,9 @@ partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' - 🎯 Show your analysis before taking any action - ⚠️ Present A/P/C menu after generating project-type content - 💾 ONLY save when user chooses C (Continue) -- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]` before loading next step +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted - 🚫 FORBIDDEN to load next step until C is selected -## COLLABORATION MENUS (A/P/C): - -This step will generate content and present choices: - -- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper project-type insights -- **P (Party Mode)**: Bring technical perspectives to explore project-specific requirements -- **C (Continue)**: Save the content to the document and proceed to next step - -## PROTOCOL INTEGRATION: - -- When 'A' selected: Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml -- When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md -- PROTOCOLS always return to this step's A/P/C menu -- User accepts/rejects protocol changes before proceeding - ## CONTEXT BOUNDARIES: - Current document and frontmatter from previous steps are available @@ -75,7 +55,7 @@ Conduct project-type specific discovery using CSV-driven guidance to define tech Load project-type specific configuration: -- Load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv` completely +- Load `{projectTypesCSV}` completely - Find the row where `project_type` matches detected type from step-02 - Extract these columns: - `key_questions` (semicolon-separated list of discovery questions) @@ -165,47 +145,34 @@ When saving to document, append these Level 2 and Level 3 sections: [Implementation specific requirements based on conversation] ``` -### 6. Present Content and Menu +### 6. Present MENU OPTIONS -Show the generated project-type content and present choices: -"I've documented the {project_type}-specific requirements for {{project_name}} based on our conversation and best practices for this type of product. +Present the project-type content for review, then display menu: + +"Based on our conversation and best practices for this product type, I've documented the {project_type}-specific requirements for {{project_name}}. **Here's what I'll add to the document:** -[Show the complete markdown content from step 5] +[Show the complete markdown content from section 5] -**What would you like to do?** -[A] Advanced Elicitation - Let's dive deeper into these technical requirements -[P] Party Mode - Bring technical expertise perspectives to validate requirements -[C] Continue - Save this and move to Scoping (Step 8 of 11)" +**What would you like to do?**" -### 7. Handle Menu Selection +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Scoping (Step 8 of 11)" -#### If 'A' (Advanced Elicitation): +#### Menu Handling Logic: +- IF A: Execute {advancedElicitationTask} with the current project-type content, process the enhanced technical insights that come back, ask user "Accept these improvements to the technical requirements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF P: Execute {partyModeWorkflow} with the current project-type requirements, process the collaborative technical expertise and validation, ask user "Accept these changes to the technical requirements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then load, read entire file, then execute {nextStepFile} +- IF Any other: help user respond, then redisplay menu -- Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current project-type content -- Process the enhanced technical insights that come back -- Ask user: "Accept these improvements to the technical requirements? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'P' (Party Mode): - -- Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current project-type requirements -- Process the collaborative technical expertise and validation -- Ask user: "Accept these changes to the technical requirements? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'C' (Continue): - -- Append the final content to `{outputFile}` -- Update frontmatter: add this step name to the end of the steps completed array -- Load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md` +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu ## APPEND TO DOCUMENT: -When user selects 'C', append the content directly to the document using the structure from step 5. +When user selects 'C', append the content directly to the document using the structure from previous steps. ## SUCCESS METRICS: @@ -253,6 +220,6 @@ When user selects 'C', append the content directly to the document using the str ## NEXT STEP: -After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md` to define project scope. +After user selects 'C' and content is saved to document, load `{nextStepFile}` to define project scope. Remember: Do NOT proceed to step-08 (Scoping) until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-08-scoping.md similarity index 74% rename from src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md rename to src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-08-scoping.md index 33f72f5cb..435d804c4 100644 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-08-scoping.md @@ -2,13 +2,8 @@ name: 'step-08-scoping' description: 'Define MVP boundaries and prioritize features across development phases' -# Path Definitions -workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' - # File References -thisStepFile: '{workflow_path}/steps/step-08-scoping.md' -nextStepFile: '{workflow_path}/steps/step-09-functional.md' -workflowFile: '{workflow_path}/workflow.md' +nextStepFile: './step-09-functional.md' outputFile: '{planning_artifacts}/prd.md' # Task References @@ -38,23 +33,9 @@ partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' - 📚 Review the complete PRD document built so far - ⚠️ Present A/P/C menu after generating scoping decisions - 💾 ONLY save when user chooses C (Continue) -- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8]` before loading next step +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted - 🚫 FORBIDDEN to load next step until C is selected -## COLLABORATION MENUS (A/P/C): - -This step will generate content and present choices: - -- **A (Advanced Elicitation)**: Use discovery protocols to explore innovative scoping approaches -- **P (Party Mode)**: Bring multiple perspectives to ensure comprehensive scope decisions -- **C (Continue)**: Save the scoping decisions and proceed to functional requirements - -## PROTOCOL INTEGRATION: - -- When 'A' selected: Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml -- When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md -- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed -- User accepts/rejects protocol changes before proceeding ## CONTEXT BOUNDARIES: @@ -225,44 +206,30 @@ Prepare comprehensive scoping section: **Resource Risks:** {{contingency_approach}} ``` -### 7. Present Content and Menu +### 7. Present MENU OPTIONS -Show the scoping decisions and present choices: +Present the scoping decisions for review, then display menu: -"I've analyzed your complete PRD and created a strategic scoping plan for {{project_name}}. +"Based on our conversation, I've analyzed your complete PRD and created a strategic scoping plan for {{project_name}}. **Here's what I'll add to the document:** [Show the complete markdown content from step 6] -**What would you like to do?** -[A] Advanced Elicitation - Explore alternative scoping strategies -[P] Party Mode - Bring different perspectives on MVP and roadmap decisions -[C] Continue - Save scoping decisions and move to Functional Requirements (Step 9 of 11)" +**What would you like to do?**" -### 8. Handle Menu Selection +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Functional Requirements (Step 9 of 11)" -#### If 'A' (Advanced Elicitation): +#### Menu Handling Logic: +- IF A: Execute {advancedElicitationTask} with the current scoping analysis, process the enhanced insights that come back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF P: Execute {partyModeWorkflow} with the scoping context, process the collaborative insights on MVP and roadmap decisions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then load, read entire file, then execute {nextStepFile} +- IF Any other: help user respond, then redisplay menu -- Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with current scoping analysis -- Process enhanced scoping insights that come back -- Ask user: "Accept these improvements to the scoping decisions? (y/n)" -- If yes: Update content, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'P' (Party Mode): - -- Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md with scoping context -- Process collaborative insights on MVP and roadmap decisions -- Ask user: "Accept these changes to the scoping decisions? (y/n)" -- If yes: Update content, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'C' (Continue): - -- Append the final content to `{outputFile}` -- Update frontmatter: add this step name to the end of the steps completed array -- Load `./step-09-functional.md` +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu ## APPEND TO DOCUMENT: @@ -294,6 +261,6 @@ When user selects 'C', append the content directly to the document using the str ## NEXT STEP: -After user selects 'C' and content is saved to document, load `./step-09-functional.md`. +After user selects 'C' and content is saved to document, load {nextStepFile}. Remember: Do NOT proceed to step-09 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-09-functional.md similarity index 73% rename from src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md rename to src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-09-functional.md index d91e49b97..b2d9d2dc6 100644 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-09-functional.md @@ -2,13 +2,8 @@ name: 'step-09-functional' description: 'Synthesize all discovery into comprehensive functional requirements' -# Path Definitions -workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' - # File References -thisStepFile: '{workflow_path}/steps/step-09-functional.md' -nextStepFile: '{workflow_path}/steps/step-10-nonfunctional.md' -workflowFile: '{workflow_path}/workflow.md' +nextStepFile: './step-10-nonfunctional.md' outputFile: '{planning_artifacts}/prd.md' # Task References @@ -37,23 +32,9 @@ partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' - 🎯 Show your analysis before taking any action - ⚠️ Present A/P/C menu after generating functional requirements - 💾 ONLY save when user chooses C (Continue) -- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8]` before loading next step +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted - 🚫 FORBIDDEN to load next step until C is selected -## COLLABORATION MENUS (A/P/C): - -This step will generate content and present choices: - -- **A (Advanced Elicitation)**: Use discovery protocols to ensure comprehensive requirement coverage -- **P (Party Mode)**: Bring multiple perspectives to validate complete requirement set -- **C (Continue)**: Save the content to the document and proceed to next step - -## PROTOCOL INTEGRATION: - -- When 'A' selected: Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml -- When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md -- PROTOCOLS always return to this step's A/P/C menu -- User accepts/rejects protocol changes before proceeding ## CONTEXT BOUNDARIES: @@ -186,10 +167,11 @@ When saving to document, append these Level 2 and Level 3 sections: [Continue for all capability areas discovered in conversation] ``` -### 7. Present Content and Menu +### 7. Present MENU OPTIONS -Show the generated functional requirements and present choices: -"I've synthesized all our discussions into comprehensive functional requirements. This becomes the capability contract that UX designers, architects, and developers will all work from. +Present the functional requirements for review, then display menu: + +"Based on our conversation, I've synthesized all our discussions into comprehensive functional requirements. This becomes the capability contract that UX designers, architects, and developers will all work from. **Here's what I'll add to the document:** @@ -201,34 +183,20 @@ Show the generated functional requirements and present choices: - UX designers will ONLY design interactions for these capabilities - Architects will ONLY build systems to support these capabilities -**What would you like to do?** -[A] Advanced Elicitation - Let's ensure we haven't missed any capabilities -[P] Party Mode - Bring different perspectives to validate complete coverage -[C] Continue - Save this and move to Non-Functional Requirements (Step 10 of 11)" +**What would you like to do?**" -### 8. Handle Menu Selection +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Non-Functional Requirements (Step 10 of 11)" -#### If 'A' (Advanced Elicitation): +#### Menu Handling Logic: +- IF A: Execute {advancedElicitationTask} with the current FR list, process the enhanced capability coverage that comes back, ask user if they accept the additions, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF P: Execute {partyModeWorkflow} with the current FR list, process the collaborative capability validation and additions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then load, read entire file, then execute {nextStepFile} +- IF Any other: help user respond, then redisplay menu -- Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current FR list -- Process the enhanced capability coverage that comes back -- Ask user: "Accept these additions to the functional requirements? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'P' (Party Mode): - -- Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current FR list -- Process the collaborative capability validation and additions -- Ask user: "Accept these changes to the functional requirements? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'C' (Continue): - -- Append the final content to `{outputFile}` -- Update frontmatter: add this step name to the end of the steps completed array -- Load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md` +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu ## APPEND TO DOCUMENT: @@ -265,6 +233,6 @@ Emphasize to user: "This FR list is now binding. Any feature not listed here wil ## NEXT STEP: -After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md` to define non-functional requirements. +After user selects 'C' and content is saved to document, load {nextStepFile} to define non-functional requirements. Remember: Do NOT proceed to step-10 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-10-nonfunctional.md similarity index 74% rename from src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md rename to src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-10-nonfunctional.md index 484228592..8cea46327 100644 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-10-nonfunctional.md @@ -2,13 +2,8 @@ name: 'step-10-nonfunctional' description: 'Define quality attributes that matter for this specific product' -# Path Definitions -workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' - # File References -thisStepFile: '{workflow_path}/steps/step-10-nonfunctional.md' -nextStepFile: '{workflow_path}/steps/step-11-complete.md' -workflowFile: '{workflow_path}/workflow.md' +nextStepFile: './step-11-complete.md' outputFile: '{planning_artifacts}/prd.md' # Task References @@ -37,23 +32,9 @@ partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' - 🎯 Show your analysis before taking any action - ⚠️ Present A/P/C menu after generating NFR content - 💾 ONLY save when user chooses C (Continue) -- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9]` before loading next step +- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted - 🚫 FORBIDDEN to load next step until C is selected -## COLLABORATION MENUS (A/P/C): - -This step will generate content and present choices: - -- **A (Advanced Elicitation)**: Use discovery protocols to ensure comprehensive quality attributes -- **P (Party Mode)**: Bring technical perspectives to validate NFR completeness -- **C (Continue)**: Save the content to the document and proceed to final step - -## PROTOCOL INTEGRATION: - -- When 'A' selected: Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml -- When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md -- PROTOCOLS always return to this step's A/P/C menu -- User accepts/rejects protocol changes before proceeding ## CONTEXT BOUNDARIES: @@ -190,10 +171,11 @@ When saving to document, append these Level 2 and Level 3 sections (only include [Integration requirements based on conversation - only include if relevant] ``` -### 6. Present Content and Menu +### 6. Present MENU OPTIONS -Show the generated NFR content and present choices: -"I've defined the non-functional requirements that specify how well {{project_name}} needs to perform. I've only included categories that actually matter for this product. +Present the non-functional requirements for review, then display menu: + +"Based on our conversation, I've defined the non-functional requirements that specify how well {{project_name}} needs to perform. I've only included categories that actually matter for this product. **Here's what I'll add to the document:** @@ -201,34 +183,20 @@ Show the generated NFR content and present choices: **Note:** We've skipped categories that don't apply to avoid unnecessary requirements. -**What would you like to do?** -[A] Advanced Elicitation - Let's ensure we haven't missed critical quality attributes -[P] Party Mode - Bring technical perspectives to validate NFR specifications -[C] Continue - Save this and move to Complete PRD (Step 11 of 11)" +**What would you like to do?**" -### 7. Handle Menu Selection +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Complete PRD (Step 11 of 11)" -#### If 'A' (Advanced Elicitation): +#### Menu Handling Logic: +- IF A: Execute {advancedElicitationTask} with the current NFR content, process the enhanced quality attribute insights that come back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF P: Execute {partyModeWorkflow} with the current NFR list, process the collaborative technical validation and additions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu +- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then load, read entire file, then execute {nextStepFile} +- IF Any other: help user respond, then redisplay menu -- Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current NFR content -- Process the enhanced quality attribute insights that come back -- Ask user: "Accept these improvements to the non-functional requirements? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'P' (Party Mode): - -- Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current NFR list -- Process the collaborative technical validation and additions -- Ask user: "Accept these changes to the non-functional requirements? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'C' (Continue): - -- Append the final content to `{outputFile}` -- Update frontmatter: add this step name to the end of the steps completed array -- Load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md` +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu ## APPEND TO DOCUMENT: @@ -289,6 +257,6 @@ When user selects 'C', append the content directly to the document using the str ## NEXT STEP: -After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md` to finalize the PRD and complete the workflow. +After user selects 'C' and content is saved to document, load {nextStepFile} to finalize the PRD and complete the workflow. Remember: Do NOT proceed to step-11 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-complete.md similarity index 97% rename from src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md rename to src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-complete.md index 1104eaa04..9254757c4 100644 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-complete.md @@ -2,12 +2,7 @@ name: 'step-11-complete' description: 'Complete the PRD workflow, update status files, and suggest next steps' -# Path Definitions -workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' - # File References -thisStepFile: '{workflow_path}/steps/step-11-complete.md' -workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/prd.md' --- diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md deleted file mode 100644 index 5127230bb..000000000 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +++ /dev/null @@ -1,421 +0,0 @@ ---- -name: 'step-02-discovery' -description: 'Conduct project and domain discovery with data-driven classification' - -# Path Definitions -workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' - -# File References -thisStepFile: '{workflow_path}/steps/step-02-discovery.md' -nextStepFile: '{workflow_path}/steps/step-03-success.md' -workflowFile: '{workflow_path}/workflow.md' -outputFile: '{planning_artifacts}/prd.md' - -# Data Files -projectTypesCSV: '{workflow_path}/project-types.csv' -domainComplexityCSV: '{workflow_path}/domain-complexity.csv' - -# Task References -advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' ---- - -# Step 2: Project & Domain Discovery - -**Progress: Step 2 of 11** - Next: Success Criteria Definition - -## STEP GOAL: - -Conduct comprehensive project discovery that leverages existing input documents while allowing user refinement, with data-driven classification, and generate the Executive Summary content. - -## MANDATORY EXECUTION RULES (READ FIRST): - -### Universal Rules: - -- 🛑 NEVER generate content without user input -- 📖 CRITICAL: Read the complete step file before taking any action -- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read -- 📋 YOU ARE A FACILITATOR, not a content generator -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` - -### Role Reinforcement: - -- ✅ You are a product-focused PM facilitator collaborating with an expert peer -- ✅ We engage in collaborative dialogue, not command-response -- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision - -### Step-Specific Rules: - -- 🎯 Focus on project classification and vision alignment only -- 🚫 FORBIDDEN to generate content without real user input -- 💬 APPROACH: Adapt questions based on document context (brownfield vs greenfield) -- 🎯 LOAD classification data BEFORE starting discovery conversation - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- ⚠️ Present A/P/C menu after generating executive summary content -- 💾 ONLY save when user chooses C (Continue) -- 📖 Update frontmatter `stepsCompleted: [1, 2]` before loading next step -- 🚫 FORBIDDEN to load next step until C is selected - -## COLLABORATION MENUS (A/P/C): - -This step will generate content and present choices: - -- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper insights about the generated content -- **P (Party Mode)**: Bring multiple perspectives to discuss and improve the generated content -- **C (Continue)**: Append and save the content to the `{outputFile}` and proceed to next step - -## PROTOCOL INTEGRATION: - -- When 'A' selected: Execute {advancedElicitationTask} -- When 'P' selected: Execute {partyModeWorkflow} -- PROTOCOLS always return to this step's A/P/C menu -- User accepts/rejects protocol changes before proceeding - -## CONTEXT BOUNDARIES: - -- Current document and frontmatter from step 1 are available -- Input documents already loaded are in memory (product briefs, research, brainstorming, project docs) -- **Document counts available in frontmatter `documentCounts`** -- Classification CSV data will be loaded in this step only -- This will be the first content section appended to the document - -## Sequence of Instructions (Do not deviate, skip, or optimize) - -### 1. Read Document State from Frontmatter - -**CRITICAL FIRST ACTION:** Read the frontmatter from `{outputFile}` to get document counts. - -``` -Read documentCounts from prd.md frontmatter: -- briefCount = documentCounts.briefs -- researchCount = documentCounts.research -- brainstormingCount = documentCounts.brainstorming -- projectDocsCount = documentCounts.projectDocs -``` - -**ANNOUNCE your understanding:** - -"From step 1, I have loaded: - -- Product briefs: {{briefCount}} files -- Research: {{researchCount}} files -- Brainstorming: {{brainstormingCount}} files -- Project docs: {{projectDocsCount}} files - -{if projectDocsCount > 0}This is a **brownfield project** - I'll focus on understanding what you want to add or change.{else}This is a **greenfield project** - I'll help you define the full product vision.{/if}" - -### 2. Load Classification Data - -Load and prepare CSV data for intelligent classification: - -- Load `{projectTypesCSV}` completely -- Load `{domainComplexityCSV}` completely -- Parse column structures and store in memory for this step only - -### 3. Begin Discovery Conversation - -**SELECT EXACTLY ONE DISCOVERY PATH based on document state:** - ---- - -#### PATH A: Has Product Brief (briefCount > 0) - -**Use this path when:** `briefCount > 0` - -"As your PM peer, I've reviewed your product brief and have a great starting point for our discovery. Let me share what I understand and you can refine or correct as needed. - -**Based on your product brief:** - -**What you're building:** -{{extracted_vision_from_brief}} - -**Problem it solves:** -{{extracted_problem_from_brief}} - -**Target users:** -{{extracted_users_from_brief}} - -**What makes it special:** -{{extracted_differentiator_from_brief}} - -{if projectDocsCount > 0}I also see you have existing project documentation. This PRD will define how new features integrate with your existing system architecture.{/if} - -**How does this align with your vision?** Should we refine any of these points or are there important aspects I'm missing?" - -**AFTER this message, SKIP to Section 4.** - ---- - -#### PATH B: No Brief but Has Project Docs - Brownfield (briefCount == 0 AND projectDocsCount > 0) - -**Use this path when:** `briefCount == 0 AND projectDocsCount > 0` - -**NOTE:** Extract the following from loaded project documentation (index.md, architecture.md, project-overview.md, etc.): - -"As your PM peer, I've reviewed your existing project documentation from document-project. - -**Your existing system includes:** - -- **Tech Stack:** {analyze index.md and architecture.md for technologies used} -- **Architecture:** {summarize architecture patterns from architecture.md} -- **Key Components:** {list main components from source-tree-analysis.md or project-overview.md} - -This PRD will define **new features or changes** to add to this existing codebase. - -**Tell me about what you want to add or change:** - -- What new capability or feature do you want to build? -- What problem will this solve for your users? -- How should it integrate with the existing system? -- Is this adding new functionality, improving existing features, or fixing issues? - -I'll help you create a PRD focused on these additions while respecting your existing patterns and architecture." - -**AFTER this message, SKIP to Section 4.** - ---- - -#### PATH C: No Documents - Greenfield (briefCount == 0 AND projectDocsCount == 0) - -**Use this path when:** `briefCount == 0 AND projectDocsCount == 0` - -"As your PM peer, I'm excited to help you shape {{project_name}}. Let me start by understanding what you want to build. - -**Tell me about what you want to create:** - -- What problem does it solve? -- Who are you building this for? -- What excites you most about this product? - -I'll be listening for signals to help us classify the project and domain so we can ask the right questions throughout our process." - -**AFTER this message, continue to Section 4.** - ---- - -### 4. Listen for Classification Signals - -As the user describes their product/feature, listen for and match against: - -#### Project Type Signals - -Compare user description against `detection_signals` from `project-types.csv`: - -- Look for keyword matches from semicolon-separated signals -- Examples: "API,REST,GraphQL" → api_backend -- Examples: "iOS,Android,app,mobile" → mobile_app -- Store the best matching `project_type` - -#### Domain Signals - -Compare user description against `signals` from `domain-complexity.csv`: - -- Look for domain keyword matches -- Examples: "medical,diagnostic,clinical" → healthcare -- Examples: "payment,banking,trading" → fintech -- Store the matched `domain` and `complexity_level` - -### 5. Present Classification for Validation - -**SELECT EXACTLY ONE CLASSIFICATION PRESENTATION based on document state:** - ---- - -#### IF PATH A was used (briefCount > 0): - -"Based on your product brief and our discussion, I'm classifying this as: - -- **Project Type:** {project_type_from_brief_or_conversation} -- **Domain:** {domain_from_brief_or_conversation} -- **Complexity:** {complexity_from_brief_or_conversation} - -From your brief, I detected these classification signals: -{{classification_signals_from_brief}} - -{if projectDocsCount > 0}Your existing project documentation also indicates: - -- **Existing Tech Stack:** {from architecture.md or index.md} -- **Architecture Pattern:** {from architecture.md} - -I'll ensure the new features align with your existing system.{/if} - -Combined with our conversation, this suggests the above classification. Does this sound right?" - ---- - -#### IF PATH B was used (briefCount == 0 AND projectDocsCount > 0): - -"Based on your existing project documentation and our discussion about new features: - -- **Existing Project Type:** {detected from project docs - e.g., web_app, api_backend} -- **Tech Stack:** {from architecture.md or index.md} -- **New Feature Type:** {from user's description of what they want to add} -- **Domain:** {detected_domain} -- **Complexity:** {complexity_level} - -I'll ensure the PRD aligns with your existing architecture patterns. Does this classification sound right?" - ---- - -#### IF PATH C was used (briefCount == 0 AND projectDocsCount == 0): - -"Based on our conversation, I'm hearing this as: - -- **Project Type:** {detected_project_type} -- **Domain:** {detected_domain} -- **Complexity:** {complexity_level} - -Does this sound right to you? I want to make sure we're on the same page before diving deeper." - ---- - -### 6. Identify What Makes It Special - -**SELECT EXACTLY ONE DIFFERENTIATOR DISCOVERY based on document state:** - ---- - -#### IF PATH A was used (briefCount > 0): - -"From your product brief, I understand that what makes this special is: -{{extracted_differentiator_from_brief}} - -Let's explore this deeper: - -- **Refinement needed:** Does this capture the essence correctly, or should we adjust it? -- **Missing aspects:** Are there other differentiators that aren't captured in your brief? -- **Evolution:** How has your thinking on this evolved since you wrote the brief?" - ---- - -#### IF PATH B was used (briefCount == 0 AND projectDocsCount > 0): - -"Your existing system already provides certain capabilities. Now let's define what makes these **new additions** special: - -- What gap in your current system will this fill? -- How will this improve the experience for your existing users? -- What's the key insight that led you to prioritize this addition? -- What would make users say 'finally, this is what we needed'?" - ---- - -#### IF PATH C was used (briefCount == 0 AND projectDocsCount == 0): - -Ask focused questions to capture the product's unique value: - -- "What would make users say 'this is exactly what I needed'?" -- "What's the moment where users realize this is different/better?" -- "What assumption about [problem space] are you challenging?" -- "If this succeeds wildly, what changed for your users?" - ---- - -### 7. Generate Executive Summary Content - -Based on the conversation, prepare the content to append to the document: - -#### Content Structure: - -```markdown -## Executive Summary - -{vision_alignment_content} - -### What Makes This Special - -{product_differentiator_content} - -## Project Classification - -**Technical Type:** {project_type} -**Domain:** {domain} -**Complexity:** {complexity_level} -{if projectDocsCount > 0}**Project Context:** Brownfield - extending existing system{else}**Project Context:** Greenfield - new project{/if} - -{project_classification_content} -``` - -### 8. Present Content and Menu - -Show the generated content to the user and present: - -"I've drafted our Executive Summary based on our conversation. This will be the first section of your PRD. - -**Here's what I'll add to the document:** - -[Show the complete markdown content from step 7] - -**Select an Option:** -[A] Advanced Elicitation - Let's dive deeper and refine this content -[P] Party Mode - Bring in different perspectives to improve this -[C] Continue - Save this and move to Success Criteria Definition (Step 3 of 11)" - -### 9. Handle Menu Selection - -#### IF A (Advanced Elicitation): - -- Execute {advancedElicitationTask} with the current content -- Process the enhanced content that comes back -- Ask user: "Accept these changes to the Executive Summary? (y/n)" -- If yes: Update the content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### IF P (Party Mode): - -- Execute {partyModeWorkflow} with the current content -- Process the collaborative improvements that come back -- Ask user: "Accept these changes to the Executive Summary? (y/n)" -- If yes: Update the content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### IF C (Continue): - -- Append the final content to `{outputFile}` -- Update frontmatter: add this step name to the end of the steps completed array -- Load `{nextStepFile}` - -## CRITICAL STEP COMPLETION NOTE - -ONLY WHEN [C continue option] is selected and [executive summary content finalized and saved to document with frontmatter updated], will you then load and read fully `{nextStepFile}` to execute and begin success criteria definition. - ---- - -## 🚨 SYSTEM SUCCESS/FAILURE METRICS - -### ✅ SUCCESS: - -- Document counts read from frontmatter and announced -- Classification data loaded and used effectively -- **Correct discovery path selected based on document counts** -- Input documents analyzed and leveraged for head start -- User classifications validated and confirmed -- Product differentiator clearly identified and refined -- Executive summary content generated collaboratively with document context -- A/P/C menu presented and handled correctly -- Content properly appended to document when C selected -- Frontmatter updated with stepsCompleted: [1, 2] - -### ❌ SYSTEM FAILURE: - -- **Not reading documentCounts from frontmatter first** -- **Executing multiple discovery paths instead of exactly one** -- Skipping classification data loading and guessing classifications -- Not leveraging existing input documents to accelerate discovery -- Not validating classifications with user before proceeding -- Generating executive summary without real user input -- Missing the "what makes it special" discovery and refinement -- Not presenting A/P/C menu after content generation -- Appending content without user selecting 'C' - -**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE. - -## COMPLEXITY HANDLING: - -If `complexity_level = "high"`: - -- Note the `suggested_workflow` and `web_searches` from domain CSV -- Consider mentioning domain research needs in classification section -- Document complexity implications in project classification diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md b/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md deleted file mode 100644 index 1140b035a..000000000 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +++ /dev/null @@ -1,271 +0,0 @@ ---- -name: 'step-05-domain' -description: 'Explore domain-specific requirements for complex domains (optional step)' - -# Path Definitions -workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd' - -# File References -thisStepFile: '{workflow_path}/steps/step-05-domain.md' -nextStepFile: '{workflow_path}/steps/step-06-innovation.md' -workflowFile: '{workflow_path}/workflow.md' -outputFile: '{planning_artifacts}/prd.md' - -# Data Files -domainComplexityCSV: '{workflow_path}/domain-complexity.csv' - -# Task References -advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' -partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' ---- - -# Step 5: Domain-Specific Exploration - -**Progress: Step 5 of 11** - Next: Innovation Focus - -## MANDATORY EXECUTION RULES (READ FIRST): - -- 🛑 NEVER generate content without user input - -- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions -- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding -- ✅ ALWAYS treat this as collaborative discovery between PM peers -- 📋 YOU ARE A FACILITATOR, not a content generator -- 💬 FOCUS on domain-specific requirements and compliance needs -- 🎯 OPTIONAL STEP: Only proceed if complexity_level = "high" from step-02 -- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` - -## EXECUTION PROTOCOLS: - -- 🎯 Show your analysis before taking any action -- ⚠️ Present A/P/C menu after generating domain content -- 💾 ONLY save when user chooses C (Continue) -- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5]` before loading next step -- 🚫 FORBIDDEN to load next step until C is selected - -## COLLABORATION MENUS (A/P/C): - -This step will generate content and present choices: - -- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper domain insights -- **P (Party Mode)**: Bring domain expertise perspectives to explore requirements -- **C (Continue)**: Save the content to the document and proceed to next step - -## PROTOCOL INTEGRATION: - -- When 'A' selected: Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml -- When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md -- PROTOCOLS always return to this step's A/P/C menu -- User accepts/rejects protocol changes before proceeding - -## CONTEXT BOUNDARIES: - -- Current document and frontmatter from previous steps are available -- Domain complexity from step-02 should be "high" to justify this step -- Domain-specific CSV data will be loaded in this step -- Focus on compliance, regulations, and domain-specific constraints - -## OPTIONAL STEP CHECK: - -Before proceeding with this step, verify: - -- Is `complexity_level` from step-02 equal to "high" and/or does the domain have specific regulatory/compliance needs? -- Would domain exploration significantly impact the product requirements? - -If NO to these questions, skip this step and load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md`. - -## YOUR TASK: - -Explore domain-specific requirements for complex domains that need specialized compliance, regulatory, or industry-specific considerations. - -## DOMAIN EXPLORATION SEQUENCE: - -### 1. Load Domain Configuration Data - -Load domain-specific configuration for complex domains: - -- Load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv` completely -- Find the row where `domain` matches the detected domain from step-02 -- Extract these columns: - - `key_concerns` (semicolon-separated list) - - `required_knowledge` (domain expertise needed) - - `web_searches` (suggested research queries) - - `special_sections` (domain-specific sections to document) - -### 2. Present Domain Complexity Context - -Start by explaining why this step is needed: -"Since {{project_name}} is in the {domain} domain with high complexity, we need to explore domain-specific requirements. - -**Key Concerns for {domain}:** -[List the key_concerns from CSV] - -This step will help us understand regulatory requirements, compliance needs, and industry-specific constraints that will shape our product." - -### 3. Explore Domain-Specific Requirements - -For each concern in `key_concerns` from the CSV: - -#### Domain Concern Exploration: - -- Ask the user about their approach to this concern -- Discuss implications for the product design and requirements -- Document specific requirements, constraints, and compliance needs - -**Example for Healthcare Domain:** -If key_concerns = "FDA approval;Clinical validation;HIPAA compliance;Patient safety;Medical device classification;Liability" - -Ask about each: - -- "Will this product require FDA approval? What classification?" -- "How will you validate clinical accuracy and safety?" -- "What HIPAA compliance measures are needed?" -- "What patient safety protocols must be in place?" -- "What liability considerations affect the design?" - -### 4. Synthesize Domain Requirements - -Based on the conversation, synthesize domain requirements that will shape everything: - -#### Categories to Document: - -- **Regulatory requirements** (from key_concerns) -- **Compliance needs** (from key_concerns) -- **Industry standards** (from required_knowledge) -- **Safety/risk factors** (from key_concerns) -- **Required validations** (from key_concerns) -- **Special expertise needed** (from required_knowledge) - -Explain how these inform: - -- What features are mandatory -- What NFRs are critical -- How to sequence development -- What validation is required - -### 5. Generate Domain-Specific Content - -Prepare the content to append to the document: - -#### Content Structure: - -When saving to document, append these Level 2 and Level 3 sections: - -```markdown -## Domain-Specific Requirements - -### [Domain Name] Compliance & Regulatory Overview - -[Domain context summary based on conversation] - -### Key Domain Concerns - -[Key concerns addressed based on conversation] - -### Compliance Requirements - -[Compliance requirements based on conversation] - -### Industry Standards & Best Practices - -[Industry standards based on conversation] - -### Required Expertise & Validation - -[Required knowledge and validation based on conversation] - -### Implementation Considerations - -[Implementation implications based on conversation] -``` - -### 6. Handle Special Sections - -Parse `special_sections` list from the matched CSV row. For each section name, generate corresponding subsections: - -**Example mappings from CSV:** - -- "clinical_requirements" → Add clinical validation requirements -- "regulatory_pathway" → Document approval pathway timeline -- "safety_measures" → Specify safety protocols and monitoring -- "compliance_matrix" → Create compliance tracking matrix - -### 7. Present Content and Menu - -Show the generated domain content and present choices: -"I've documented the {domain}-specific requirements that will shape {{project_name}}. These constraints are critical for success in this complex domain. - -**Here's what I'll add to the document:** - -[Show the complete markdown content from step 6] - -**What would you like to do?** -[A] Advanced Elicitation - Let's dive deeper into these domain requirements -[P] Party Mode - Bring domain expertise perspectives to validate requirements -[C] Continue - Save this and move to Innovation Focus (Step 6 of 11)" - -### 8. Handle Menu Selection - -#### If 'A' (Advanced Elicitation): - -- Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml with the current domain content -- Process the enhanced domain insights that come back -- Ask user: "Accept these domain requirement improvements? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'P' (Party Mode): - -- Execute {project-root}/_bmad/core/workflows/party-mode/workflow.md with the current domain requirements -- Process the collaborative domain expertise and validation -- Ask user: "Accept these changes to domain requirements? (y/n)" -- If yes: Update content with improvements, then return to A/P/C menu -- If no: Keep original content, then return to A/P/C menu - -#### If 'C' (Continue): - -- Append the content to `{outputFile}` -- Update frontmatter: add this step name to the end of the steps completed array -- Load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md` - -## APPEND TO DOCUMENT: - -When user selects 'C', append the content directly to the document using the structure from step 6. - -## SUCCESS METRICS: - -✅ Domain complexity properly validated as high before proceeding -✅ All key concerns from CSV explored with user input -✅ Compliance requirements clearly documented -✅ Domain expertise needs identified and documented -✅ Special sections generated per CSV configuration -✅ A/P/C menu presented and handled correctly -✅ Content properly appended to document when C selected - -## FAILURE MODES: - -❌ Proceeding with domain exploration when complexity is not high -❌ Not loading or using CSV domain configuration properly -❌ Missing critical domain concerns from the key_concerns list -❌ Not connecting domain requirements to product implications -❌ Generating generic content without domain-specific details -❌ Not presenting A/P/C menu after content generation -❌ Appending content without user selecting 'C' - -❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions -❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file -❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols - -## SKIP CONDITIONS: - -Skip this step and load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md` if: - -- `complexity_level` from step-02 is not "high" -- Domain has no specific regulatory/compliance requirements -- User confirms domain exploration is not needed - -## NEXT STEP: - -After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md`. - -Remember: Do NOT proceed to step-06 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md b/src/modules/bmm/workflows/2-plan-workflows/prd/templates/prd-template.md similarity index 93% rename from src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md rename to src/modules/bmm/workflows/2-plan-workflows/prd/templates/prd-template.md index 6b54dc507..d82219d2f 100644 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/templates/prd-template.md @@ -2,7 +2,6 @@ stepsCompleted: [] inputDocuments: [] workflowType: 'prd' -lastStep: 0 --- # Product Requirements Document - {{project_name}} diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/validation-report-prd.md b/src/modules/bmm/workflows/2-plan-workflows/prd/validation-report-prd.md new file mode 100644 index 000000000..88790315e --- /dev/null +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/validation-report-prd.md @@ -0,0 +1,1050 @@ +--- +validationDate: 2026-01-08 +workflowName: prd +workflowPath: /Users/brianmadison/dev/BMAD-METHOD/src/modules/bmm/workflows/2-plan-workflows/prd +validationStatus: COMPLETE +--- + +# Validation Report: prd + +**Validation Started:** 2026-01-08 +**Validator:** BMAD Workflow Validation System +**Standards Version:** BMAD Workflow Standards + +--- + +## File Structure & Size + +### Folder Structure + +``` +/Users/brianmadison/dev/BMAD-METHOD/src/modules/bmm/workflows/2-plan-workflows/prd/ +├── workflow.md +├── steps-c/ +│ ├── step-01-init.md +│ ├── step-01b-continue.md +│ ├── step-02-discovery.md +│ ├── step-03-success.md +│ ├── step-04-journeys.md +│ ├── step-05-domain.md +│ ├── step-06-innovation.md +│ ├── step-07-project-type.md +│ ├── step-08-scoping.md +│ ├── step-09-functional.md +│ ├── step-10-nonfunctional.md +│ └── step-11-complete.md +├── data/ +│ ├── domain-complexity.csv +│ └── project-types.csv +└── templates/ + └── prd-template.md +``` + +### Files Present + +✅ **Required Files Present:** +- workflow.md exists +- steps-c/ folder exists with 11 step files +- data/ folder exists with 2 CSV files +- templates/ folder exists with 1 template file + +✅ **Folder Structure:** +- Follows BMAD tri-modal convention (steps-c/ for create mode) +- data/ folder present for reference materials +- templates/ folder present for output templates +- No unexpected files found + +### File Size Check + +| File | Lines | Status | +|------|-------|--------| +| step-01-init.md | 191 | ✅ Good | +| step-01b-continue.md | 162 | ✅ Good | +| step-02-discovery.md | 184 | ✅ Good | +| step-03-success.md | 285 | ❌ Exceeds limit - should split | +| step-04-journeys.md | 286 | ❌ Exceeds limit - should split | +| step-05-domain.md | 193 | ✅ Good | +| step-06-innovation.md | 257 | ❌ Exceeds limit - should split | +| step-07-project-type.md | 253 | ❌ Exceeds limit - should split | +| step-08-scoping.md | 294 | ❌ Exceeds limit - should split | +| step-09-functional.md | 265 | ❌ Exceeds limit - should split | +| step-10-nonfunctional.md | 289 | ❌ Exceeds limit - should split | +| step-11-complete.md | 181 | ✅ Good | + +**Summary:** 4/12 files within limits, 8/12 files exceed 250-line maximum + +### Data File Size Check + +| Data File | Lines | Status | +|-----------|-------|--------| +| domain-complexity.csv | 12 | ✅ Good | +| project-types.csv | 10 | ✅ Good | +| prd-template.md | 11 | ✅ Good | + +### Issues Found + +**Critical Issues:** +- ❌ **8 step files exceed 250-line limit** (absolute maximum) + - step-03-success.md: 285 lines (35 lines over) + - step-04-journeys.md: 286 lines (36 lines over) + - step-06-innovation.md: 257 lines (7 lines over) + - step-07-project-type.md: 253 lines (3 lines over) + - step-08-scoping.md: 294 lines (44 lines over) + - step-09-functional.md: 265 lines (15 lines over) + - step-10-nonfunctional.md: 289 lines (39 lines over) + +**Recommendations:** +1. **Split oversized step files** into multiple steps +2. **Extract reference content** to data/ folder for: + - Domain complexity reference materials (step-05) + - Project type definitions (step-07) + - Scoping frameworks (step-08) + - Functional requirement patterns (step-09) + - Non-functional requirement catalogs (step-10) +3. **Remove overly prescriptive "say this" instructions** - Replace with intent-based instructions (see "Instruction Style" section below) +4. **Remove redundant menu pattern sections** - Use standard BMAD menu structure (see "Menu Handling" section above) +5. **Consider creating sub-steps** for complex elicitation tasks +6. **Use data files** for large reference tables, examples, or patterns + +**Note on File Size Root Causes:** +The primary reason files are oversized is NOT just content volume, but: +- ❌ Overly prescriptive instructions with exact dialogue ("say this...") +- ❌ Redundant menu pattern sections ("COLLABORATION MENUS", "PROTOCOL INTEGRATION") +- ❌ Repetitive explanations instead of intent-based guidance + +**Fixing these issues will dramatically reduce file sizes AND improve quality.** + +### Status + +⚠️ **WARNINGS** - Workflow structure is correct, but multiple step files exceed size limits + +--- + +## Frontmatter Validation + +### Validation Results + +| File | Required Fields | All Vars Used | Relative Paths | No Forbidden | Status | +|------|----------------|---------------|----------------|-------------|--------| +| step-01-init.md | ✅ | ✅ | ✅ | ✅ | ✅ PASS | +| step-01b-continue.md | ✅ | ❌ Unused: workflowFile | ✅ | ❌ {workflow_path} | ❌ FAIL | +| step-02-discovery.md | ✅ | ✅ | ✅ | ✅ | ❌ FAIL (wrong nextStep) | +| step-03-success.md | ✅ | ✅ | ✅ | ✅ | ✅ PASS | +| step-04-journeys.md | ✅ | ✅ | ✅ | ✅ | ✅ PASS | +| step-05-domain.md | ✅ | ⚠️ Syntax error | ✅ | ✅ | ❌ FAIL | +| step-06-innovation.md | ✅ | ✅ | ✅ | ✅ | ✅ PASS | +| step-07-project-type.md | ✅ | ✅ | ✅ | ✅ | ✅ PASS | +| step-08-scoping.md | ✅ | ✅ | ✅ | ✅ | ✅ PASS | +| step-09-functional.md | ✅ | ✅ | ✅ | ✅ | ✅ PASS | +| step-10-nonfunctional.md | ✅ | ✅ | ✅ | ✅ | ✅ PASS | +| step-11-complete.md | ✅ | ✅ | N/A | ✅ | ✅ PASS | + +**Summary:** 9/12 files pass, 3/12 files have violations + +### Violations Found + +**step-01b-continue.md:** +- ❌ **Unused variable:** `workflowFile: '{workflow_path}/workflow.md'` - Variable is defined but `{workflowFile}` never appears in step body +- ❌ **Forbidden pattern:** Uses `{workflow_path}` which is forbidden per frontmatter standards +- **Fix:** Remove `workflowFile` from frontmatter entirely (it's not used) + +**step-02-discovery.md:** +- ❌ **CRITICAL: Wrong nextStep path:** `nextStepFile: './step-02b-vision.md'` - This file doesn't exist! +- **Context:** Step was previously split (vision was separated) but changes were lost +- **Should be:** `nextStepFile: './step-03-success.md'` +- **Impact:** Workflow will break when trying to load non-existent step file + +**step-05-domain.md:** +- ❌ **CRITICAL SYNTAX ERROR:** Line 10 has malformed frontmatter: + ```yaml + domainComplexityCSV: ../data/domain-complexity.csv' + ``` +- **Missing opening quote** - Should be: `domainComplexityCSV: '../data/domain-complexity.csv'` +- **Impact:** This is a YAML syntax error that will cause frontmatter parsing to fail + +### Status + +❌ **FAIL** - Multiple critical frontmatter violations that will break workflow execution + +## Menu Handling Validation + +### Menu Handling Validation Results + +| File | Has Menu | Handler Section | Exec Rules | Halt & Wait | A/P Return | Status | +|------|----------|----------------|------------|-------------|------------|--------| +| step-01-init.md | ✅ (C-only) | ✅ | ✅ | ✅ | N/A | ✅ PASS | +| step-01b-continue.md | ✅ (C-only) | ✅ | ✅ | ✅ | N/A | ✅ PASS | +| step-02-discovery.md | ✅ (A/P/C) | ✅ | ✅ | ✅ | ✅ | ✅ PASS | +| step-03-success.md | ✅ (A/P/C) | ✅ | ⚠️ Top-level only | ❌ Missing after menu | ✅ | ⚠️ WARN | +| step-04-journeys.md | ✅ (A/P/C) | ✅ | ⚠️ Top-level only | ❌ Missing after menu | ✅ | ⚠️ WARN | +| step-05-domain.md | ✅ (A/P/C) | ✅ | ✅ | ✅ | ✅ | ✅ PASS | +| step-06-innovation.md | ✅ (A/P/C) | ✅ | ⚠️ Top-level only | ❌ Missing after menu | ✅ | ⚠️ WARN | +| step-07-project-type.md | ✅ (A/P/C) | ✅ | ⚠️ Top-level only | ❌ Missing after menu | ✅ | ⚠️ WARN | +| step-08-scoping.md | ✅ (A/P/C) | ✅ | ⚠️ Top-level only | ❌ Missing after menu | ✅ | ⚠️ WARN | +| step-09-functional.md | ✅ (A/P/C) | ✅ | ⚠️ Top-level only | ❌ Missing after menu | ✅ | ⚠️ WARN | +| step-10-nonfunctional.md | ✅ (A/P/C) | ✅ | ⚠️ Top-level only | ❌ Missing after menu | ✅ | ⚠️ WARN | +| step-11-complete.md | N/A | N/A | N/A | N/A | N/A | ✅ PASS | + +**Summary:** 4/12 fully compliant, 7/12 have minor issues, 1/12 N/A (final step) + +### Menu Violations Found + +**❌ CRITICAL: Wrong Menu Pattern in Steps 3, 4, 6, 7, 8, 9, 10:** + +These steps use an **incorrect and redundant menu pattern** instead of the standard BMAD menu structure: + +**Current (WRONG) Structure:** +```markdown +## COLLABORATION MENUS (A/P/C): +[A/P/C description] + +## PROTOCOL INTEGRATION: +[Redundant protocol info] + +### N. Handle Menu Selection +#### If 'A' (Advanced Elicitation): +[handler] +``` + +**Should Be (Standard Pattern):** +```markdown +### N. Present MENU OPTIONS + +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue" + +#### Menu Handling Logic: +- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu +- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu +- IF C: Save content to {outputFile}, update frontmatter, then load, read entire file, then execute {nextStepFile} +- IF Any other: help user, then [Redisplay Menu Options](#n-present-menu-options) + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu +``` + +**Issues with Current Pattern:** +- ❌ Redundant "COLLABORATION MENUS" section (should be "Present MENU OPTIONS") +- ❌ Redundant "PROTOCOL INTEGRATION" section (protocol info already in frontmatter) +- ❌ Menu logic split across multiple sections instead of unified handler +- ❌ Missing explicit "#### EXECUTION RULES:" with halt/wait instructions +- ⚠️ A/P handlers do specify "return to A/P/C menu" (partial credit) + +**Impact:** Files are longer, harder to follow, and don't follow BMAD standards. This pattern needs to be replaced with the standard menu structure. + +**Files Affected:** +- step-03-success.md +- step-04-journeys.md +- step-06-innovation.md +- step-07-project-type.md +- step-08-scoping.md +- step-09-functional.md +- step-10-nonfunctional.md + +**Current Structure:** +```markdown +## COLLABORATION MENUS (A/P/C): +[A/P/C description] + +### N. Handle Menu Selection +#### If 'A' (Advanced Elicitation): +[handler with "return to A/P/C menu"] +``` + +**Should Be:** +```markdown +## COLLABORATION MENUS (A/P/C): +[A/P/C description] + +### N. Handle Menu Selection +#### If 'A' (Advanced Elicitation): +[handler with "return to A/P/C menu"] + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +``` + +**Impact:** Minor - functionality works but missing explicit halt instruction could lead to confusion + +### Positive Findings + +✅ **All steps properly implement A/P menu return behavior** +✅ **No A/P menus in inappropriate locations (step 01 correctly uses C-only)** +✅ **All handlers properly reference file variables** +✅ **C options properly sequence: save → update → load next** + +### Status + +❌ **FAIL - CRITICAL** - Wrong menu pattern used in 7 steps, must be fixed to follow BMAD standards + +## Step Type Validation + +### Step Type Validation Results + +| File | Should Be Type | Follows Pattern | Issues | Status | +|------|----------------|-----------------|--------|--------| +| step-01-init.md | Init (Continuable with Input Discovery) | ✅ | None | ✅ PASS | +| step-01b-continue.md | Continuation (01b) | ✅ | None | ✅ PASS | +| step-02-discovery.md | Middle (Standard) | ✅ | None | ✅ PASS | +| step-03-success.md | Middle (Standard) | ✅ | None | ✅ PASS | +| step-04-journeys.md | Middle (Standard) | ✅ | None | ✅ PASS | +| step-05-domain.md | Middle (Standard) | ✅ | None | ✅ PASS | +| step-06-innovation.md | Middle (Standard) | ✅ | None | ✅ PASS | +| step-07-project-type.md | Middle (Standard) | ✅ | None | ✅ PASS | +| step-08-scoping.md | Middle (Standard) | ✅ | None | ✅ PASS | +| step-09-functional.md | Middle (Standard) | ✅ | None | ✅ PASS | +| step-10-nonfunctional.md | Middle (Standard) | ✅ | None | ✅ PASS | +| step-11-complete.md | Final | ✅ | None | ✅ PASS | + +**Summary:** 12/12 steps correctly follow their type patterns + +### Type Pattern Analysis + +**Init Step (Continuable with Input Discovery) - step-01-init.md:** +✅ Has `continueStepFile` reference for continuation logic +✅ Has `inputDocuments` array for tracking discovered inputs +✅ Has input discovery logic (searches for product briefs, research, etc.) +✅ Creates output from template (`prdTemplate`) +✅ C-only menu (no A/P - appropriate for init step) +✅ Checks for existing workflow state before proceeding +**Status:** ✅ Correctly implements Init (Continuable with Input Discovery) pattern + +**Continuation Step (01b) - step-01b-continue.md:** +✅ Paired with continuable init step +✅ Reads `stepsCompleted` from output frontmatter +✅ Routes to appropriate next step based on last completed step +✅ Restores context by reloading input documents +✅ C-only menu +**Status:** ✅ Correctly implements Continuation (01b) pattern + +**Middle Steps (Standard) - steps 02-10:** +✅ All have A/P/C menu structure +✅ All generate collaborative content +✅ All append content to output document +✅ All have proper handler sections +✅ All use advanced elicitation and party mode workflows appropriately +**Status:** ✅ All correctly implement Middle (Standard) pattern + +**Final Step - step-11-complete.md:** +✅ No `nextStepFile` in frontmatter +✅ Provides completion message +✅ Finalizes workflow status +✅ No next step to load +**Status:** ✅ Correctly implements Final pattern + +### Status + +✅ **PASS** - All steps correctly follow their designated type patterns + +## Output Format Validation + +### Output Format Validation Results + +**Workflow Produces Documents:** Yes + +**Template Type:** Free-form (RECOMMENDED) + +**Template File Check:** +- Template exists: ✅ (prd-template.md) +- Matches designed type: ✅ (Free-form with minimal structure) +- Proper frontmatter: ✅ (stepsCompleted, inputDocuments, workflowType, lastStep) + +**Final Polish Step:** +- Required: Yes (free-form workflows typically need final polish) +- Present: ⚠️ Partially +- Document quality check exists: ✅ (step-11-complete.md has completeness/consistency checks) +- Full document polish: ❌ Missing (no flow/coherence optimization, duplication removal, header optimization) + +**Step-to-Output Mapping:** +| Step | Has Output Variable | Saves Before Next | Status | +|------|-------------------|-------------------|--------| +| step-01-init.md | ✅ | ✅ | ✅ | +| step-01b-continue.md | ✅ | N/A (continuation) | ✅ | +| step-02-discovery.md | ✅ | ✅ | ✅ | +| step-03-success.md | ✅ | ✅ | ✅ | +| step-04-journeys.md | ✅ | ✅ | ✅ | +| step-05-domain.md | ✅ | ✅ | ✅ | +| step-06-innovation.md | ✅ | ✅ | ✅ | +| step-07-project-type.md | ✅ | ✅ | ✅ | +| step-08-scoping.md | ✅ | ✅ | ✅ | +| step-09-functional.md | ✅ | ✅ | ✅ | +| step-10-nonfunctional.md | ✅ | ✅ | ✅ | +| step-11-complete.md | ✅ | N/A (final step) | ✅ | + +**Issues Found:** + +1. ⚠️ **Missing Full Document Polish Step:** + - Current step-11-complete.md includes quality checks (completeness, consistency) + - **Missing:** Document optimization features: + - Load entire document + - Review for flow and coherence + - Reduce duplication while preserving essential info + - Ensure proper ## Level 2 headers + - Improve transitions between sections + - Optimize overall readability + + **Recommendation:** Either: + - Add polish logic to step-11-complete.md before finalization + - OR insert a new step-10b-polish.md between step-10 and step-11 + - OR rename step-11 to include "polish" in its description and add optimization logic + +2. ✅ **Positive:** + - Template correctly implements free-form structure + - All steps properly reference outputFile + - All steps follow "save → update frontmatter → load next" pattern + - Progressive append approach is correct for PRD workflow + +### Status + +⚠️ **WARNINGS** - Output structure is correct, but free-form workflow would benefit from full document polish step + +## Validation Design Check + +### Validation Design Check Results + +**Workflow Requires Validation:** No + +**Workflow Domain Type:** Creative/Collaborative Document Creation + +**Reasoning:** +- This is a Product Requirements Document creation workflow +- It's a collaborative, user-driven document generation process +- Output quality is user's responsibility (not compliance/safety-critical) +- No regulatory, safety, or compliance requirements +- The workflow we're currently running (validation) is a meta-workflow that validates OTHER workflows, not part of the PRD workflow itself + +**Validation Steps in PRD Workflow:** +- None ✅ (Correct - PRD workflow doesn't need embedded validation steps) +- Workflow focuses on collaborative document creation +- Quality assurance happens through user review and iteration + +**Status:** ✅ PASS - N/A (Validation steps not required for this workflow type) + +## Instruction Style Check + +### Instruction Style Check Results + +**Domain Type:** Creative/Collaborative (Product Requirements Document creation) + +**Appropriate Style:** Intent-based (facilitative, flexible, conversational) + +**Current Style:** ❌ **FAIL - Overly Prescriptive** + +### Step Instruction Style Analysis + +| Step | Style Type | Appropriate | Notes | Status | +|------|-----------|-------------|-------|--------| +| step-01-init.md | Mixed | ⚠️ | Has dialogue templates | ⚠️ WARN | +| step-01b-continue.md | Mixed | ⚠️ | Has dialogue templates | ⚠️ WARN | +| step-02-discovery.md | Mixed | ⚠️ | Some prescriptive dialogue | ⚠️ WARN | +| step-03-success.md | ❌ Prescriptive | ❌ | Extensive exact dialogue | ❌ FAIL | +| step-04-journeys.md | ❌ Prescriptive | ❌ | Extensive exact dialogue | ❌ FAIL | +| step-05-domain.md | ❌ Prescriptive | ❌ | Exact dialogue specified | ❌ FAIL | +| step-06-innovation.md | ❌ Prescriptive | ❌ | Exact dialogue specified | ❌ FAIL | +| step-07-project-type.md | ❌ Prescriptive | ❌ | Exact dialogue specified | ❌ FAIL | +| step-08-scoping.md | ❌ Prescriptive | ❌ | Exact dialogue specified | ❌ FAIL | +| step-09-functional.md | ❌ Prescriptive | ❌ | Exact dialogue specified | ❌ FAIL | +| step-10-nonfunctional.md | ❌ Prescriptive | ❌ | Exact dialogue specified | ❌ FAIL | +| step-11-complete.md | Mixed | ⚠️ | Has completion messages | ⚠️ WARN | + +**Summary:** 0/12 properly intent-based, 4/12 mixed, 8/12 overly prescriptive + +### Critical Issues Found + +**❌ MAJOR ISSUE: Overly Prescriptive Instructions Across Most Steps** + +**Example from step-03-success.md (lines 70-95):** +```markdown +**If Input Documents Contain Success Criteria:** +"Looking at your product brief and research, I see some initial success criteria already defined: + +**From your brief:** +{{extracted_success_criteria_from_brief}} + +**From research:** +{{extracted_success_criteria_from_research}} + +**From brainstorming:** +{{extracted_success_criteria_from_brainstorming}} + +This gives us a great foundation. Let's refine and expand on these initial thoughts: + +**User Success First:** +Based on what we have, how would you refine these user success indicators: + +- {{refined_user_success_from_documents}} +- Are there other user success metrics we should consider? + +**What would make a user say 'this was worth it'** beyond what's already captured?" +``` + +**Example from step-03-success.md (lines 212-221):** +```markdown +"I've drafted our success criteria and scope definition based on our conversation. + +**Here's what I'll add to the document:** + +[Show the complete markdown content from step 7] + +**What would you like to do?** +[A] Advanced Elicitation - Let's dive deeper and refine these success metrics +[P] Party Mode - Bring in different perspectives on success criteria +[C] Continue - Save success criteria and move to User Journey Mapping (Step 4 of 11)" +``` + +**Problems with Current Approach:** + +1. **Exact Dialogue Specified:** + - ❌ "Looking at your product brief..." - Agent must say exactly this + - ❌ "I've drafted our success criteria..." - No room for natural conversation + - ❌ "What would you like to do?" - Scripted response + +2. **No Flexibility for Conversation Flow:** + - ❌ Agent can't adapt to user's actual responses + - ❌ Can't follow natural conversation pivots + - ❌ Forces template-based dialogue instead of facilitation + +3. **Bloated File Sizes:** + - ❌ All this exact dialogue inflates line counts significantly + - ❌ Contributing to 8/12 files exceeding 250-line limit + +4. **Reduced Quality:** + - ❌ Agent feels robotic and scripted + - ❌ Not真正的 collaborative facilitation + - ❌ User experience suffers from repetitive phrasing + +### What It Should Be (Intent-Based) + +**Current (WRONG):** +```markdown +"Looking at your product brief and research, I see some initial success criteria already defined: + +**From your brief:** +{{extracted_success_criteria_from_brief}} + +This gives us a great foundation. Let's refine and expand on these initial thoughts: + +**User Success First:** +Based on what we have, how would you refine these user success indicators: + +- {{refined_user_success_from_documents}} +- Are there other user success metrics we should consider?" +``` + +**Should Be (INTENT-BASED):** +```markdown +### 2. Begin Success Definition Conversation + +**If Input Documents Contain Success Criteria:** +Guide user to refine existing success criteria: +- Acknowledge what's already documented in their materials +- Help user identify gaps and areas for expansion +- Probe for specific, measurable outcomes +- Ask about emotional success moments: When do users feel delighted/relieved/empowered? + +**If No Success Criteria in Input Documents:** +Start with user-centered success exploration: +- Guide conversation toward defining what "worth it" means for users +- Ask about specific user outcomes and emotional states +- Identify success "aha!" moments and completion scenarios +``` + +### Impact + +**This is a CRITICAL QUALITY issue that affects:** +1. ✅ File size (will dramatically reduce when fixed) +2. ✅ Conversation quality (will be more natural and flexible) +3. ✅ Agent behavior (will be facilitative instead of scripted) +4. ✅ User experience (will feel like genuine collaboration) + +### Good Examples Found + +✅ **step-01-init.md** has some intent-based elements: +- "Guide user to define requirements through open-ended discussion" (good) +- But still has prescriptive dialogue templates (needs cleanup) + +### Status + +❌ **FAIL - CRITICAL** - Overly prescriptive instructions must be replaced with intent-based facilitation guidance. This is the PRIMARY cause of oversized files and reduced quality. + +## Collaborative Experience Check + +### Collaborative Experience Check Results + +**Overall Facilitation Quality:** ⚠️ **NEEDS IMPROVEMENT** + +**Root Cause:** The overly prescriptive instructions (documented in "Instruction Style" section) directly undermine collaborative quality. + +### Step-by-Step Analysis + +**General Assessment Across All Steps:** +- Question style: ❌ Mixed - some progressive, many prescriptive templates +- Conversation flow: ⚠️ Constrained by exact dialogue requirements +- Role clarity: ✅ Present in all steps ("You are a product-focused PM facilitator...") +- Flexibility: ❌ Limited by scripted dialogue + +**Collaborative Strengths Found:** + +✅ **Role Reinforcement:** +- All steps clearly establish the agent as a facilitator +- "We engage in collaborative dialogue, not command-response" +- "Together we produce something better" + +✅ **Progress Indicators:** +- "Progress: Step X of Y" shown in most steps +- User knows where they are in the process + +✅ **Some Intent-Based Language:** +- "Guide user to..." (good intention) +- "Probe to understand..." (good facilitation) +- "Use conversation, not interrogation" (stated principle) + +**Collaborative Issues Found:** + +❌ **Scripted Dialogue Undermines Collaboration:** + +Because of the exact dialogue requirements (see Instruction Style section), the workflow suffers: + +1. **No Adaptation to User:** + - Agent must say prescribed phrases + - Can't follow user's natural conversation flow + - Feels like reading a script, not collaborating + +2. **Reduced Facilitation Quality:** + - "I've drafted our success criteria..." (announcement, not facilitation) + - "Looking at your product brief..." (template opening, not responsive) + - "What would you like to do?" (canned options, not open facilitation) + +3. **Formulaic Interactions:** + - Each step follows exact dialogue pattern + - User experience becomes predictable in a bad way + - No room for spontaneous collaboration + +**User Experience Assessment:** + +**Would this workflow feel like:** +- [ ] A collaborative partner working WITH the user +- [✓] A form collecting data FROM the user (due to prescriptive templates) +- [ ] An interrogation extracting information +- [✓] A mix - depends on step (some facilitation intent, but scripted delivery) + +**Specific Issues by Step Type:** + +**Init Steps (01, 01b):** +- ⚠️ Have setup report templates (necessary for initialization) +- ⚠️ Mix of facilitation and scripted announcements +- Status: ⚠️ Acceptable for init, but could be more flexible + +**Middle Steps (02-10):** +- ❌ Heavy use of prescribed dialogue +- ❌ "I've drafted...", "I've mapped...", "I've defined..." (announcements) +- ❌ Menu options are canned phrases +- Status: ❌ Needs significant improvement + +**Final Step (11):** +- ⚠️ Completion messages are appropriate +- Status: ⚠️ Acceptable for final step + +**Progression and Arc:** +- ✅ Clear progression from step to step +- ✅ Each step builds on previous work +- ✅ User knows where they are +- ✅ Satisfying completion at end +- Status: ✅ GOOD + +**Relationship to Other Issues:** + +The collaborative experience issues are **directly caused by** the prescriptive instruction style problem: + +``` +Prescriptive Instructions → Scripted Dialogue → Poor Collaboration +``` + +**Fix the prescriptive instructions, and collaboration will improve dramatically.** + +### Overall Collaborative Rating + +⭐⭐⭐☆☆ (3/5 stars) + +**Breakdown:** +- Process design: ⭐⭐⭐⭐☆ (4/5) - Good structure and progression +- Facilitation intent: ⭐⭐⭐☆☆ (3/5) - Good intent, poor execution +- Actual experience: ⭐⭐☆☆☆ (2/5) - Scripted dialogue undermines collaboration +- Role clarity: ⭐⭐⭐⭐⭐ (5/5) - Excellent role establishment + +**Status:** ⚠️ **NEEDS IMPROVEMENT** - Good foundation, but prescriptive instructions prevent true collaboration. Fix instruction style to dramatically improve collaborative experience. + +## Cohesive Review + +### Cohesive Review Results + +**Overall Assessment:** ⚠️ **NEEDS WORK** - Has critical issues that must be addressed + +### Quality Ratings + +| Aspect | Rating | Notes | +|--------|--------|-------| +| Clear Goal | ⭐⭐⭐⭐⭐ | Excellent - create comprehensive PRD through collaboration | +| Logical Flow | ⭐⭐⭐⭐☆ | Good progression, one broken link (step-02 wrong path) | +| Facilitation Quality | ⭐⭐☆☆☆ | Poor - overly prescriptive undermines facilitation | +| User Experience | ⭐⭐☆☆☆ | Poor - feels scripted, not collaborative | +| Goal Achievement | ⭐⭐⭐☆☆ | Moderate - would create PRD but quality suffers | +| **Overall Quality** | **⭐⭐⭐☆☆** | **Good foundation, critical execution issues** | + +### Cohesiveness Analysis + +**Flow Assessment:** +- ✅ Overall flow is logical: Discovery → Success → Journeys → Domain → Innovation → Project Type → Scoping → Functional → Non-functional → Complete +- ❌ **CRITICAL BREAK:** step-02-discovery.md has wrong nextStepFile path (points to non-existent step-02b-vision.md) +- ✅ Otherwise each step connects properly to the next +- ⚠️ Some optional steps (05-domain, 06-innovation) may need better gating + +**Progression Assessment:** +- ✅ Clear arc: Start with vision → Define success → Map users → Deep dives → Requirements → Complete +- ✅ User always knows where they are (Progress indicators present) +- ✅ Each step builds on previous work +- ✅ Satisfying completion at end + +**Voice and Tone:** +- ✅ Consistent PM facilitator persona throughout +- ✅ "We're in this together" messaging present +- ❌ BUT: Voice is undermined by prescriptive dialogue (see Instruction Style section) + +### Strengths + +1. **Excellent Structure and Process Design:** + - 11-step process makes sense for PRD creation + - Proper progression from vision to requirements + - Good balance of strategic and tactical steps + - Appropriate use of continuation (01b) for multi-session workflows + +2. **Strong Role Clarity:** + - "Product-focused PM facilitator" clearly established + - "Collaborative dialogue, not command-response" reinforced throughout + - "Together we produce something better" philosophy + +3. **Proper Technical Implementation:** + - All step types correctly implemented (Init, Continuation, Middle, Final) + - Proper use of frontmatter variables + - Correct step-to-output mapping + - Appropriate template structure (free-form with progressive append) + +4. **Good Input Discovery:** + - Step-01 properly discovers and loads context documents + - Tracks inputDocuments in frontmatter + - Distinguishes greenfield vs brownfield projects + +5. **Appropriate Workflow Type:** + - Correctly identified as continuable document creation workflow + - Uses free-form template (appropriate for PRD) + - Has proper continuation logic + +### Weaknesses + +1. **❌ CRITICAL: Overly Prescriptive Instructions (PRIMARY ISSUE):** + - Affects 8/12 steps severely + - Inflates file sizes (primary cause of 8 files exceeding 250-line limit) + - Undermines collaborative quality + - Makes agent feel robotic and scripted + - **Impact:** This is the root cause of most other issues + +2. **❌ CRITICAL: Wrong Menu Pattern (7 steps):** + - Uses redundant "COLLABORATION MENUS" and "PROTOCOL INTEGRATION" sections + - Should use standard BMAD menu pattern + - Missing "#### EXECUTION RULES:" sections with halt/wait instructions + - **Impact:** Bloated files, harder to follow, non-compliant + +3. **❌ CRITICAL: Frontmatter Violations (3 steps):** + - step-01b-continue.md: Unused workflowFile variable + forbidden {workflow_path} + - step-02-discovery.md: Wrong nextStepFile (breaks workflow execution) + - step-05-domain.md: **SYNTAX ERROR** - missing opening quote in YAML + - **Impact:** Workflow will break, won't execute properly + +4. **⚠️ Missing Document Polish Step:** + - Free-form workflow would benefit from full document optimization + - Step-11 has quality checks but no flow/coherence optimization + - **Impact:** Final document may have duplication and flow issues + +### Critical Issues (Show-Stoppers) + +1. **step-02-discovery.md:** + - `nextStepFile: './step-02b-vision.md'` - This file doesn't exist! + - **Workflow will BREAK when trying to load step 3** + +2. **step-05-domain.md:** + - Line 10: `domainComplexityCSV: ../data/domain-complexity.csv'` + - **SYNTAX ERROR** - Missing opening quote breaks YAML parsing + - **Frontmatter won't load, step will fail** + +3. **File Size Crisis:** + - 8/12 files exceed 250-line absolute maximum + - Primary cause: Prescriptive dialogue + wrong menu pattern + - **Impact:** Files are unmaintainable, quality suffers + +### What Makes This Work Well + +The **process design is excellent**: +- Right steps in right order for PRD creation +- Proper technical architecture (continuation, templates, frontmatter) +- Good understanding of BMAD workflow patterns +- Clear role and facilitation intent + +**If prescriptive instructions were fixed,** this would be a ⭐⭐⭐⭐☆ (4/5 star) workflow. + +### What Could Be Improved + +**Priority 1 (CRITICAL - Must Fix):** +1. Fix step-02-discovery.md nextStepFile path +2. Fix step-05-domain.md syntax error +3. Fix step-01b-continue.md frontmatter violations +4. Replace all prescriptive dialogue with intent-based instructions (8 steps) +5. Convert menu patterns to standard BMAD format (7 steps) + +**Priority 2 (HIGH - Should Fix):** +6. Add document polish logic to step-11 or create separate polish step +7. Reduce file sizes by 30-50% through above fixes + +**Priority 3 (MEDIUM - Nice to Have):** +8. Add better gating for optional steps (05-domain, 06-innovation) +9. Consider if step-02 should be split back into discovery + vision (if that was the original design) + +### User Experience Forecast + +**How would a user experience this workflow?** + +**Currently (with issues):** +- ❌ Would feel like agent is reading a script +- ❌ Conversations would feel formulaic and repetitive +- ❌ Agent can't adapt to user's actual needs +- ❌ Workflow breaks at step-03 (won't load) +- ✅ Process structure is clear and logical +- ✅ Progress indicators keep user informed + +**After fixes (prescriptive → intent-based):** +- ✅ Would feel like genuine collaboration +- ✅ Agent adapts to conversation naturally +- ✅ Flexible and responsive facilitation +- ✅ Proper workflow execution +- ✅ Clear process and progress +- ✅ High-quality PRD output + +### Recommendation + +**⚠️ NEEDS REVISION** - Major rework needed + +**Specific Assessment:** +- Process design: EXCELLENT (don't change the flow) +- Technical implementation: GOOD (fix the 3 critical bugs) +- Instruction quality: POOR (must rewrite to intent-based) +- Menu structure: POOR (must convert to standard pattern) +- File size: POOR (will automatically fix with above) + +**Fix Priority Order:** +1. Fix the 3 critical frontmatter/syntax issues (30 minutes) +2. Convert 7 steps to standard menu pattern (2-3 hours) +3. Rewrite prescriptive instructions to intent-based (4-6 hours) +4. Add document polish step (1 hour) + +**Total Effort Estimate:** 8-11 hours of focused work + +**After fixes, this would be:** ⭐⭐⭐⭐☆ (4/5 stars) - Excellent workflow + +**Status:** ⚠️ **NEEDS WORK** - Critical issues must be addressed before use + +## Summary + +### Overall Validation Status + +**Workflow:** PRD (Product Requirements Document) +**Location:** `/Users/brianmadison/dev/BMAD-METHOD/src/modules/bmm/workflows/2-plan-workflows/prd` +**Validation Date:** 2026-01-08 +**Overall Status:** ❌ **NEEDS REVISION** - Critical issues must be addressed + +--- + +### Executive Summary + +The PRD workflow has an **excellent foundation** with proper process design, technical architecture, and role clarity. However, it suffers from **critical execution issues** that will prevent it from working properly and significantly reduce quality: + +**Good News:** +- ✅ Process structure is well-designed +- ✅ Technical implementation is mostly correct +- ✅ Clear role and facilitation philosophy +- ✅ Proper use of BMAD workflow patterns + +**Bad News:** +- ❌ 3 critical bugs that break workflow execution +- ❌ 8/12 steps use overly prescriptive instructions (root cause of file size and quality issues) +- ❌ 7/12 steps use wrong menu pattern (non-compliant, bloated) +- ❌ 8/12 files exceed 250-line limit (unmaintainable) + +--- + +### Critical Issues (Must Fix Before Use) + +**1. Workflow Breaking Bugs (3 issues - FIX IMMEDIATELY):** + +| File | Issue | Impact | Fix Time | +|------|-------|--------|----------| +| step-02-discovery.md | Wrong `nextStepFile: './step-02b-vision.md'` | ❌ Workflow breaks at step 3 | 2 minutes | +| step-05-domain.md | Syntax error - missing opening quote | ❌ Frontmatter won't parse | 1 minute | +| step-01b-continue.md | Unused `workflowFile` variable + forbidden `{workflow_path}` | ⚠️ Non-compliant | 2 minutes | + +**Total Bug Fix Time:** ~5 minutes + +**2. Instruction Style Crisis (8 steps - HIGH PRIORITY):** + +**Problem:** Steps specify exact dialogue instead of intent-based facilitation + +**Affected Files:** +- step-03-success.md +- step-04-journeys.md +- step-05-domain.md +- step-06-innovation.md +- step-07-project-type.md +- step-08-scoping.md +- step-09-functional.md +- step-10-nonfunctional.md + +**Impact:** +- Makes files 30-50% larger than necessary +- Agent feels robotic and scripted +- No flexibility for natural conversation +- Poor user experience + +**Fix:** Rewrite prescriptive dialogue as intent-based instructions + +**Estimated Time:** 4-6 hours + +**3. Menu Pattern Violations (7 steps - HIGH PRIORITY):** + +**Problem:** Using non-standard "COLLABORATION MENUS" + "PROTOCOL INTEGRATION" instead of standard BMAD menu structure + +**Affected Files:** Same 8 files as above (plus step-02) + +**Required Change:** +```markdown +## REMOVE THESE: +## COLLABORATION MENUS (A/P/C): +## PROTOCOL INTEGRATION: + +## REPLACE WITH: +### N. Present MENU OPTIONS +Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue" + +#### Menu Handling Logic: +- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu +- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu +- IF C: Save content to {outputFile}, update frontmatter, then load, read entire file, then execute {nextStepFile} +- IF Any other: help user, then [Redisplay Menu Options](#n-present-menu-options) + +#### EXECUTION RULES: +- ALWAYS halt and wait for user input after presenting menu +- ONLY proceed to next step when user selects 'C' +- After other menu items execution, return to this menu +``` + +**Estimated Time:** 2-3 hours + +--- + +### File Size Issues + +**Current State:** +- 4/12 files within limits ✅ +- 8/12 files exceed 250-line maximum ❌ + +**Root Cause:** Prescriptive dialogue + wrong menu pattern (not content volume) + +**Solution:** Fix issues #2 and #3 above → file sizes will automatically reduce by 30-50% + +**Projected After Fixes:** +- All 12/12 files within 200-line recommended limit ✅ +- No files exceed 250-line absolute maximum ✅ + +--- + +### Validation Results by Section + +| Section | Status | Files Affected | Priority | +|---------|--------|----------------|----------| +| File Structure & Size | ⚠️ WARN | 8/12 oversized | Medium | +| Frontmatter Validation | ❌ FAIL | 3/12 critical bugs | **CRITICAL** | +| Menu Handling Validation | ❌ FAIL | 7/12 wrong pattern | **HIGH** | +| Step Type Validation | ✅ PASS | All correct | N/A | +| Output Format Validation | ⚠️ WARN | Missing polish | Low | +| Validation Design Check | ✅ PASS | N/A (not required) | N/A | +| Instruction Style Check | ❌ FAIL | 8/12 prescriptive | **HIGH** | +| Collaborative Experience Check | ⚠️ NEEDS IMPROVEMENT | All (root cause) | **HIGH** | +| Cohesive Review | ⚠️ NEEDS WORK | Overall | **HIGH** | + +--- + +### Detailed Fix Checklist + +**Phase 1: Critical Bugs (5 minutes)** +- [ ] Fix step-02-discovery.md: Change `nextStepFile: './step-02b-vision.md'` to `nextStepFile: './step-03-success.md'` +- [ ] Fix step-05-domain.md: Add missing opening quote to `domainComplexityCSV` value +- [ ] Fix step-01b-continue.md: Remove unused `workflowFile` variable + +**Phase 2: Menu Pattern Conversion (2-3 hours)** +For each of 7 files (step-03, 04, 06, 07, 08, 09, 10): +- [ ] Remove "## COLLABORATION MENUS (A/P/C):" section +- [ ] Remove "## PROTOCOL INTEGRATION:" section +- [ ] Replace with "### N. Present MENU OPTIONS" + Display + Handler + EXECUTION RULES +- [ ] Test menu structure matches BMAD standard + +**Phase 3: Instruction Style Rewrite (4-6 hours)** +For each of 8 files (same as Phase 2): +- [ ] Identify all prescriptive dialogue blocks +- [ ] Rewrite as intent-based instructions +- [ ] Remove exact "say this" language +- [ ] Replace with facilitation guidance +- [ ] Verify reduction in line count (target: <200 lines) + +**Phase 4: Polish Enhancement (1 hour)** +- [ ] Add document optimization logic to step-11-complete.md OR create new step-10b-polish.md +- [ ] Include: Load entire doc → Review flow → Remove duplication → Ensure ## Level 2 headers → Improve transitions + +--- + +### Final Recommendation + +**Before This Workflow Can Be Used:** + +1. ✅ **FIX THE 3 CRITICAL BUGS** (5 minutes) - Workflow won't run otherwise +2. ✅ **CONVERT MENUS TO STANDARD PATTERN** (2-3 hours) - Required for BMAD compliance +3. ✅ **REWRITE PRESCRIPTIVE INSTRUCTIONS** (4-6 hours) - Required for quality + +**After Critical Fixes:** + +This workflow has excellent process design and will be ⭐⭐⭐⭐☆ (4/5 stars) after fixes. + +**Total Effort Required:** 8-11 hours of focused work + +**Effort Breakdown:** +- Critical bugs: 5 minutes +- Menu pattern fixes: 2-3 hours +- Instruction style rewrite: 4-6 hours +- Document polish enhancement: 1 hour + +--- + +### Conclusion + +The PRD workflow has a **solid foundation** but suffers from **systematic execution issues** that stem from two root causes: + +1. **Overly prescriptive instructions** - Makes files bloated and quality poor +2. **Wrong menu pattern** - Makes files non-compliant and harder to follow + +**Good news:** These are fixable process issues, not fundamental design flaws. The workflow structure, progression, and technical architecture are all sound. + +**Bottom line:** This workflow needs significant revision before use, but the fixes are straightforward and the result will be excellent. + +--- + +**Report Generated:** 2026-01-08 +**Validator:** BMAD Workflow Validation System +**Next Review:** After fixes are applied diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md b/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md index ef0ed5239..a5b9d77f3 100644 --- a/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +++ b/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md @@ -2,6 +2,7 @@ name: create-prd description: Creates a comprehensive PRD through collaborative step-by-step discovery between two product managers working as peers. main_config: '{project-root}/_bmad/bmm/config.yaml' +nextStep: './steps-c/step-01-init.md' web_bundle: true --- @@ -59,5 +60,5 @@ Load and read full config from {main_config} and resolve: ### 2. First Step EXECUTION -YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`. -Load, read the full file and then execute `steps/step-01-init.md` to begin the workflow. +YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the configured `{communication_language}`. +Load, read the full file and then execute `{nextStep}` to begin the workflow. diff --git a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md index 5199316dd..c9270cc7e 100644 --- a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +++ b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md @@ -6,8 +6,8 @@ description: 'Discover and inventory all project documents, handling duplicates workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/implementation-readiness' # File References -thisStepFile: '{workflow_path}/steps/step-01-document-discovery.md' -nextStepFile: '{workflow_path}/steps/step-02-prd-analysis.md' +thisStepFile: './step-01-document-discovery.md' +nextStepFile: './step-02-prd-analysis.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/implementation-readiness-report-{{date}}.md' templateFile: '{workflow_path}/templates/readiness-report-template.md' diff --git a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md index 4dafeccab..5dd08705a 100644 --- a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +++ b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md @@ -6,8 +6,8 @@ description: 'Read and analyze PRD to extract all FRs and NFRs for coverage vali workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/implementation-readiness' # File References -thisStepFile: '{workflow_path}/steps/step-02-prd-analysis.md' -nextStepFile: '{workflow_path}/steps/step-03-epic-coverage-validation.md' +thisStepFile: './step-02-prd-analysis.md' +nextStepFile: './step-03-epic-coverage-validation.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/implementation-readiness-report-{{date}}.md' epicsFile: '{planning_artifacts}/*epic*.md' # Will be resolved to actual file diff --git a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md index f11228e14..981a5b63a 100644 --- a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +++ b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md @@ -6,8 +6,8 @@ description: 'Validate that all PRD FRs are covered in epics and stories' workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/implementation-readiness' # File References -thisStepFile: '{workflow_path}/steps/step-03-epic-coverage-validation.md' -nextStepFile: '{workflow_path}/steps/step-04-ux-alignment.md' +thisStepFile: './step-03-epic-coverage-validation.md' +nextStepFile: './step-04-ux-alignment.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/implementation-readiness-report-{{date}}.md' --- diff --git a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md index e26190f22..33aad045d 100644 --- a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +++ b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md @@ -6,8 +6,8 @@ description: 'Check for UX document and validate alignment with PRD and Architec workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/implementation-readiness' # File References -thisStepFile: '{workflow_path}/steps/step-04-ux-alignment.md' -nextStepFile: '{workflow_path}/steps/step-05-epic-quality-review.md' +thisStepFile: './step-04-ux-alignment.md' +nextStepFile: './step-05-epic-quality-review.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/implementation-readiness-report-{{date}}.md' --- diff --git a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md index 59a531d39..0203cdc1a 100644 --- a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +++ b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md @@ -6,8 +6,8 @@ description: 'Validate epics and stories against create-epics-and-stories best p workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/implementation-readiness' # File References -thisStepFile: '{workflow_path}/steps/step-05-epic-quality-review.md' -nextStepFile: '{workflow_path}/steps/step-06-final-assessment.md' +thisStepFile: './step-05-epic-quality-review.md' +nextStepFile: './step-06-final-assessment.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/implementation-readiness-report-{{date}}.md' epicsBestPractices: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories' diff --git a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md index aa78c14fe..9469a2265 100644 --- a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +++ b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md @@ -6,7 +6,7 @@ description: 'Compile final assessment and polish the readiness report' workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/implementation-readiness' # File References -thisStepFile: '{workflow_path}/steps/step-06-final-assessment.md' +thisStepFile: './step-06-final-assessment.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/implementation-readiness-report-{{date}}.md' --- diff --git a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md index ed9b890be..a06276fa4 100644 --- a/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +++ b/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md @@ -52,4 +52,4 @@ Load and read full config from {project-root}/_bmad/bmm/config.yaml and resolve: ### 2. First Step EXECUTION -Load, read the full file and then execute `{workflow_path}/steps/step-01-document-discovery.md` to begin the workflow. +Load, read the full file and then execute `./step-01-document-discovery.md` to begin the workflow. diff --git a/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md b/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md index 641c7081a..ca52d4d2e 100644 --- a/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +++ b/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md @@ -6,8 +6,8 @@ description: 'Validate required documents exist and extract all requirements for workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories' # File References -thisStepFile: '{workflow_path}/steps/step-01-validate-prerequisites.md' -nextStepFile: '{workflow_path}/steps/step-02-design-epics.md' +thisStepFile: './step-01-validate-prerequisites.md' +nextStepFile: './step-02-design-epics.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/epics.md' epicsTemplate: '{workflow_path}/templates/epics-template.md' diff --git a/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md b/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md index 4527f5f3c..65b36627b 100644 --- a/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +++ b/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md @@ -6,8 +6,8 @@ description: 'Design and approve the epics_list that will organize all requireme workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories' # File References -thisStepFile: '{workflow_path}/steps/step-02-design-epics.md' -nextStepFile: '{workflow_path}/steps/step-03-create-stories.md' +thisStepFile: './step-02-design-epics.md' +nextStepFile: './step-03-create-stories.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/epics.md' diff --git a/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md b/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md index 6e560e7c5..3cdb3bf64 100644 --- a/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +++ b/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md @@ -6,8 +6,8 @@ description: 'Generate all epics with their stories following the template struc workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories' # File References -thisStepFile: '{workflow_path}/steps/step-03-create-stories.md' -nextStepFile: '{workflow_path}/steps/step-04-final-validation.md' +thisStepFile: './step-03-create-stories.md' +nextStepFile: './step-04-final-validation.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/epics.md' diff --git a/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md b/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md index 309bef8c9..3df1675bc 100644 --- a/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +++ b/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md @@ -6,7 +6,7 @@ description: 'Validate complete coverage of all requirements and ensure implemen workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories' # File References -thisStepFile: '{workflow_path}/steps/step-04-final-validation.md' +thisStepFile: './step-04-final-validation.md' workflowFile: '{workflow_path}/workflow.md' outputFile: '{planning_artifacts}/epics.md' diff --git a/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-01-understand.md b/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-01-understand.md index 6bff0dca4..c321dcc76 100644 --- a/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-01-understand.md +++ b/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-01-understand.md @@ -3,8 +3,8 @@ name: 'step-01-understand' description: 'Analyze the requirement delta between current state and what user wants to build' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec' -nextStepFile: '{workflow_path}/steps/step-02-investigate.md' -skipToStepFile: '{workflow_path}/steps/step-03-generate.md' +nextStepFile: './step-02-investigate.md' +skipToStepFile: './step-03-generate.md' templateFile: '{workflow_path}/tech-spec-template.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md' --- @@ -59,7 +59,7 @@ a) **Menu Handling:** - Jump directly to the appropriate step based on `stepsCompleted`: - `[1]` → Load `{nextStepFile}` (Step 2) - `[1, 2]` → Load `{skipToStepFile}` (Step 3) - - `[1, 2, 3]` → Load `{workflow_path}/steps/step-04-review.md` (Step 4) + - `[1, 2, 3]` → Load `./step-04-review.md` (Step 4) - **[n] Archive and start fresh:** - Rename `{wipFile}` to `{implementation_artifacts}/tech-spec-{slug}-archived-{date}.md` diff --git a/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-02-investigate.md b/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-02-investigate.md index b62f6bfe2..1cb2ee40a 100644 --- a/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-02-investigate.md +++ b/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-02-investigate.md @@ -3,7 +3,7 @@ name: 'step-02-investigate' description: 'Map technical constraints and anchor points within the codebase' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec' -nextStepFile: '{workflow_path}/steps/step-03-generate.md' +nextStepFile: './step-03-generate.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md' --- diff --git a/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-03-generate.md b/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-03-generate.md index 999951fd3..4a33c7a10 100644 --- a/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-03-generate.md +++ b/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-03-generate.md @@ -3,7 +3,7 @@ name: 'step-03-generate' description: 'Build the implementation plan based on the technical mapping of constraints' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec' -nextStepFile: '{workflow_path}/steps/step-04-review.md' +nextStepFile: './step-04-review.md' wipFile: '{implementation_artifacts}/tech-spec-wip.md' --- diff --git a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md index 2f8d26234..ae5abdbc2 100644 --- a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +++ b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md @@ -3,9 +3,9 @@ name: 'step-01-mode-detection' description: 'Determine execution mode (tech-spec vs direct), handle escalation, set state variables' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev' -thisStepFile: '{workflow_path}/steps/step-01-mode-detection.md' -nextStepFile_modeA: '{workflow_path}/steps/step-03-execute.md' -nextStepFile_modeB: '{workflow_path}/steps/step-02-context-gathering.md' +thisStepFile: './step-01-mode-detection.md' +nextStepFile_modeA: './step-03-execute.md' +nextStepFile_modeB: './step-02-context-gathering.md' --- # Step 1: Mode Detection diff --git a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md index 8e2126bc1..a886b5f52 100644 --- a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +++ b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md @@ -3,8 +3,8 @@ name: 'step-02-context-gathering' description: 'Quick context gathering for direct mode - identify files, patterns, dependencies' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev' -thisStepFile: '{workflow_path}/steps/step-02-context-gathering.md' -nextStepFile: '{workflow_path}/steps/step-03-execute.md' +thisStepFile: './step-02-context-gathering.md' +nextStepFile: './step-03-execute.md' --- # Step 2: Context Gathering (Direct Mode) diff --git a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md index 1be12b983..f12113cf9 100644 --- a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +++ b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md @@ -3,8 +3,8 @@ name: 'step-03-execute' description: 'Execute implementation - iterate through tasks, write code, run tests' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev' -thisStepFile: '{workflow_path}/steps/step-03-execute.md' -nextStepFile: '{workflow_path}/steps/step-04-self-check.md' +thisStepFile: './step-03-execute.md' +nextStepFile: './step-04-self-check.md' --- # Step 3: Execute Implementation diff --git a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md index c6d931622..6179ebba4 100644 --- a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +++ b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md @@ -3,8 +3,8 @@ name: 'step-04-self-check' description: 'Self-audit implementation against tasks, tests, AC, and patterns' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev' -thisStepFile: '{workflow_path}/steps/step-04-self-check.md' -nextStepFile: '{workflow_path}/steps/step-05-adversarial-review.md' +thisStepFile: './step-04-self-check.md' +nextStepFile: './step-05-adversarial-review.md' --- # Step 4: Self-Check diff --git a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md index 2a366dbd7..db03665f8 100644 --- a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +++ b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md @@ -3,8 +3,8 @@ name: 'step-05-adversarial-review' description: 'Construct diff and invoke adversarial review task' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev' -thisStepFile: '{workflow_path}/steps/step-05-adversarial-review.md' -nextStepFile: '{workflow_path}/steps/step-06-resolve-findings.md' +thisStepFile: './step-05-adversarial-review.md' +nextStepFile: './step-06-resolve-findings.md' --- # Step 5: Adversarial Code Review diff --git a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md index f6af4697c..fcc5146ed 100644 --- a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +++ b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md @@ -3,7 +3,7 @@ name: 'step-06-resolve-findings' description: 'Handle review findings interactively, apply fixes, update tech-spec with final status' workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev' -thisStepFile: '{workflow_path}/steps/step-06-resolve-findings.md' +thisStepFile: './step-06-resolve-findings.md' --- # Step 6: Resolve Findings