diff --git a/src/modules/bmgd/module.yaml b/src/modules/bmgd/module.yaml
index 22d61813..2b08570d 100644
--- a/src/modules/bmgd/module.yaml
+++ b/src/modules/bmgd/module.yaml
@@ -31,7 +31,7 @@ game_dev_experience:
planning_artifacts:
prompt: "Where should game planning artifacts be stored?\n(Game Briefs, GDDs, Narrative Designs, Architecture docs)"
- default: "{output_folder}/game-planning-artifacts"
+ default: "{output_folder}/planning-artifacts"
result: "{project-root}/{value}"
implementation_artifacts:
diff --git a/src/modules/bmm/_module-installer/installer.js b/src/modules/bmm/_module-installer/installer.js
index dff6a7f7..ddf757b0 100644
--- a/src/modules/bmm/_module-installer/installer.js
+++ b/src/modules/bmm/_module-installer/installer.js
@@ -20,40 +20,8 @@ async function install(options) {
try {
logger.log(chalk.blue('🚀 Installing BMM Module...'));
- // Check and create tech_docs directory if configured
- if (config['tech_docs']) {
- // Strip {project-root}/ prefix if present
- const techDocsConfig = config['tech_docs'].replace('{project-root}/', '');
- const techDocsPath = path.join(projectRoot, techDocsConfig);
-
- if (await fs.pathExists(techDocsPath)) {
- // Check if template exists, add if missing
- const templateDest = path.join(techDocsPath, 'technical-decisions-template.md');
- if (!(await fs.pathExists(templateDest))) {
- const templateSource = path.join(__dirname, 'assets', 'technical-decisions-template.md');
- if (await fs.pathExists(templateSource)) {
- await fs.copy(templateSource, templateDest);
- logger.log(chalk.green('✓ Added technical decisions template to existing directory'));
- }
- }
- } else {
- logger.log(chalk.yellow(`Creating technical documentation directory: ${techDocsConfig}`));
- await fs.ensureDir(techDocsPath);
-
- // Copy technical decisions template
- const templateSource = path.join(__dirname, 'assets', 'technical-decisions-template.md');
- const templateDest = path.join(techDocsPath, 'technical-decisions-template.md');
-
- if (await fs.pathExists(templateSource)) {
- await fs.copy(templateSource, templateDest, { overwrite: false });
- logger.log(chalk.green('✓ Added technical decisions template'));
- }
- }
- }
-
// Create output directory if configured
if (config['output_folder']) {
- // Strip {project-root}/ prefix if present
const outputConfig = config['output_folder'].replace('{project-root}/', '');
const outputPath = path.join(projectRoot, outputConfig);
if (!(await fs.pathExists(outputPath))) {
@@ -62,9 +30,7 @@ async function install(options) {
}
}
- // Create dev story location if configured
if (config['implementation_artifacts']) {
- // Strip {project-root}/ prefix if present
const storyConfig = config['implementation_artifacts'].replace('{project-root}/', '');
const storyPath = path.join(projectRoot, storyConfig);
if (!(await fs.pathExists(storyPath))) {
diff --git a/src/modules/bmm/module.yaml b/src/modules/bmm/module.yaml
index fb3dde71..e6b8dee1 100644
--- a/src/modules/bmm/module.yaml
+++ b/src/modules/bmm/module.yaml
@@ -31,7 +31,7 @@ user_skill_level:
planning_artifacts: # Phase 1-3 artifacts
prompt: "Where should project planning artifacts be stored?\n - Such as: (Brain Storming, Briefs, PRDs, UX Designs, Architectures, Detailed Epics Plan)"
- default: "{output_folder}/project-planning-artifacts"
+ default: "{output_folder}/planning-artifacts"
result: "{project-root}/{value}"
implementation_artifacts: # Phase 4 artifacts and quick-dev flow output
@@ -45,12 +45,12 @@ project_knowledge: # Artifacts from research, document-project output, other lon
result: "{project-root}/{value}"
tea_use_mcp_enhancements:
- prompt: "WEB APP ONLY: Test Architect Playwright MCP capabilities (healing, exploratory, verification) are optionally available.\nYou will have to setup your MCPs yourself; refer to test-architecture.md for hints.\nWould you like to enable MCP enhancements in Test Architect?"
+ prompt: "Test Architect Playwright MCP capabilities (healing, exploratory, verification) are optionally available.\nYou will have to setup your MCPs yourself; refer to test-architecture.md for hints.\nWould you like to enable MCP enhancements in Test Architect?"
default: false
result: "{value}"
tea_use_playwright_utils:
prompt:
- - "WEB APP ONLY: Are you using playwright-utils (@seontechnologies/playwright-utils) in your project?\nYou must install packages yourself, or use test architect's *framework command."
+ - "Are you using playwright-utils (@seontechnologies/playwright-utils) in your project?\nYou must install packages yourself, or use test architect's *framework command."
default: false
result: "{value}"
diff --git a/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md b/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md
index 1db8ecad..9fdbc509 100644
--- a/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md
+++ b/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md
@@ -67,7 +67,7 @@ First, check if the output document already exists:
**Workflow State Detection:**
-- Look for file at `{output_folder}/analysis/*product-brief*.md`
+- Look for file `{outputFile}`
- If exists, read the complete file including frontmatter
- If not exists, this is a fresh workflow
@@ -88,47 +88,33 @@ If no document exists or no `stepsCompleted` in frontmatter:
#### A. Input Document Discovery
-Discover and load context documents using smart discovery:
+load context documents using smart discovery. Documents can be in the following locations:
+- {planning_artifacts}/**
+- {output_folder}/**
+- {product_knowledge}/**
+- docs/**
-**Research Documents (Priority: Sharded → Whole):**
+Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files.
-1. Check for sharded research folder: `{output_folder}/analysis/research/**/*.md`
-2. If folder exists: Load EVERY file in that folder completely
-3. If no folder exists: Try whole file: `{output_folder}/analysis/research/*research*.md`
-4. Add discovered files to `inputDocuments` frontmatter
+Try to discover the following:
+- Brainstorming Reports (`*brainstorming*.md`)
+- Research Documents (`*research*.md`)
+- Project Documentation (generally multiple documents might be found for this in the `{product_knowledge}` or `docs` folder.)
-**Brainstorming Documents (Priority: Sharded → Whole):**
+Confirm what you have found with the user, along with asking if the user wants to provide anything else. Only after this confirmation will you proceed to follow the loading rules
-1. Check for sharded brainstorming folder: `{output_folder}/analysis/*brainstorm*/**/*.md`
-2. If folder exists: Load useful brainstorming files completely
-3. If no folder exists: Try whole file: `{output_folder}/analysis/*brainstorm*.md`
-4. Add discovered files to `inputDocuments` frontmatter
+**Loading Rules:**
-**Project Documentation (Existing Projects):**
-
-1. Look for index file: `{output_folder}/**/index.md`
-2. Load index.md to understand what project files are available
-3. Read available files from index to understand existing project context
-4. Add discovered files to `inputDocuments` frontmatter
+- Load ALL discovered files completely that the user confirmed or provided (no offset/limit)
+- For sharded folders, load ALL files to get complete picture, using the index first to potentially know the potential of each document
+- index.md is a guide to what's relevant whenever available
+- Track all successfully loaded files in frontmatter `inputDocuments` array
#### B. Create Initial Document
**Document Setup:**
-- Copy the template from `{productBriefTemplate}` to `{outputFile}`
-- Initialize frontmatter with proper structure:
-
-```yaml
----
-stepsCompleted: []
-inputDocuments: []
-workflowType: 'product-brief'
-lastStep: 0
-project_name: '{{project_name}}'
-user_name: '{{user_name}}'
-date: '{{date}}'
----
-```
+- Copy the template from `{productBriefTemplate}` to `{outputFile}`, and update the frontmatter fields
#### C. Present Initialization Results
diff --git a/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md b/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md
index e3b3329d..6b54dc50 100644
--- a/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md
+++ b/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md
@@ -1,11 +1,6 @@
---
stepsCompleted: []
inputDocuments: []
-documentCounts:
- briefs: 0
- research: 0
- brainstorming: 0
- projectDocs: 0
workflowType: 'prd'
lastStep: 0
---
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/step-01-init.md
index 11dcd880..72d55c34 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/step-01-init.md
@@ -10,7 +10,8 @@ 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'
-outputFile: '{output_folder}/prd.md'
+outputFile: '{planning_artifacts}/prd.md'
+
# Template References
prdTemplate: '{workflow_path}/prd-template.md'
@@ -51,7 +52,7 @@ Initialize the PRD workflow by detecting continuation state, discovering input d
- 🎯 Show your analysis of current state before taking any action
- 💾 Initialize document structure and update frontmatter appropriately
-- 📖 Set up frontmatter `stepsCompleted: [1]` before loading next step
+- Update frontmatter: add this step name to the end of the steps completed array (it should be the first entry in the steps array since this is step 1)
- 🚫 FORBIDDEN to load next step until user selects 'C' (Continue)
## CONTEXT BOUNDARIES:
@@ -75,7 +76,7 @@ First, check if the output document already exists:
### 2. Handle Continuation (If Document Exists)
-If the document exists and has frontmatter with `stepsCompleted`:
+If the document exists and has frontmatter with `stepsCompleted` BUT `step-11-complete` is NOT in the list, follow the Continuation Protocol since the document is incomplete:
**Continuation Protocol:**
@@ -90,58 +91,26 @@ If no document exists or no `stepsCompleted` in frontmatter:
#### A. Input Document Discovery
-Discover and load context documents using smart discovery.
+Discover and load context documents using smart discovery. Documents can be in the following locations:
+- {planning_artifacts}/**
+- {output_folder}/**
+- {product_knowledge}/**
+- docs/**
-**IMPORTANT: Track document counts as you discover files.**
+Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files.
-Initialize counters:
+Try to discover the following:
+- Product Brief (`*brief*.md`)
+- Research Documents (`/*research*.md`)
+- Project Documentation (generally multiple documents might be found for this in the `{product_knowledge}` or `docs` folder.)
-```
-briefCount = 0
-researchCount = 0
-brainstormingCount = 0
-projectDocsCount = 0
-```
-
-**Product Brief (Priority: Analysis → Main → Sharded → Whole):**
-
-1. Check analysis folder: `{output_folder}/analysis/*brief*.md`
-2. If no analysis files: Try main folder: `{output_folder}/*brief*.md`
-3. If no main files: Check for sharded brief folder: `{output_folder}/*brief*/**/*.md`
-4. If sharded folder exists: Load EVERY file in that folder completely
-5. Add discovered files to `inputDocuments` frontmatter
-6. **Update briefCount with number of files found**
-
-**Research Documents (Priority: Analysis → Main → Sharded → Whole):**
-
-1. Check analysis folder: `{output_folder}/analysis/research/*research*.md`
-2. If no analysis files: Try main folder: `{output_folder}/*research*.md`
-3. If no main files: Check for sharded research folder: `{output_folder}/*research*/**/*.md`
-4. Load useful research files completely
-5. Add discovered files to `inputDocuments` frontmatter
-6. **Update researchCount with number of files found**
-
-**Brainstorming Documents (Priority: Analysis → Main):**
-
-1. Check analysis folder: `{output_folder}/analysis/brainstorming/*brainstorming*.md`
-2. If no analysis files: Try main folder: `{output_folder}/*brainstorming*.md`
-3. Add discovered files to `inputDocuments` frontmatter
-4. **Update brainstormingCount with number of files found**
-
-**Project Documentation (Existing Projects - Brownfield):**
-
-1. Look for index file: `{output_folder}/index.md`
-2. CRITICAL: Load index.md to understand what project files are available
-3. Read available files from index to understand existing project context
-4. This provides essential context for extending existing project with new PRD
-5. Add discovered files to `inputDocuments` frontmatter
-6. **Update projectDocsCount with number of files found (including index.md)**
+Confirm what you have found with the user, along with asking if the user wants to provide anything else. Only after this confirmation will you proceed to follow the loading rules
**Loading Rules:**
-- Load ALL discovered files completely (no offset/limit)
-- For sharded folders, load ALL files to get complete picture
-- For existing projects, use index.md as guide to what's relevant
+- Load ALL discovered files completely that the user confirmed or provided (no offset/limit)
+- For sharded folders, load ALL files to get complete picture, using the index first to potentially know the potential of each document
+- index.md is a guide to what's relevant whenever available
- Track all successfully loaded files in frontmatter `inputDocuments` array
#### B. Create Initial Document
@@ -149,24 +118,7 @@ projectDocsCount = 0
**Document Setup:**
- Copy the template from `{prdTemplate}` to `{outputFile}`
-- Initialize frontmatter with proper structure including document counts:
-
-```yaml
----
-stepsCompleted: []
-inputDocuments: []
-documentCounts:
- briefs: { { briefCount } }
- research: { { researchCount } }
- brainstorming: { { brainstormingCount } }
- projectDocs: { { projectDocsCount } }
-workflowType: 'prd'
-lastStep: 0
-project_name: '{{project_name}}'
-user_name: '{{user_name}}'
-date: '{{date}}'
----
-```
+- Initialize frontmatter with proper structure including inputDocuments array.
#### C. Present Initialization Results
@@ -202,7 +154,7 @@ Display menu after setup report:
#### Menu Handling Logic:
-- IF C: Update frontmatter with `stepsCompleted: [1]`, then load, read entire file, then execute {nextStepFile}
+- IF C: Update frontmatter with `stepsCompleted: [1]`, 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
@@ -225,7 +177,6 @@ ONLY WHEN [C continue option] is selected and [frontmatter properly updated with
- Fresh workflow initialized with template and proper frontmatter
- Input documents discovered and loaded using sharded-first logic
- All discovered files tracked in frontmatter `inputDocuments`
-- **Document counts stored in frontmatter `documentCounts`**
- User clearly informed of brownfield vs greenfield status
- Menu presented and user input handled correctly
- Frontmatter updated with `stepsCompleted: [1]` before proceeding
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/step-01b-continue.md
index bd4dfec6..47859258 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/step-01b-continue.md
@@ -8,7 +8,7 @@ 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: '{output_folder}/prd.md'
+outputFile: '{planning_artifacts}/prd.md'
---
# Step 1B: Workflow Continuation
@@ -41,7 +41,7 @@ Resume the PRD workflow from where it was left off, ensuring smooth continuation
## EXECUTION PROTOCOLS:
- 🎯 Show your analysis of current state before taking action
-- 💾 Keep existing frontmatter `stepsCompleted` values
+- Update frontmatter: add this step name to the end of the steps completed array
- 📖 Only load documents that were already tracked in `inputDocuments`
- 🚫 FORBIDDEN to discover new input documents during continuation
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
index ed16913e..6c8e6f1a 100644
--- 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
@@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd'
thisStepFile: '{workflow_path}/steps/step-02-discovery.md'
nextStepFile: '{workflow_path}/steps/step-03-success.md'
workflowFile: '{workflow_path}/workflow.md'
-outputFile: '{output_folder}/prd.md'
+outputFile: '{planning_artifacts}/prd.md'
# Data Files
projectTypesCSV: '{workflow_path}/project-types.csv'
@@ -64,7 +64,7 @@ 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)**: Save the content to the document and proceed to next step
+- **C (Continue)**: Append and save the content to the `{outputFile}` and proceed to next step
## PROTOCOL INTEGRATION:
@@ -373,7 +373,7 @@ Show the generated content to the user and present:
#### IF C (Continue):
- Append the final content to `{outputFile}`
-- Update frontmatter: `stepsCompleted: [1, 2]`
+- Update frontmatter: add this step name to the end of the steps completed array
- Load `{nextStepFile}`
## CRITICAL STEP COMPLETION NOTE
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/step-03-success.md
index 29ea708c..f124ded0 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/step-03-success.md
@@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd'
thisStepFile: '{workflow_path}/steps/step-03-success.md'
nextStepFile: '{workflow_path}/steps/step-04-journeys.md'
workflowFile: '{workflow_path}/workflow.md'
-outputFile: '{output_folder}/prd.md'
+outputFile: '{planning_artifacts}/prd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
@@ -244,8 +244,8 @@ Show the generated content and present choices:
#### If 'C' (Continue):
-- Append the final content to `{output_folder}/prd.md`
-- Update frontmatter: `stepsCompleted: [1, 2, 3]`
+- Append the final content to `{outputFile}`
+- Update frontmatter: add this step to the end of the steps completed array
- Load `./step-04-journeys.md`
## 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/step-04-journeys.md
index 095480d1..d59a06cd 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/step-04-journeys.md
@@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd'
thisStepFile: '{workflow_path}/steps/step-04-journeys.md'
nextStepFile: '{workflow_path}/steps/step-05-domain.md'
workflowFile: '{workflow_path}/workflow.md'
-outputFile: '{output_folder}/prd.md'
+outputFile: '{planning_artifacts}/prd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
@@ -238,8 +238,8 @@ Show the generated journey content and present choices:
#### If 'C' (Continue):
-- Append the final content to `{output_folder}/prd.md`
-- Update frontmatter: `stepsCompleted: [1, 2, 3, 4]`
+- 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)
## APPEND TO DOCUMENT:
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
index e050af3e..7900dcfa 100644
--- 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
@@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd'
thisStepFile: '{workflow_path}/steps/step-05-domain.md'
nextStepFile: '{workflow_path}/steps/step-06-innovation.md'
workflowFile: '{workflow_path}/workflow.md'
-outputFile: '{output_folder}/prd.md'
+outputFile: '{planning_artifacts}/prd.md'
# Data Files
domainComplexityCSV: '{workflow_path}/domain-complexity.csv'
@@ -223,8 +223,8 @@ Show the generated domain content and present choices:
#### If 'C' (Continue):
-- Append the content to `{output_folder}/prd.md`
-- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5]`
+- 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:
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/step-06-innovation.md
index 709edad2..dbed28b4 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/step-06-innovation.md
@@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd'
thisStepFile: '{workflow_path}/steps/step-06-innovation.md'
nextStepFile: '{workflow_path}/steps/step-07-project-type.md'
workflowFile: '{workflow_path}/workflow.md'
-outputFile: '{output_folder}/prd.md'
+outputFile: '{planning_artifacts}/prd.md'
# Data Files
projectTypesCSV: '{workflow_path}/project-types.csv'
@@ -202,8 +202,8 @@ Show the generated innovation content and present choices:
#### If 'C' (Continue):
-- Append the final content to `{output_folder}/prd.md`
-- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6]`
+- 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`
## NO INNOVATION DETECTED:
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/step-07-project-type.md
index adca0967..6ba603fc 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/step-07-project-type.md
@@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd'
thisStepFile: '{workflow_path}/steps/step-07-project-type.md'
nextStepFile: '{workflow_path}/steps/step-08-scoping.md'
workflowFile: '{workflow_path}/workflow.md'
-outputFile: '{output_folder}/prd.md'
+outputFile: '{planning_artifacts}/prd.md'
# Data Files
projectTypesCSV: '{workflow_path}/project-types.csv'
@@ -198,8 +198,8 @@ Show the generated project-type content and present choices:
#### If 'C' (Continue):
-- Append the final content to `{output_folder}/prd.md`
-- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]`
+- 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`
## APPEND TO DOCUMENT:
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/step-08-scoping.md
index ca03d214..db9ac59f 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/step-08-scoping.md
@@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd'
thisStepFile: '{workflow_path}/steps/step-08-scoping.md'
nextStepFile: '{workflow_path}/steps/step-09-functional.md'
workflowFile: '{workflow_path}/workflow.md'
-outputFile: '{output_folder}/prd.md'
+outputFile: '{planning_artifacts}/prd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
@@ -259,8 +259,8 @@ Show the scoping decisions and present choices:
#### If 'C' (Continue):
-- Append the final content to `{output_folder}/prd.md`
-- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8]`
+- 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`
## APPEND TO DOCUMENT:
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/step-09-functional.md
index 5d8df8bd..18ce4b9b 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/step-09-functional.md
@@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd'
thisStepFile: '{workflow_path}/steps/step-09-functional.md'
nextStepFile: '{workflow_path}/steps/step-10-nonfunctional.md'
workflowFile: '{workflow_path}/workflow.md'
-outputFile: '{output_folder}/prd.md'
+outputFile: '{planning_artifacts}/prd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
@@ -225,8 +225,8 @@ Show the generated functional requirements and present choices:
#### If 'C' (Continue):
-- Append the final content to `{output_folder}/prd.md`
-- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9]`
+- 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`
## APPEND TO DOCUMENT:
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/step-10-nonfunctional.md
index 4982519f..f4e99792 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/step-10-nonfunctional.md
@@ -9,7 +9,7 @@ workflow_path: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd'
thisStepFile: '{workflow_path}/steps/step-10-nonfunctional.md'
nextStepFile: '{workflow_path}/steps/step-11-complete.md'
workflowFile: '{workflow_path}/workflow.md'
-outputFile: '{output_folder}/prd.md'
+outputFile: '{planning_artifacts}/prd.md'
# Task References
advancedElicitationTask: '{project-root}/_bmad/core/tasks/advanced-elicitation.xml'
@@ -225,8 +225,8 @@ Show the generated NFR content and present choices:
#### If 'C' (Continue):
-- Append the final content to `{output_folder}/prd.md`
-- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`
+- 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`
## APPEND TO DOCUMENT:
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/step-11-complete.md
index f4e6facd..bf8f4830 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/step-11-complete.md
@@ -8,7 +8,7 @@ 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: '{output_folder}/prd.md'
+outputFile: '{planning_artifacts}/prd.md'
---
# Step 11: Workflow Completion
@@ -72,13 +72,13 @@ I've successfully collaborated with you to create a comprehensive Product Requir
- ✅ Comprehensive Functional Requirements (capability contract)
- ✅ Non-Functional Requirements for quality attributes
-**The complete PRD is now available at:** `{output_folder}/prd.md`
+**The complete PRD is now available at:** `{outputFile}`
This document is now ready to guide UX design, technical architecture, and development planning."
### 2. Workflow Status Update
-Update the main workflow status file:
+Update the main workflow status file if there is one:
- Load `{status_file}` from workflow configuration (if exists)
- Update workflow_status["prd"] = "{default_output_file}"
@@ -109,7 +109,6 @@ Provide guidance on logical next workflows:
- UX design and architecture can happen in parallel
- Epics/stories are richer when created after UX/architecture
-- Consider your team's capacity and priorities
**What would be most valuable to tackle next?**
@@ -133,24 +132,8 @@ Perform final validation of the PRD:
### 5. Final Completion Confirmation
-Confirm completion with user:
-"**Your PRD for {{project_name}} is now complete and ready for the next phase!**
-
-The document contains everything needed to guide:
-
-- UX/UI design decisions
-- Technical architecture planning
-- Development prioritization and sprint planning
-
-**Ready to continue with:**
-
-- UX design workflow?
-- Architecture workflow?
-- Epic and story creation?
-
-**Or would you like to review the complete PRD first?**
-
-[Workflow Complete]"
+- Confirm completion with user and summarize what you have done.
+- Update frontmatter: add this final step name to the end of the steps completed array.
## SUCCESS METRICS:
@@ -195,27 +178,6 @@ The document contains everything needed to guide:
- [ ] Workflow status file updated
- [ ] Next steps clearly communicated
-## NEXT STEPS GUIDANCE:
-
-**Immediate Options:**
-
-1. **UX Design** - If product has UI components
-2. **Technical Architecture** - System design and technology choices
-3. **Epic Creation** - Break down FRs into implementable stories
-4. **Review** - Validate PRD with stakeholders before proceeding
-
-**Recommended Sequence:**
-For products with UI: UX → Architecture → Epics
-For API/backend products: Architecture → Epics
-Consider team capacity and timeline constraints
-
-## WORKFLOW FINALIZATION:
-
-- Set `lastStep = 11` in document frontmatter
-- Update workflow status file with completion timestamp
-- Provide completion summary to user
-- Do NOT load any additional steps
-
## FINAL REMINDER:
This workflow is now complete. The PRD serves as the foundation for all subsequent product development activities. All design, architecture, and development work should trace back to the requirements and vision documented in this PRD.
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 07061b8a..ed2b63e0 100644
--- a/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md
+++ b/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md
@@ -52,7 +52,7 @@ This uses **step-file architecture** for disciplined execution:
Load and read full config from {main_config} and resolve:
-- `project_name`, `output_folder`, `user_name`
+- `project_name`, `output_folder`, `planning_artifacts`, `user_name`
- `communication_language`, `document_output_language`, `user_skill_level`
- `date` as system-generated current datetime