Compare commits
46 Commits
e1bc2fd64f
...
a136713dc9
| Author | SHA1 | Date |
|---|---|---|
|
|
a136713dc9 | |
|
|
1dd6668a0d | |
|
|
b42f1e732a | |
|
|
9f8f7f4a3e | |
|
|
6c83482513 | |
|
|
5c24754627 | |
|
|
fe86785dbf | |
|
|
0efe81faec | |
|
|
b1209a97da | |
|
|
73e5552aad | |
|
|
f7cd62acba | |
|
|
9976f06e46 | |
|
|
1338e4852d | |
|
|
6c259bbbc5 | |
|
|
f15b2d129f | |
|
|
f04a1ba8d8 | |
|
|
b9b135573d | |
|
|
709b4e8fc9 | |
|
|
930b5fd7ea | |
|
|
6721904adb | |
|
|
74391d712b | |
|
|
93a808a3d6 | |
|
|
54d097c8ca | |
|
|
fb4d9169a6 | |
|
|
71630bc4e9 | |
|
|
211c7e38c3 | |
|
|
e0a56489f7 | |
|
|
2d78e1d942 | |
|
|
7e6c26cd04 | |
|
|
b3d0810042 | |
|
|
df5c32e0dd | |
|
|
d343fbe55f | |
|
|
b0d4bf7e28 | |
|
|
9471c832d5 | |
|
|
2c23522d87 | |
|
|
089c19d7ab | |
|
|
b9926e1c4a | |
|
|
304ef02427 | |
|
|
122ef9b43c | |
|
|
2b2b9201a7 | |
|
|
516557451a | |
|
|
f3d6ee2cb8 | |
|
|
9d17cee2a8 | |
|
|
f4084ea199 | |
|
|
b93d0087db | |
|
|
6ff29d4707 |
|
|
@ -20,7 +20,7 @@ agent:
|
|||
|
||||
menu:
|
||||
- trigger: CP or fuzzy match on create-prd
|
||||
exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md"
|
||||
exec: "skill:bmad-create-prd"
|
||||
description: "[CP] Create PRD: Expert led facilitation to produce your Product Requirements Document"
|
||||
|
||||
- trigger: VP or fuzzy match on validate-prd
|
||||
|
|
@ -28,7 +28,7 @@ agent:
|
|||
description: "[VP] Validate PRD: Validate a Product Requirements Document is comprehensive, lean, well organized and cohesive"
|
||||
|
||||
- trigger: EP or fuzzy match on edit-prd
|
||||
exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md"
|
||||
exec: "skill:bmad-edit-prd"
|
||||
description: "[EP] Edit PRD: Update an existing Product Requirements Document"
|
||||
|
||||
- trigger: CE or fuzzy match on epics-stories
|
||||
|
|
|
|||
|
|
@ -15,9 +15,9 @@ bmm,1-analysis,Market Research,MR,20,_bmad/bmm/workflows/1-analysis/research/wor
|
|||
bmm,1-analysis,Domain Research,DR,21,skill:bmad-domain-research,bmad-bmm-domain-research,false,analyst,Create Mode,"Industry domain deep dive subject matter expertise and terminology","planning_artifacts|project_knowledge","research documents",
|
||||
bmm,1-analysis,Technical Research,TR,22,skill:bmad-technical-research,bmad-bmm-technical-research,false,analyst,Create Mode,"Technical feasibility architecture options and implementation approaches","planning_artifacts|project_knowledge","research documents",
|
||||
bmm,1-analysis,Create Brief,CB,30,skill:bmad-create-product-brief,bmad-bmm-create-product-brief,false,analyst,Create Mode,"A guided experience to nail down your product idea",planning_artifacts,"product brief",
|
||||
bmm,2-planning,Create PRD,CP,10,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md,bmad-bmm-create-prd,true,pm,Create Mode,"Expert led facilitation to produce your Product Requirements Document",planning_artifacts,prd,
|
||||
bmm,2-planning,Create PRD,CP,10,skill:bmad-create-prd,bmad-bmm-create-prd,true,pm,Create Mode,"Expert led facilitation to produce your Product Requirements Document",planning_artifacts,prd,
|
||||
bmm,2-planning,Validate PRD,VP,20,skill:bmad-validate-prd,bmad-bmm-validate-prd,false,pm,Validate Mode,"Validate PRD is comprehensive lean well organized and cohesive",planning_artifacts,"prd validation report",
|
||||
bmm,2-planning,Edit PRD,EP,25,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md,bmad-bmm-edit-prd,false,pm,Edit Mode,"Improve and enhance an existing PRD",planning_artifacts,"updated prd",
|
||||
bmm,2-planning,Edit PRD,EP,25,skill:bmad-edit-prd,bmad-bmm-edit-prd,false,pm,Edit Mode,"Improve and enhance an existing PRD",planning_artifacts,"updated prd",
|
||||
bmm,2-planning,Create UX,CU,30,skill:bmad-create-ux-design,bmad-bmm-create-ux-design,false,ux-designer,Create Mode,"Guidance through realizing the plan for your UX, strongly recommended if a UI is a primary piece of the proposed project",planning_artifacts,"ux design",
|
||||
bmm,3-solutioning,Create Architecture,CA,10,skill:bmad-create-architecture,bmad-bmm-create-architecture,true,architect,Create Mode,"Guided Workflow to document technical decisions",planning_artifacts,architecture,
|
||||
bmm,3-solutioning,Create Epics and Stories,CE,30,skill:bmad-create-epics-and-stories,bmad-bmm-create-epics-and-stories,true,pm,Create Mode,"Create the Epics and Stories Listing",planning_artifacts,"epics and stories",
|
||||
|
|
|
|||
|
|
|
@ -1,8 +1,8 @@
|
|||
---
|
||||
stepsCompleted: []
|
||||
inputDocuments: []
|
||||
date: { system-date }
|
||||
author: { user }
|
||||
date: {{system-date}}
|
||||
author: {{user_name}}
|
||||
---
|
||||
|
||||
# Product Brief: {{project_name}}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,6 @@
|
|||
---
|
||||
name: 'step-01-init'
|
||||
description: 'Initialize the product brief workflow by detecting continuation state and setting up the document'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-02-vision.md'
|
||||
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
||||
|
||||
# Template References
|
||||
productBriefTemplate: '../product-brief.template.md'
|
||||
---
|
||||
|
||||
# Step 1: Product Brief Initialization
|
||||
|
|
@ -88,7 +81,7 @@ load context documents using smart discovery. Documents can be in the following
|
|||
- {planning_artifacts}/**
|
||||
- {output_folder}/**
|
||||
- {product_knowledge}/**
|
||||
- docs/**
|
||||
- {project-root}/docs/**
|
||||
|
||||
Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content)
|
||||
|
||||
|
|
@ -112,7 +105,7 @@ Try to discover the following:
|
|||
|
||||
**Document Setup:**
|
||||
|
||||
- Copy the template from `{productBriefTemplate}` to `{outputFile}`, and update the frontmatter fields
|
||||
- Copy the template from `../product-brief.template.md` to `{outputFile}`, and update the frontmatter fields
|
||||
|
||||
#### C. Present Initialization Results
|
||||
|
||||
|
|
@ -141,7 +134,7 @@ Display: "**Proceeding to product vision discovery...**"
|
|||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- After setup report is presented, without delay, read fully and follow: {nextStepFile}
|
||||
- After setup report is presented, without delay, read fully and follow: ./step-02-vision.md
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
|
|
@ -150,7 +143,7 @@ Display: "**Proceeding to product vision discovery...**"
|
|||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [setup completion is achieved and frontmatter properly updated], will you then read fully and follow: `{nextStepFile}` to begin product vision discovery.
|
||||
ONLY WHEN [setup completion is achieved and frontmatter properly updated], will you then read fully and follow: `./step-02-vision.md` to begin product vision discovery.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
---
|
||||
name: 'step-01b-continue'
|
||||
description: 'Resume the product brief workflow from where it was left off, ensuring smooth continuation'
|
||||
|
||||
# File References
|
||||
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
||||
---
|
||||
|
|
|
|||
|
|
@ -1,9 +1,5 @@
|
|||
---
|
||||
name: 'step-02-vision'
|
||||
description: 'Discover and define the core product vision, problem statement, and unique value proposition'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-03-users.md'
|
||||
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
||||
|
||||
# Task References
|
||||
|
|
@ -159,7 +155,7 @@ Prepare the following structure for document append:
|
|||
|
||||
- IF A: Read fully and follow: {advancedElicitationTask} with current vision content to dive deeper and refine
|
||||
- IF P: Read fully and follow: {partyModeWorkflow} to bring different perspectives to positioning and differentiation
|
||||
- IF C: Save content to {outputFile}, update frontmatter with stepsCompleted: [1, 2], then read fully and follow: {nextStepFile}
|
||||
- IF C: Save content to {outputFile}, update frontmatter with stepsCompleted: [1, 2], then read fully and follow: ./step-03-users.md
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -171,7 +167,7 @@ Prepare the following structure for document append:
|
|||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [vision content finalized and saved to document with frontmatter updated], will you then read fully and follow: `{nextStepFile}` to begin target user discovery.
|
||||
ONLY WHEN [C continue option] is selected and [vision content finalized and saved to document with frontmatter updated], will you then read fully and follow: `./step-03-users.md` to begin target user discovery.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,5 @@
|
|||
---
|
||||
name: 'step-03-users'
|
||||
description: 'Define target users with rich personas and map their key interactions with the product'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-04-metrics.md'
|
||||
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
||||
|
||||
# Task References
|
||||
|
|
@ -162,7 +158,7 @@ Prepare the following structure for document append:
|
|||
|
||||
- IF A: Read fully and follow: {advancedElicitationTask} with current user content to dive deeper into personas and journeys
|
||||
- IF P: Read fully and follow: {partyModeWorkflow} to bring different perspectives to validate user understanding
|
||||
- IF C: Save content to {outputFile}, update frontmatter with stepsCompleted: [1, 2, 3], then read fully and follow: {nextStepFile}
|
||||
- IF C: Save content to {outputFile}, update frontmatter with stepsCompleted: [1, 2, 3], then read fully and follow: ./step-04-metrics.md
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -174,7 +170,7 @@ Prepare the following structure for document append:
|
|||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [user personas finalized and saved to document with frontmatter updated], will you then read fully and follow: `{nextStepFile}` to begin success metrics definition.
|
||||
ONLY WHEN [C continue option] is selected and [user personas finalized and saved to document with frontmatter updated], will you then read fully and follow: `./step-04-metrics.md` to begin success metrics definition.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,5 @@
|
|||
---
|
||||
name: 'step-04-metrics'
|
||||
description: 'Define comprehensive success metrics that include user success, business objectives, and key performance indicators'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-05-scope.md'
|
||||
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
||||
|
||||
# Task References
|
||||
|
|
@ -165,7 +161,7 @@ Prepare the following structure for document append:
|
|||
|
||||
- IF A: Read fully and follow: {advancedElicitationTask} with current metrics content to dive deeper into success metric insights
|
||||
- IF P: Read fully and follow: {partyModeWorkflow} to bring different perspectives to validate comprehensive metrics
|
||||
- IF C: Save content to {outputFile}, update frontmatter with stepsCompleted: [1, 2, 3, 4], then read fully and follow: {nextStepFile}
|
||||
- IF C: Save content to {outputFile}, update frontmatter with stepsCompleted: [1, 2, 3, 4], then read fully and follow: ./step-05-scope.md
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -177,7 +173,7 @@ Prepare the following structure for document append:
|
|||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [success metrics finalized and saved to document with frontmatter updated], will you then read fully and follow: `{nextStepFile}` to begin MVP scope definition.
|
||||
ONLY WHEN [C continue option] is selected and [success metrics finalized and saved to document with frontmatter updated], will you then read fully and follow: `./step-05-scope.md` to begin MVP scope definition.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,5 @@
|
|||
---
|
||||
name: 'step-05-scope'
|
||||
description: 'Define MVP scope with clear boundaries and outline future vision while managing scope creep'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-06-complete.md'
|
||||
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
||||
|
||||
# Task References
|
||||
|
|
@ -179,7 +175,7 @@ Prepare the following structure for document append:
|
|||
|
||||
- IF A: Read fully and follow: {advancedElicitationTask} with current scope content to optimize scope definition
|
||||
- IF P: Read fully and follow: {partyModeWorkflow} to bring different perspectives to validate MVP scope
|
||||
- IF C: Save content to {outputFile}, update frontmatter with stepsCompleted: [1, 2, 3, 4, 5], then read fully and follow: {nextStepFile}
|
||||
- IF C: Save content to {outputFile}, update frontmatter with stepsCompleted: [1, 2, 3, 4, 5], then read fully and follow: ./step-06-complete.md
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -191,7 +187,7 @@ Prepare the following structure for document append:
|
|||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [MVP scope finalized and saved to document with frontmatter updated], will you then read fully and follow: `{nextStepFile}` to complete the product brief workflow.
|
||||
ONLY WHEN [C continue option] is selected and [MVP scope finalized and saved to document with frontmatter updated], will you then read fully and follow: `./step-06-complete.md` to complete the product brief workflow.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
---
|
||||
name: 'step-06-complete'
|
||||
description: 'Complete the product brief workflow, update status files, and suggest next steps for the project'
|
||||
|
||||
# File References
|
||||
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
||||
---
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ Discover and load context documents using smart discovery. Documents can be in t
|
|||
- {planning_artifacts}/**
|
||||
- {output_folder}/**
|
||||
- {product_knowledge}/**
|
||||
- docs/**
|
||||
- {project-root}/docs/**
|
||||
|
||||
Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content)
|
||||
|
||||
|
|
@ -80,7 +80,7 @@ Try to discover the following:
|
|||
|
||||
#### B. Create Initial Document
|
||||
|
||||
Copy the template from `{installed_path}/ux-design-template.md` to `{planning_artifacts}/ux-design-specification.md`
|
||||
Copy the template from `../ux-design-template.md` to `{planning_artifacts}/ux-design-specification.md`
|
||||
Initialize frontmatter in the template.
|
||||
|
||||
#### C. Complete Initialization and Report
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ After presenting current progress, ask:
|
|||
If `lastStep` indicates the final step is completed:
|
||||
"Great news! It looks like we've already completed the UX design workflow for {{project_name}}.
|
||||
|
||||
The final UX design specification is ready at {output_folder}/ux-design-specification.md with all sections completed through step {finalStepNumber}.
|
||||
The final UX design specification is ready at {planning_artifacts}/ux-design-specification.md with all sections completed through step {finalStepNumber}.
|
||||
|
||||
The complete UX design includes visual foundations, user flows, and design specifications ready for implementation.
|
||||
|
||||
|
|
|
|||
|
|
@ -75,8 +75,8 @@ This specification is now ready to guide visual design, implementation, and deve
|
|||
|
||||
Update the main workflow status file:
|
||||
|
||||
- Load `{status_file}` from workflow configuration (if exists)
|
||||
- Update workflow_status["create-ux-design"] = "{default_output_file}"
|
||||
- Load the project's workflow status file (if one exists)
|
||||
- Update workflow_status["create-ux-design"] = `{planning_artifacts}/ux-design-specification.md`
|
||||
- Save file, preserving all comments and structure
|
||||
- Mark current timestamp as completion time
|
||||
|
||||
|
|
|
|||
|
|
@ -27,8 +27,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `.`
|
||||
- `template_path` = `{installed_path}/ux-design-template.md`
|
||||
- `default_output_file` = `{planning_artifacts}/ux-design-specification.md`
|
||||
|
||||
## EXECUTION
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
name: bmad-edit-prd
|
||||
description: 'Edit an existing PRD. Use when the user says "edit this PRD".'
|
||||
---
|
||||
|
||||
Follow the instructions in [workflow.md](workflow.md).
|
||||
|
|
@ -0,0 +1 @@
|
|||
type: skill
|
||||
|
|
@ -4,7 +4,7 @@ description: 'Complete & Validate - Present options for next steps including ful
|
|||
|
||||
# File references (ONLY variables used in this step)
|
||||
prdFile: '{prd_file_path}'
|
||||
validationWorkflow: '../steps-v/step-v-01-discovery.md'
|
||||
validationWorkflow: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md'
|
||||
---
|
||||
|
||||
# Step E-4: Complete & Validate
|
||||
|
|
@ -1,6 +1,4 @@
|
|||
---
|
||||
name: edit-prd
|
||||
description: 'Edit an existing PRD. Use when the user says "edit this PRD".'
|
||||
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||
editWorkflow: './steps-e/step-e-01-discovery.md'
|
||||
---
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
workflow-create-prd.md:
|
||||
canonicalId: bmad-create-prd
|
||||
type: workflow
|
||||
description: "Create a PRD from scratch. Use when the user says 'lets create a product requirements document' or 'I want to create a new PRD'"
|
||||
|
||||
workflow-edit-prd.md:
|
||||
canonicalId: bmad-edit-prd
|
||||
type: workflow
|
||||
description: "Edit an existing PRD. Use when the user says 'edit this PRD'"
|
||||
|
|
@ -1,10 +1,5 @@
|
|||
---
|
||||
name: 'step-01-document-discovery'
|
||||
description: 'Discover and inventory all project documents, handling duplicates and organizing file structure'
|
||||
|
||||
nextStepFile: './step-02-prd-analysis.md'
|
||||
outputFile: '{planning_artifacts}/implementation-readiness-report-{{date}}.md'
|
||||
templateFile: '../templates/readiness-report-template.md'
|
||||
---
|
||||
|
||||
# Step 1: Document Discovery
|
||||
|
|
@ -122,7 +117,7 @@ If required documents not found:
|
|||
|
||||
### 5. Add Initial Report Section
|
||||
|
||||
Initialize {outputFile} with {templateFile}.
|
||||
Initialize {outputFile} with ../templates/readiness-report-template.md.
|
||||
|
||||
### 6. Present Findings and Get Confirmation
|
||||
|
||||
|
|
@ -156,12 +151,12 @@ Display: **Select an Option:** [C] Continue to File Validation
|
|||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF C: Save document inventory to {outputFile}, update frontmatter with completed step and files being included, and then read fully and follow: {nextStepFile}
|
||||
- IF C: Save document inventory to {outputFile}, update frontmatter with completed step and files being included, and then read fully and follow: ./step-02-prd-analysis.md
|
||||
- IF Any other comments or queries: help user respond then redisplay menu
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN C is selected and document inventory is saved will you load {nextStepFile} to begin file validation.
|
||||
ONLY WHEN C is selected and document inventory is saved will you load ./step-02-prd-analysis.md to begin file validation.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
---
|
||||
name: 'step-02-prd-analysis'
|
||||
description: 'Read and analyze PRD to extract all FRs and NFRs for coverage validation'
|
||||
|
||||
nextStepFile: './step-03-epic-coverage-validation.md'
|
||||
outputFile: '{planning_artifacts}/implementation-readiness-report-{{date}}.md'
|
||||
epicsFile: '{planning_artifacts}/*epic*.md' # Will be resolved to actual file
|
||||
---
|
||||
|
|
@ -149,7 +145,7 @@ After PRD analysis complete, immediately load next step for epic coverage valida
|
|||
|
||||
## PROCEEDING TO EPIC COVERAGE VALIDATION
|
||||
|
||||
PRD analysis complete. Loading next step to validate epic coverage.
|
||||
PRD analysis complete. Read fully and follow: `./step-03-epic-coverage-validation.md`
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
---
|
||||
name: 'step-03-epic-coverage-validation'
|
||||
description: 'Validate that all PRD FRs are covered in epics and stories'
|
||||
|
||||
nextStepFile: './step-04-ux-alignment.md'
|
||||
outputFile: '{planning_artifacts}/implementation-readiness-report-{{date}}.md'
|
||||
---
|
||||
|
||||
|
|
@ -150,7 +146,7 @@ After coverage validation complete, immediately load next step.
|
|||
|
||||
## PROCEEDING TO UX ALIGNMENT
|
||||
|
||||
Epic coverage validation complete. Loading next step for UX alignment.
|
||||
Epic coverage validation complete. Read fully and follow: `./step-04-ux-alignment.md`
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
---
|
||||
name: 'step-04-ux-alignment'
|
||||
description: 'Check for UX document and validate alignment with PRD and Architecture'
|
||||
|
||||
nextStepFile: './step-05-epic-quality-review.md'
|
||||
outputFile: '{planning_artifacts}/implementation-readiness-report-{{date}}.md'
|
||||
---
|
||||
|
||||
|
|
@ -113,7 +109,7 @@ After UX assessment complete, immediately load next step.
|
|||
|
||||
## PROCEEDING TO EPIC QUALITY REVIEW
|
||||
|
||||
UX alignment assessment complete. Loading next step for epic quality review.
|
||||
UX alignment assessment complete. Read fully and follow: `./step-05-epic-quality-review.md`
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
---
|
||||
name: 'step-05-epic-quality-review'
|
||||
description: 'Validate epics and stories against create-epics-and-stories best practices'
|
||||
|
||||
nextStepFile: './step-06-final-assessment.md'
|
||||
outputFile: '{planning_artifacts}/implementation-readiness-report-{{date}}.md'
|
||||
---
|
||||
|
||||
|
|
@ -217,11 +213,11 @@ After completing epic quality review:
|
|||
- Update {outputFile} with all quality findings
|
||||
- Document specific best practices violations
|
||||
- Provide actionable recommendations
|
||||
- Load {nextStepFile} for final readiness assessment
|
||||
- Load ./step-06-final-assessment.md for final readiness assessment
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
This step executes autonomously. Load {nextStepFile} only after complete epic quality review is documented.
|
||||
This step executes autonomously. Load ./step-06-final-assessment.md only after complete epic quality review is documented.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
---
|
||||
name: 'step-06-final-assessment'
|
||||
description: 'Compile final assessment and polish the readiness report'
|
||||
|
||||
outputFile: '{planning_artifacts}/implementation-readiness-report-{{date}}.md'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -57,8 +57,8 @@ If no document exists or no `stepsCompleted` in frontmatter:
|
|||
Discover and load context documents using smart discovery. Documents can be in the following locations:
|
||||
- {planning_artifacts}/**
|
||||
- {output_folder}/**
|
||||
- {product_knowledge}/**
|
||||
- docs/**
|
||||
- {project_knowledge}/**
|
||||
- {project-root}/docs/**
|
||||
|
||||
Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content)
|
||||
|
||||
|
|
@ -67,7 +67,7 @@ Try to discover the following:
|
|||
- Product Requirements Document (`*prd*.md`)
|
||||
- UX Design (`*ux-design*.md`) and other
|
||||
- Research Documents (`*research*.md`)
|
||||
- Project Documentation (generally multiple documents might be found for this in the `{product_knowledge}` or `docs` folder.)
|
||||
- Project Documentation (generally multiple documents might be found for this in the `{project_knowledge}` or `{project-root}/docs` folder.)
|
||||
- Project Context (`**/project-context.md`)
|
||||
|
||||
<critical>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</critical>
|
||||
|
|
@ -95,7 +95,7 @@ Before proceeding, verify we have the essential inputs:
|
|||
|
||||
#### C. Create Initial Document
|
||||
|
||||
Copy the template from `{installed_path}/architecture-decision-template.md` to `{planning_artifacts}/architecture.md`
|
||||
Copy the template from `../architecture-decision-template.md` to `{planning_artifacts}/architecture.md`
|
||||
|
||||
#### D. Complete Initialization and Report
|
||||
|
||||
|
|
|
|||
|
|
@ -29,12 +29,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
- `date` as system-generated current datetime
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `.`
|
||||
- `template_path` = `{installed_path}/architecture-decision-template.md`
|
||||
- `data_files_path` = `{installed_path}/data/`
|
||||
|
||||
---
|
||||
|
||||
## EXECUTION
|
||||
|
|
|
|||
|
|
@ -1,8 +1,3 @@
|
|||
---
|
||||
name: 'step-01-validate-prerequisites'
|
||||
description: 'Validate required documents exist and extract all requirements for epic and story creation'
|
||||
---
|
||||
|
||||
# Step 1: Validate Prerequisites and Extract Requirements
|
||||
|
||||
## STEP GOAL:
|
||||
|
|
|
|||
|
|
@ -1,8 +1,3 @@
|
|||
---
|
||||
name: 'step-02-design-epics'
|
||||
description: 'Design and approve the epics_list that will organize all requirements into user-value-focused epics'
|
||||
---
|
||||
|
||||
# Step 2: Design Epic List
|
||||
|
||||
## STEP GOAL:
|
||||
|
|
|
|||
|
|
@ -1,8 +1,3 @@
|
|||
---
|
||||
name: 'step-03-create-stories'
|
||||
description: 'Generate all epics with their stories following the template structure'
|
||||
---
|
||||
|
||||
# Step 3: Generate Epics and Stories
|
||||
|
||||
## STEP GOAL:
|
||||
|
|
|
|||
|
|
@ -1,8 +1,3 @@
|
|||
---
|
||||
name: 'step-04-final-validation'
|
||||
description: 'Validate complete coverage of all requirements and ensure implementation readiness'
|
||||
---
|
||||
|
||||
# Step 4: Final Validation
|
||||
|
||||
## STEP GOAL:
|
||||
|
|
@ -127,6 +122,8 @@ If all validations pass:
|
|||
**Present Final Menu:**
|
||||
**All validations complete!** [C] Complete Workflow
|
||||
|
||||
HALT — wait for user input before proceeding.
|
||||
|
||||
When C is selected, the workflow is complete and the epics.md is ready for development.
|
||||
|
||||
Epics and Stories complete. Invoke the `bmad-help` skill.
|
||||
|
|
|
|||
|
|
@ -30,9 +30,7 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `.`
|
||||
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
- `validation` = `{installed_path}/checklist.md`
|
||||
|
||||
### Input Files
|
||||
|
||||
|
|
@ -76,7 +74,7 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
- Missing documentation of what was actually changed
|
||||
</action>
|
||||
|
||||
<action>Read fully and follow `{installed_path}/discover-inputs.md` to load all input files</action>
|
||||
<action>Read fully and follow `./discover-inputs.md` to load all input files</action>
|
||||
<action>Load {project_context} for coding standards (if exists)</action>
|
||||
</step>
|
||||
|
||||
|
|
|
|||
|
|
@ -27,9 +27,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `.`
|
||||
- `template` = `./template.md`
|
||||
- `validation` = `./checklist.md`
|
||||
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
- `epics_file` = `{planning_artifacts}/epics.md`
|
||||
- `prd_file` = `{planning_artifacts}/prd.md`
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `validation` = `./checklist.md`
|
||||
- `story_file` = `` (explicit story path; auto-discovered if empty)
|
||||
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `.`
|
||||
- `sprint_status_file` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
|
||||
### Input Files
|
||||
|
|
|
|||
|
|
@ -21,9 +21,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `.`
|
||||
- `template` = `{installed_path}/sprint-status-template.yaml`
|
||||
- `checklist` = `{installed_path}/checklist.md`
|
||||
- `tracking_system` = `file-system`
|
||||
- `project_key` = `NOKEY`
|
||||
- `story_location` = `{implementation_artifacts}`
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `.`
|
||||
- `sprint_status_file` = `{implementation_artifacts}/sprint-status.yaml`
|
||||
|
||||
### Input Files
|
||||
|
|
|
|||
|
|
@ -40,18 +40,18 @@
|
|||
<action>Load cached project_type_id(s) from state file</action>
|
||||
|
||||
<critical>CONDITIONAL CSV LOADING FOR RESUME:</critical>
|
||||
<action>For each cached project_type_id, load ONLY the corresponding row from: {documentation_requirements_csv}</action>
|
||||
<action>For each cached project_type_id, load ONLY the corresponding row from: ./documentation-requirements.csv</action>
|
||||
<action>Skip loading project-types.csv and architecture_registry.csv (not needed on resume)</action>
|
||||
<action>Store loaded doc requirements for use in remaining steps</action>
|
||||
|
||||
<action>Display: "Resuming {{workflow_mode}} from {{current_step}} with cached project type(s): {{cached_project_types}}"</action>
|
||||
|
||||
<check if="workflow_mode == deep_dive">
|
||||
<action>Read fully and follow: {installed_path}/workflows/deep-dive-workflow.md with resume context</action>
|
||||
<action>Read fully and follow: ./workflows/deep-dive-workflow.md with resume context</action>
|
||||
</check>
|
||||
|
||||
<check if="workflow_mode == initial_scan OR workflow_mode == full_rescan">
|
||||
<action>Read fully and follow: {installed_path}/workflows/full-scan-workflow.md with resume context</action>
|
||||
<action>Read fully and follow: ./workflows/full-scan-workflow.md with resume context</action>
|
||||
</check>
|
||||
|
||||
</check>
|
||||
|
|
@ -98,7 +98,7 @@ Your choice [1/2/3]:
|
|||
<check if="user selects 1">
|
||||
<action>Set workflow_mode = "full_rescan"</action>
|
||||
<action>Display: "Starting full project rescan..."</action>
|
||||
<action>Read fully and follow: {installed_path}/workflows/full-scan-workflow.md</action>
|
||||
<action>Read fully and follow: ./workflows/full-scan-workflow.md</action>
|
||||
<action>After sub-workflow completes, continue to Step 4</action>
|
||||
</check>
|
||||
|
||||
|
|
@ -106,7 +106,7 @@ Your choice [1/2/3]:
|
|||
<action>Set workflow_mode = "deep_dive"</action>
|
||||
<action>Set scan_level = "exhaustive"</action>
|
||||
<action>Display: "Starting deep-dive documentation mode..."</action>
|
||||
<action>Read fully and follow: {installed_path}/workflows/deep-dive-workflow.md</action>
|
||||
<action>Read fully and follow: ./workflows/deep-dive-workflow.md</action>
|
||||
<action>After sub-workflow completes, continue to Step 4</action>
|
||||
</check>
|
||||
|
||||
|
|
@ -119,7 +119,7 @@ Your choice [1/2/3]:
|
|||
<check if="index.md does not exist">
|
||||
<action>Set workflow_mode = "initial_scan"</action>
|
||||
<action>Display: "No existing documentation found. Starting initial project scan..."</action>
|
||||
<action>Read fully and follow: {installed_path}/workflows/full-scan-workflow.md</action>
|
||||
<action>Read fully and follow: ./workflows/full-scan-workflow.md</action>
|
||||
<action>After sub-workflow completes, continue to Step 4</action>
|
||||
</check>
|
||||
|
||||
|
|
|
|||
|
|
@ -20,15 +20,8 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
- `user_skill_level`
|
||||
- `date` as system-generated current datetime
|
||||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `.`
|
||||
- `instructions` = `{installed_path}/instructions.md`
|
||||
- `validation` = `{installed_path}/checklist.md`
|
||||
- `documentation_requirements_csv` = `{installed_path}/documentation-requirements.csv`
|
||||
|
||||
---
|
||||
|
||||
## EXECUTION
|
||||
|
||||
Read fully and follow: `{installed_path}/instructions.md`
|
||||
Read fully and follow: `./instructions.md`
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@ This will read EVERY file in this area. Proceed? [y/n]
|
|||
- Combine recommended test commands into {{suggested_tests}}
|
||||
</action>
|
||||
|
||||
<action>Load complete deep-dive template from: {installed_path}/templates/deep-dive-template.md</action>
|
||||
<action>Load complete deep-dive template from: ../templates/deep-dive-template.md</action>
|
||||
<action>Fill template with all collected data from steps 13b-13d</action>
|
||||
<action>Write filled template to: {project_knowledge}/deep-dive-{{sanitized_target_name}}.md</action>
|
||||
<action>Validate deep-dive document completeness</action>
|
||||
|
|
|
|||
|
|
@ -21,13 +21,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the configured `{communication_language}`.
|
||||
✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`.
|
||||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `.`
|
||||
- `instructions` = `{installed_path}/deep-dive-instructions.md`
|
||||
- `validation` = `../checklist.md`
|
||||
- `deep_dive_template` = `../templates/deep-dive-template.md`
|
||||
|
||||
### Runtime Inputs
|
||||
|
||||
- `workflow_mode` = `deep_dive`
|
||||
|
|
@ -38,4 +31,4 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
## EXECUTION
|
||||
|
||||
Read fully and follow: `{installed_path}/deep-dive-instructions.md`
|
||||
Read fully and follow: `./deep-dive-instructions.md`
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
This workflow uses a single comprehensive CSV file to intelligently document your project:
|
||||
|
||||
**documentation-requirements.csv** ({documentation_requirements_csv})
|
||||
**documentation-requirements.csv** (../documentation-requirements.csv)
|
||||
|
||||
- Contains 12 project types (web, mobile, backend, cli, library, desktop, game, data, extension, infra, embedded)
|
||||
- 24-column schema combining project type detection AND documentation requirements
|
||||
|
|
@ -36,7 +36,7 @@ This workflow uses a single comprehensive CSV file to intelligently document you
|
|||
|
||||
<action>Now loading documentation requirements data for fresh start...</action>
|
||||
|
||||
<action>Load documentation-requirements.csv from: {documentation_requirements_csv}</action>
|
||||
<action>Load documentation-requirements.csv from: ../documentation-requirements.csv</action>
|
||||
<action>Store all 12 rows indexed by project_type_id for project detection and requirements lookup</action>
|
||||
<action>Display: "Loaded documentation requirements for 12 project types (web, mobile, backend, cli, library, desktop, game, data, extension, infra, embedded)"</action>
|
||||
|
||||
|
|
@ -810,7 +810,7 @@ Generated in {{project_knowledge}}/:
|
|||
{{file_list_with_sizes}}
|
||||
</action>
|
||||
|
||||
<action>Run validation checklist from {validation}</action>
|
||||
<action>Run validation checklist from ../checklist.md</action>
|
||||
|
||||
<critical>INCOMPLETE DOCUMENTATION DETECTION:
|
||||
|
||||
|
|
|
|||
|
|
@ -20,13 +20,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the configured `{communication_language}`.
|
||||
✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`.
|
||||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `.`
|
||||
- `instructions` = `{installed_path}/full-scan-instructions.md`
|
||||
- `validation` = `../checklist.md`
|
||||
- `documentation_requirements_csv` = `../documentation-requirements.csv`
|
||||
|
||||
### Runtime Inputs
|
||||
|
||||
- `workflow_mode` = `""` (set by parent: `initial_scan` or `full_rescan`)
|
||||
|
|
@ -38,4 +31,4 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
## EXECUTION
|
||||
|
||||
Read fully and follow: `{installed_path}/full-scan-instructions.md`
|
||||
Read fully and follow: `./full-scan-instructions.md`
|
||||
|
|
|
|||
|
|
@ -32,8 +32,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `.`
|
||||
- `template_path` = `./project-context-template.md`
|
||||
- `output_file` = `{output_folder}/project-context.md`
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -20,8 +20,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `installed_path` = `.`
|
||||
- `checklist` = `./checklist.md`
|
||||
- `test_dir` = `{project-root}/tests`
|
||||
- `source_dir` = `{project-root}`
|
||||
- `default_output_file` = `{implementation_artifacts}/tests/test-summary.md`
|
||||
|
|
@ -135,4 +133,4 @@ If the project needs:
|
|||
|
||||
Save summary to: `{default_output_file}`
|
||||
|
||||
**Done!** Tests generated and verified. Validate against `{checklist}`.
|
||||
**Done!** Tests generated and verified. Validate against `./checklist.md`.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
---
|
||||
name: 'step-01-clarify-and-route'
|
||||
description: 'Capture intent, route to execution path'
|
||||
|
||||
wipFile: '{implementation_artifacts}/tech-spec-wip.md'
|
||||
deferred_work_file: '{implementation_artifacts}/deferred-work.md'
|
||||
spec_file: '' # set at runtime before leaving this step
|
||||
|
|
@ -50,5 +47,5 @@ spec_file: '' # set at runtime before leaving this step
|
|||
|
||||
## NEXT
|
||||
|
||||
- One-shot / ready-for-dev: Read fully and follow `./steps/step-03-implement.md`
|
||||
- Plan-code-review: Read fully and follow `./steps/step-02-plan.md`
|
||||
- One-shot / ready-for-dev: Read fully and follow `./step-03-implement.md`
|
||||
- Plan-code-review: Read fully and follow `./step-02-plan.md`
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
---
|
||||
name: 'step-02-plan'
|
||||
description: 'Investigate, generate spec, present for approval'
|
||||
|
||||
templateFile: '../tech-spec-template.md'
|
||||
wipFile: '{implementation_artifacts}/tech-spec-wip.md'
|
||||
deferred_work_file: '{implementation_artifacts}/deferred-work.md'
|
||||
---
|
||||
|
|
@ -17,7 +13,7 @@ deferred_work_file: '{implementation_artifacts}/deferred-work.md'
|
|||
## INSTRUCTIONS
|
||||
|
||||
1. Investigate codebase. _Isolate deep exploration in sub-agents/tasks where available. To prevent context snowballing, instruct subagents to give you distilled summaries only._
|
||||
2. Read `{templateFile}` fully. Fill it out based on the intent and investigation, and write the result to `{wipFile}`.
|
||||
2. Read `../tech-spec-template.md` fully. Fill it out based on the intent and investigation, and write the result to `{wipFile}`.
|
||||
3. Self-review against READY FOR DEVELOPMENT standard.
|
||||
4. If intent gaps exist, do not fantasize, do not leave open questions, HALT and ask the human.
|
||||
5. Token count check (see SCOPE STANDARD). If spec exceeds 1600 tokens:
|
||||
|
|
@ -36,4 +32,4 @@ Present summary. If token count exceeded 1600 and user chose [K], include the to
|
|||
|
||||
## NEXT
|
||||
|
||||
Read fully and follow `./steps/step-03-implement.md`
|
||||
Read fully and follow `./step-03-implement.md`
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
---
|
||||
name: 'step-03-implement'
|
||||
description: 'Execute implementation directly or via sub-agent. Local only.'
|
||||
---
|
||||
|
||||
# Step 3: Implement
|
||||
|
|
@ -32,4 +30,4 @@ Otherwise (`execution_mode = "plan-code-review"`): hand `{spec_file}` to a sub-a
|
|||
|
||||
## NEXT
|
||||
|
||||
Read fully and follow `./steps/step-04-review.md`
|
||||
Read fully and follow `./step-04-review.md`
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
---
|
||||
name: 'step-04-review'
|
||||
description: 'Adversarial review, classify findings, optional spec loop'
|
||||
|
||||
deferred_work_file: '{implementation_artifacts}/deferred-work.md'
|
||||
specLoopIteration: 1
|
||||
---
|
||||
|
|
@ -43,11 +40,11 @@ Do NOT `git add` anything — this is read-only inspection.
|
|||
- **defer** — pre-existing issue not caused by this story, surfaced incidentally by the review. Collect for later focused attention.
|
||||
- **reject** — noise. Drop silently. When unsure between defer and reject, prefer reject — only defer findings you are confident are real.
|
||||
3. Process findings in cascading order. If intent_gap or bad_spec findings exist, they trigger a loopback — lower findings are moot since code will be re-derived. If neither exists, process patch and defer normally. Increment `{specLoopIteration}` on each loopback. If it exceeds 5, HALT and escalate to the human. On any loopback, re-evaluate routing — if scope has grown beyond one-shot, escalate `execution_mode` to plan-code-review.
|
||||
- **intent_gap** — Root cause is inside `<frozen-after-approval>`. Revert code changes. Loop back to the human to resolve. Once resolved, read fully and follow `./steps/step-02-plan.md` to re-run steps 2–4.
|
||||
- **bad_spec** — Root cause is outside `<frozen-after-approval>`. Before reverting code: extract KEEP instructions for positive preservation (what worked well and must survive re-derivation). Revert code changes. Read the `## Spec Change Log` in `{spec_file}` and strictly respect all logged constraints when amending the non-frozen sections that contain the root cause. Append a new change-log entry recording: the triggering finding, what was amended, the known-bad state avoided, and the KEEP instructions. Read fully and follow `./steps/step-03-implement.md` to re-derive the code, then this step will run again.
|
||||
- **intent_gap** — Root cause is inside `<frozen-after-approval>`. Revert code changes. Loop back to the human to resolve. Once resolved, read fully and follow `./step-02-plan.md` to re-run steps 2–4.
|
||||
- **bad_spec** — Root cause is outside `<frozen-after-approval>`. Before reverting code: extract KEEP instructions for positive preservation (what worked well and must survive re-derivation). Revert code changes. Read the `## Spec Change Log` in `{spec_file}` and strictly respect all logged constraints when amending the non-frozen sections that contain the root cause. Append a new change-log entry recording: the triggering finding, what was amended, the known-bad state avoided, and the KEEP instructions. Read fully and follow `./step-03-implement.md` to re-derive the code, then this step will run again.
|
||||
- **patch** — Auto-fix. These are the only findings that survive loopbacks.
|
||||
- **defer** — Append to `{deferred_work_file}`.
|
||||
- **reject** — Drop silently.
|
||||
## NEXT
|
||||
|
||||
Read fully and follow `./steps/step-05-present.md`
|
||||
Read fully and follow `./step-05-present.md`
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
---
|
||||
name: 'step-05-present'
|
||||
description: 'Present findings, get approval, create PR'
|
||||
---
|
||||
|
||||
# Step 5: Present
|
||||
|
|
|
|||
|
|
@ -72,7 +72,6 @@ YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `
|
|||
|
||||
### 2. Paths
|
||||
|
||||
- `templateFile` = `./tech-spec-template.md`
|
||||
- `wipFile` = `{implementation_artifacts}/tech-spec-wip.md`
|
||||
|
||||
### 3. First Step Execution
|
||||
|
|
|
|||
|
|
@ -1,9 +1,4 @@
|
|||
---
|
||||
name: 'step-01-mode-detection'
|
||||
description: 'Determine execution mode (tech-spec vs direct), handle escalation, set state variables'
|
||||
|
||||
nextStepFile_modeA: './step-03-execute.md'
|
||||
nextStepFile_modeB: './step-02-context-gathering.md'
|
||||
---
|
||||
|
||||
# Step 1: Mode Detection
|
||||
|
|
@ -50,7 +45,7 @@ Analyze the user's input to determine mode:
|
|||
- Load the spec, extract tasks/context/AC
|
||||
- Set `{execution_mode}` = "tech-spec"
|
||||
- Set `{tech_spec_path}` = provided path
|
||||
- **NEXT:** Read fully and follow: `{nextStepFile_modeA}`
|
||||
- **NEXT:** Read fully and follow: `./step-03-execute.md`
|
||||
|
||||
**Mode B: Direct Instructions**
|
||||
|
||||
|
|
@ -91,7 +86,7 @@ Display: "**Select:** [P] Plan first (tech-spec) [E] Execute directly"
|
|||
#### Menu Handling Logic:
|
||||
|
||||
- IF P: Direct user to `{quick_spec_workflow}`. **EXIT Quick Dev.**
|
||||
- IF E: Ask for any additional guidance, then **NEXT:** Read fully and follow: `{nextStepFile_modeB}`
|
||||
- IF E: Ask for any additional guidance, then **NEXT:** Read fully and follow: `./step-02-context-gathering.md`
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
|
|
@ -114,7 +109,7 @@ Display:
|
|||
|
||||
- IF P: Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.**
|
||||
- IF W: Direct user to run the PRD workflow instead. **EXIT Quick Dev.**
|
||||
- IF E: Ask for guidance, then **NEXT:** Read fully and follow: `{nextStepFile_modeB}`
|
||||
- IF E: Ask for guidance, then **NEXT:** Read fully and follow: `./step-02-context-gathering.md`
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
|
|
@ -137,7 +132,7 @@ Display:
|
|||
|
||||
- IF P: Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.**
|
||||
- IF W: Direct user to run the PRD workflow instead. **EXIT Quick Dev.**
|
||||
- IF E: Ask for guidance, then **NEXT:** Read fully and follow: `{nextStepFile_modeB}`
|
||||
- IF E: Ask for guidance, then **NEXT:** Read fully and follow: `./step-02-context-gathering.md`
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
|
|
@ -150,8 +145,8 @@ Display:
|
|||
|
||||
**CRITICAL:** When this step completes, explicitly state which step to load:
|
||||
|
||||
- Mode A (tech-spec): "**NEXT:** read fully and follow: `{nextStepFile_modeA}`"
|
||||
- Mode B (direct, [E] selected): "**NEXT:** Read fully and follow: `{nextStepFile_modeB}`"
|
||||
- Mode A (tech-spec): "**NEXT:** read fully and follow: `./step-03-execute.md`"
|
||||
- Mode B (direct, [E] selected): "**NEXT:** Read fully and follow: `./step-02-context-gathering.md`"
|
||||
- Escalation ([P] or [W]): "**EXITING Quick Dev.** Follow the directed workflow."
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
---
|
||||
name: 'step-02-context-gathering'
|
||||
description: 'Quick context gathering for direct mode - identify files, patterns, dependencies'
|
||||
|
||||
nextStepFile: './step-03-execute.md'
|
||||
---
|
||||
|
||||
# Step 2: Context Gathering (Direct Mode)
|
||||
|
|
@ -97,7 +93,7 @@ Ready to execute? (y/n/adjust)
|
|||
|
||||
**CRITICAL:** When user confirms ready, explicitly state:
|
||||
|
||||
- **y:** "**NEXT:** Read fully and follow: `{nextStepFile}`"
|
||||
- **y:** "**NEXT:** Read fully and follow: `./step-03-execute.md`"
|
||||
- **n/adjust:** Continue gathering context, then re-present plan
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
---
|
||||
name: 'step-03-execute'
|
||||
description: 'Execute implementation - iterate through tasks, write code, run tests'
|
||||
|
||||
nextStepFile: './step-04-self-check.md'
|
||||
---
|
||||
|
||||
# Step 3: Execute Implementation
|
||||
|
|
@ -89,7 +85,7 @@ For each task:
|
|||
|
||||
## NEXT STEP
|
||||
|
||||
When ALL tasks are complete (or halted on blocker), read fully and follow: `{nextStepFile}`.
|
||||
When ALL tasks are complete (or halted on blocker), read fully and follow: `./step-04-self-check.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
---
|
||||
name: 'step-04-self-check'
|
||||
description: 'Self-audit implementation against tasks, tests, AC, and patterns'
|
||||
|
||||
nextStepFile: './step-05-adversarial-review.md'
|
||||
---
|
||||
|
||||
# Step 4: Self-Check
|
||||
|
|
@ -89,7 +85,7 @@ Proceeding to adversarial code review...
|
|||
|
||||
## NEXT STEP
|
||||
|
||||
Proceed immediately to `{nextStepFile}`.
|
||||
Proceed immediately to `./step-05-adversarial-review.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
---
|
||||
name: 'step-05-adversarial-review'
|
||||
description: 'Construct diff and invoke adversarial review skill'
|
||||
|
||||
nextStepFile: './step-06-resolve-findings.md'
|
||||
---
|
||||
|
||||
# Step 5: Adversarial Code Review
|
||||
|
|
@ -77,7 +73,7 @@ If TodoWrite or similar tool is available, turn each finding into a TODO, includ
|
|||
|
||||
## NEXT STEP
|
||||
|
||||
With findings in hand, read fully and follow: `{nextStepFile}` for user to choose resolution approach.
|
||||
With findings in hand, read fully and follow: `./step-06-resolve-findings.md` for user to choose resolution approach.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
---
|
||||
name: 'step-06-resolve-findings'
|
||||
description: 'Handle review findings interactively, apply fixes, update tech-spec with final status'
|
||||
---
|
||||
|
||||
# Step 6: Resolve Findings
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
---
|
||||
name: 'step-01-understand'
|
||||
description: 'Analyze the requirement delta between current state and what user wants to build'
|
||||
|
||||
templateFile: '../tech-spec-template.md'
|
||||
wipFile: '{implementation_artifacts}/tech-spec-wip.md'
|
||||
---
|
||||
|
||||
|
|
@ -125,7 +121,7 @@ b) **Ask the user to confirm the captured understanding before proceeding.**
|
|||
|
||||
a) **Create the tech-spec WIP file:**
|
||||
|
||||
1. Copy template from `{templateFile}`
|
||||
1. Copy template from `../tech-spec-template.md`
|
||||
2. Write to `{wipFile}`
|
||||
3. Update frontmatter with captured values:
|
||||
```yaml
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
---
|
||||
name: 'step-02-investigate'
|
||||
description: 'Map technical constraints and anchor points within the codebase'
|
||||
|
||||
wipFile: '{implementation_artifacts}/tech-spec-wip.md'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
---
|
||||
name: 'step-03-generate'
|
||||
description: 'Build the implementation plan based on the technical mapping of constraints'
|
||||
|
||||
wipFile: '{implementation_artifacts}/tech-spec-wip.md'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
---
|
||||
name: 'step-04-review'
|
||||
description: 'Review and finalize the tech-spec'
|
||||
|
||||
wipFile: '{implementation_artifacts}/tech-spec-wip.md'
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
methods: './methods.csv'
|
||||
agent_party: '{project-root}/_bmad/_config/agent-manifest.csv'
|
||||
---
|
||||
|
||||
|
|
@ -35,7 +34,7 @@ When invoked from another prompt or process:
|
|||
|
||||
### Step 1: Method Registry Loading
|
||||
|
||||
**Action:** Load and read `{methods}` and `{agent_party}`
|
||||
**Action:** Load and read `./methods.csv` and `{agent_party}`
|
||||
|
||||
#### CSV Structure
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
name: bmad-create-prd
|
||||
description: 'Create a PRD from scratch. Use when the user says "lets create a product requirements document" or "I want to create a new PRD"'
|
||||
---
|
||||
|
||||
Follow the instructions in [workflow.md](workflow.md).
|
||||
|
|
@ -0,0 +1 @@
|
|||
type: skill
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
domain,signals,complexity,key_concerns,required_knowledge,suggested_workflow,web_searches,special_sections
|
||||
healthcare,"medical,diagnostic,clinical,FDA,patient,treatment,HIPAA,therapy,pharma,drug",high,"FDA approval;Clinical validation;HIPAA compliance;Patient safety;Medical device classification;Liability","Regulatory pathways;Clinical trial design;Medical standards;Data privacy;Integration requirements","domain-research","FDA software medical device guidance {date};HIPAA compliance software requirements;Medical software standards {date};Clinical validation software","clinical_requirements;regulatory_pathway;validation_methodology;safety_measures"
|
||||
fintech,"payment,banking,trading,investment,crypto,wallet,transaction,KYC,AML,funds,fintech",high,"Regional compliance;Security standards;Audit requirements;Fraud prevention;Data protection","KYC/AML requirements;PCI DSS;Open banking;Regional laws (US/EU/APAC);Crypto regulations","domain-research","fintech regulations {date};payment processing compliance {date};open banking API standards;cryptocurrency regulations {date}","compliance_matrix;security_architecture;audit_requirements;fraud_prevention"
|
||||
govtech,"government,federal,civic,public sector,citizen,municipal,voting",high,"Procurement rules;Security clearance;Accessibility (508);FedRAMP;Privacy;Transparency","Government procurement;Security frameworks;Accessibility standards;Privacy laws;Open data requirements","domain-research","government software procurement {date};FedRAMP compliance requirements;section 508 accessibility;government security standards","procurement_compliance;security_clearance;accessibility_standards;transparency_requirements"
|
||||
edtech,"education,learning,student,teacher,curriculum,assessment,K-12,university,LMS",medium,"Student privacy (COPPA/FERPA);Accessibility;Content moderation;Age verification;Curriculum standards","Educational privacy laws;Learning standards;Accessibility requirements;Content guidelines;Assessment validity","domain-research","educational software privacy {date};COPPA FERPA compliance;WCAG education requirements;learning management standards","privacy_compliance;content_guidelines;accessibility_features;curriculum_alignment"
|
||||
aerospace,"aircraft,spacecraft,aviation,drone,satellite,propulsion,flight,radar,navigation",high,"Safety certification;DO-178C compliance;Performance validation;Simulation accuracy;Export controls","Aviation standards;Safety analysis;Simulation validation;ITAR/export controls;Performance requirements","domain-research + technical-model","DO-178C software certification;aerospace simulation standards {date};ITAR export controls software;aviation safety requirements","safety_certification;simulation_validation;performance_requirements;export_compliance"
|
||||
automotive,"vehicle,car,autonomous,ADAS,automotive,driving,EV,charging",high,"Safety standards;ISO 26262;V2X communication;Real-time requirements;Certification","Automotive standards;Functional safety;V2X protocols;Real-time systems;Testing requirements","domain-research","ISO 26262 automotive software;automotive safety standards {date};V2X communication protocols;EV charging standards","safety_standards;functional_safety;communication_protocols;certification_requirements"
|
||||
scientific,"research,algorithm,simulation,modeling,computational,analysis,data science,ML,AI",medium,"Reproducibility;Validation methodology;Peer review;Performance;Accuracy;Computational resources","Scientific method;Statistical validity;Computational requirements;Domain expertise;Publication standards","technical-model","scientific computing best practices {date};research reproducibility standards;computational modeling validation;peer review software","validation_methodology;accuracy_metrics;reproducibility_plan;computational_requirements"
|
||||
legaltech,"legal,law,contract,compliance,litigation,patent,attorney,court",high,"Legal ethics;Bar regulations;Data retention;Attorney-client privilege;Court system integration","Legal practice rules;Ethics requirements;Court filing systems;Document standards;Confidentiality","domain-research","legal technology ethics {date};law practice management software requirements;court filing system standards;attorney client privilege technology","ethics_compliance;data_retention;confidentiality_measures;court_integration"
|
||||
insuretech,"insurance,claims,underwriting,actuarial,policy,risk,premium",high,"Insurance regulations;Actuarial standards;Data privacy;Fraud detection;State compliance","Insurance regulations by state;Actuarial methods;Risk modeling;Claims processing;Regulatory reporting","domain-research","insurance software regulations {date};actuarial standards software;insurance fraud detection;state insurance compliance","regulatory_requirements;risk_modeling;fraud_detection;reporting_compliance"
|
||||
energy,"energy,utility,grid,solar,wind,power,electricity,oil,gas",high,"Grid compliance;NERC standards;Environmental regulations;Safety requirements;Real-time operations","Energy regulations;Grid standards;Environmental compliance;Safety protocols;SCADA systems","domain-research","energy sector software compliance {date};NERC CIP standards;smart grid requirements;renewable energy software standards","grid_compliance;safety_protocols;environmental_compliance;operational_requirements"
|
||||
process_control,"industrial automation,process control,PLC,SCADA,DCS,HMI,operational technology,OT,control system,cyberphysical,MES,historian,instrumentation,I&C,P&ID",high,"Functional safety;OT cybersecurity;Real-time control requirements;Legacy system integration;Process safety and hazard analysis;Environmental compliance and permitting;Engineering authority and PE requirements","Functional safety standards;OT security frameworks;Industrial protocols;Process control architecture;Plant reliability and maintainability","domain-research + technical-model","IEC 62443 OT cybersecurity requirements {date};functional safety software requirements {date};industrial process control architecture;ISA-95 manufacturing integration","functional_safety;ot_security;process_requirements;engineering_authority"
|
||||
building_automation,"building automation,BAS,BMS,HVAC,smart building,lighting control,fire alarm,fire protection,fire suppression,life safety,elevator,access control,DDC,energy management,sequence of operations,commissioning",high,"Life safety codes;Building energy standards;Multi-trade coordination and interoperability;Commissioning and ongoing operational performance;Indoor environmental quality and occupant comfort;Engineering authority and PE requirements","Building automation protocols;HVAC and mechanical controls;Fire alarm, fire protection, and life safety design;Commissioning process and sequence of operations;Building codes and energy standards","domain-research","smart building software architecture {date};BACnet integration best practices;building automation cybersecurity {date};ASHRAE building standards","life_safety;energy_compliance;commissioning_requirements;engineering_authority"
|
||||
gaming,"game,player,gameplay,level,character,multiplayer,quest",redirect,"REDIRECT TO GAME WORKFLOWS","Game design","game-brief","NA","NA"
|
||||
general,"",low,"Standard requirements;Basic security;User experience;Performance","General software practices","continue","software development best practices {date}","standard_requirements"
|
||||
|
|
|
@ -0,0 +1,197 @@
|
|||
# BMAD PRD Purpose
|
||||
|
||||
**The PRD is the top of the required funnel that feeds all subsequent product development work in rhw BMad Method.**
|
||||
|
||||
---
|
||||
|
||||
## What is a BMAD PRD?
|
||||
|
||||
A dual-audience document serving:
|
||||
1. **Human Product Managers and builders** - Vision, strategy, stakeholder communication
|
||||
2. **LLM Downstream Consumption** - UX Design → Architecture → Epics → Development AI Agents
|
||||
|
||||
Each successive document becomes more AI-tailored and granular.
|
||||
|
||||
---
|
||||
|
||||
## Core Philosophy: Information Density
|
||||
|
||||
**High Signal-to-Noise Ratio**
|
||||
|
||||
Every sentence must carry information weight. LLMs consume precise, dense content efficiently.
|
||||
|
||||
**Anti-Patterns (Eliminate These):**
|
||||
- ❌ "The system will allow users to..." → ✅ "Users can..."
|
||||
- ❌ "It is important to note that..." → ✅ State the fact directly
|
||||
- ❌ "In order to..." → ✅ "To..."
|
||||
- ❌ Conversational filler and padding → ✅ Direct, concise statements
|
||||
|
||||
**Goal:** Maximum information per word. Zero fluff.
|
||||
|
||||
---
|
||||
|
||||
## The Traceability Chain
|
||||
|
||||
**PRD starts the chain:**
|
||||
```
|
||||
Vision → Success Criteria → User Journeys → Functional Requirements → (future: User Stories)
|
||||
```
|
||||
|
||||
**In the PRD, establish:**
|
||||
- Vision → Success Criteria alignment
|
||||
- Success Criteria → User Journey coverage
|
||||
- User Journey → Functional Requirement mapping
|
||||
- All requirements traceable to user needs
|
||||
|
||||
**Why:** Each downstream artifact (UX, Architecture, Epics, Stories) must trace back to documented user needs and business objectives. This chain ensures we build the right thing.
|
||||
|
||||
---
|
||||
|
||||
## What Makes Great Functional Requirements?
|
||||
|
||||
### FRs are Capabilities, Not Implementation
|
||||
|
||||
**Good FR:** "Users can reset their password via email link"
|
||||
**Bad FR:** "System sends JWT via email and validates with database" (implementation leakage)
|
||||
|
||||
**Good FR:** "Dashboard loads in under 2 seconds for 95th percentile"
|
||||
**Bad FR:** "Fast loading time" (subjective, unmeasurable)
|
||||
|
||||
### SMART Quality Criteria
|
||||
|
||||
**Specific:** Clear, precisely defined capability
|
||||
**Measurable:** Quantifiable with test criteria
|
||||
**Attainable:** Realistic within constraints
|
||||
**Relevant:** Aligns with business objectives
|
||||
**Traceable:** Links to source (executive summary or user journey)
|
||||
|
||||
### FR Anti-Patterns
|
||||
|
||||
**Subjective Adjectives:**
|
||||
- ❌ "easy to use", "intuitive", "user-friendly", "fast", "responsive"
|
||||
- ✅ Use metrics: "completes task in under 3 clicks", "loads in under 2 seconds"
|
||||
|
||||
**Implementation Leakage:**
|
||||
- ❌ Technology names, specific libraries, implementation details
|
||||
- ✅ Focus on capability and measurable outcomes
|
||||
|
||||
**Vague Quantifiers:**
|
||||
- ❌ "multiple users", "several options", "various formats"
|
||||
- ✅ "up to 100 concurrent users", "3-5 options", "PDF, DOCX, TXT formats"
|
||||
|
||||
**Missing Test Criteria:**
|
||||
- ❌ "The system shall provide notifications"
|
||||
- ✅ "The system shall send email notifications within 30 seconds of trigger event"
|
||||
|
||||
---
|
||||
|
||||
## What Makes Great Non-Functional Requirements?
|
||||
|
||||
### NFRs Must Be Measurable
|
||||
|
||||
**Template:**
|
||||
```
|
||||
"The system shall [metric] [condition] [measurement method]"
|
||||
```
|
||||
|
||||
**Examples:**
|
||||
- ✅ "The system shall respond to API requests in under 200ms for 95th percentile as measured by APM monitoring"
|
||||
- ✅ "The system shall maintain 99.9% uptime during business hours as measured by cloud provider SLA"
|
||||
- ✅ "The system shall support 10,000 concurrent users as measured by load testing"
|
||||
|
||||
### NFR Anti-Patterns
|
||||
|
||||
**Unmeasurable Claims:**
|
||||
- ❌ "The system shall be scalable" → ✅ "The system shall handle 10x load growth through horizontal scaling"
|
||||
- ❌ "High availability required" → ✅ "99.9% uptime as measured by cloud provider SLA"
|
||||
|
||||
**Missing Context:**
|
||||
- ❌ "Response time under 1 second" → ✅ "API response time under 1 second for 95th percentile under normal load"
|
||||
|
||||
---
|
||||
|
||||
## Domain-Specific Requirements
|
||||
|
||||
**Auto-Detect and Enforce Based on Project Context**
|
||||
|
||||
Certain industries have mandatory requirements that must be present:
|
||||
|
||||
- **Healthcare:** HIPAA Privacy & Security Rules, PHI encryption, audit logging, MFA
|
||||
- **Fintech:** PCI-DSS Level 1, AML/KYC compliance, SOX controls, financial audit trails
|
||||
- **GovTech:** NIST framework, Section 508 accessibility (WCAG 2.1 AA), FedRAMP, data residency
|
||||
- **E-Commerce:** PCI-DSS for payments, inventory accuracy, tax calculation by jurisdiction
|
||||
|
||||
**Why:** Missing these requirements in the PRD means they'll be missed in architecture and implementation, creating expensive rework. During PRD creation there is a step to cover this - during validation we want to make sure it was covered. For this purpose steps will utilize a domain-complexity.csv and project-types.csv.
|
||||
|
||||
---
|
||||
|
||||
## Document Structure (Markdown, Human-Readable)
|
||||
|
||||
### Required Sections
|
||||
1. **Executive Summary** - Vision, differentiator, target users
|
||||
2. **Success Criteria** - Measurable outcomes (SMART)
|
||||
3. **Product Scope** - MVP, Growth, Vision phases
|
||||
4. **User Journeys** - Comprehensive coverage
|
||||
5. **Domain Requirements** - Industry-specific compliance (if applicable)
|
||||
6. **Innovation Analysis** - Competitive differentiation (if applicable)
|
||||
7. **Project-Type Requirements** - Platform-specific needs
|
||||
8. **Functional Requirements** - Capability contract (FRs)
|
||||
9. **Non-Functional Requirements** - Quality attributes (NFRs)
|
||||
|
||||
### Formatting for Dual Consumption
|
||||
|
||||
**For Humans:**
|
||||
- Clear, professional language
|
||||
- Logical flow from vision to requirements
|
||||
- Easy for stakeholders to review and approve
|
||||
|
||||
**For LLMs:**
|
||||
- ## Level 2 headers for all main sections (enables extraction)
|
||||
- Consistent structure and patterns
|
||||
- Precise, testable language
|
||||
- High information density
|
||||
|
||||
---
|
||||
|
||||
## Downstream Impact
|
||||
|
||||
**How the PRD Feeds Next Artifacts:**
|
||||
|
||||
**UX Design:**
|
||||
- User journeys → interaction flows
|
||||
- FRs → design requirements
|
||||
- Success criteria → UX metrics
|
||||
|
||||
**Architecture:**
|
||||
- FRs → system capabilities
|
||||
- NFRs → architecture decisions
|
||||
- Domain requirements → compliance architecture
|
||||
- Project-type requirements → platform choices
|
||||
|
||||
**Epics & Stories (created after architecture):**
|
||||
- FRs → user stories (1 FR could map to 1-3 stories potentially)
|
||||
- Acceptance criteria → story acceptance tests
|
||||
- Priority → sprint sequencing
|
||||
- Traceability → stories map back to vision
|
||||
|
||||
**Development AI Agents:**
|
||||
- Precise requirements → implementation clarity
|
||||
- Test criteria → automated test generation
|
||||
- Domain requirements → compliance enforcement
|
||||
- Measurable NFRs → performance targets
|
||||
|
||||
---
|
||||
|
||||
## Summary: What Makes a Great BMAD PRD?
|
||||
|
||||
✅ **High Information Density** - Every sentence carries weight, zero fluff
|
||||
✅ **Measurable Requirements** - All FRs and NFRs are testable with specific criteria
|
||||
✅ **Clear Traceability** - Each requirement links to user need and business objective
|
||||
✅ **Domain Awareness** - Industry-specific requirements auto-detected and included
|
||||
✅ **Zero Anti-Patterns** - No subjective adjectives, implementation leakage, or vague quantifiers
|
||||
✅ **Dual Audience Optimized** - Human-readable AND LLM-consumable
|
||||
✅ **Markdown Format** - Professional, clean, accessible to all stakeholders
|
||||
|
||||
---
|
||||
|
||||
**Remember:** The PRD is the foundation. Quality here ripples through every subsequent phase. A dense, precise, well-traced PRD makes UX design, architecture, epic breakdown, and AI development dramatically more effective.
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
project_type,detection_signals,key_questions,required_sections,skip_sections,web_search_triggers,innovation_signals
|
||||
api_backend,"API,REST,GraphQL,backend,service,endpoints","Endpoints needed?;Authentication method?;Data formats?;Rate limits?;Versioning?;SDK needed?","endpoint_specs;auth_model;data_schemas;error_codes;rate_limits;api_docs","ux_ui;visual_design;user_journeys","framework best practices;OpenAPI standards","API composition;New protocol"
|
||||
mobile_app,"iOS,Android,app,mobile,iPhone,iPad","Native or cross-platform?;Offline needed?;Push notifications?;Device features?;Store compliance?","platform_reqs;device_permissions;offline_mode;push_strategy;store_compliance","desktop_features;cli_commands","app store guidelines;platform requirements","Gesture innovation;AR/VR features"
|
||||
saas_b2b,"SaaS,B2B,platform,dashboard,teams,enterprise","Multi-tenant?;Permission model?;Subscription tiers?;Integrations?;Compliance?","tenant_model;rbac_matrix;subscription_tiers;integration_list;compliance_reqs","cli_interface;mobile_first","compliance requirements;integration guides","Workflow automation;AI agents"
|
||||
developer_tool,"SDK,library,package,npm,pip,framework","Language support?;Package managers?;IDE integration?;Documentation?;Examples?","language_matrix;installation_methods;api_surface;code_examples;migration_guide","visual_design;store_compliance","package manager best practices;API design patterns","New paradigm;DSL creation"
|
||||
cli_tool,"CLI,command,terminal,bash,script","Interactive or scriptable?;Output formats?;Config method?;Shell completion?","command_structure;output_formats;config_schema;scripting_support","visual_design;ux_principles;touch_interactions","CLI design patterns;shell integration","Natural language CLI;AI commands"
|
||||
web_app,"website,webapp,browser,SPA,PWA","SPA or MPA?;Browser support?;SEO needed?;Real-time?;Accessibility?","browser_matrix;responsive_design;performance_targets;seo_strategy;accessibility_level","native_features;cli_commands","web standards;WCAG guidelines","New interaction;WebAssembly use"
|
||||
game,"game,player,gameplay,level,character","REDIRECT TO USE THE BMad Method Game Module Agent and Workflows - HALT","game-brief;GDD","most_sections","game design patterns","Novel mechanics;Genre mixing"
|
||||
desktop_app,"desktop,Windows,Mac,Linux,native","Cross-platform?;Auto-update?;System integration?;Offline?","platform_support;system_integration;update_strategy;offline_capabilities","web_seo;mobile_features","desktop guidelines;platform requirements","Desktop AI;System automation"
|
||||
iot_embedded,"IoT,embedded,device,sensor,hardware","Hardware specs?;Connectivity?;Power constraints?;Security?;OTA updates?","hardware_reqs;connectivity_protocol;power_profile;security_model;update_mechanism","visual_ui;browser_support","IoT standards;protocol specs","Edge AI;New sensors"
|
||||
blockchain_web3,"blockchain,crypto,DeFi,NFT,smart contract","Chain selection?;Wallet integration?;Gas optimization?;Security audit?","chain_specs;wallet_support;smart_contracts;security_audit;gas_optimization","traditional_auth;centralized_db","blockchain standards;security patterns","Novel tokenomics;DAO structure"
|
||||
|
|
|
@ -1,16 +1,3 @@
|
|||
---
|
||||
name: 'step-01-init'
|
||||
description: 'Initialize the PRD workflow by detecting continuation state and setting up the document'
|
||||
|
||||
# File References
|
||||
nextStepFile: './step-02-discovery.md'
|
||||
continueStepFile: './step-01b-continue.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# Template Reference
|
||||
prdTemplate: '../templates/prd-template.md'
|
||||
---
|
||||
|
||||
# Step 1: Workflow Initialization
|
||||
|
||||
**Progress: Step 1 of 11** - Next: Project Discovery
|
||||
|
|
@ -71,11 +58,11 @@ First, check if the output document already exists:
|
|||
|
||||
### 2. Handle Continuation (If Document Exists)
|
||||
|
||||
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:
|
||||
If the document exists and has frontmatter with `stepsCompleted` BUT `step-12-complete` is NOT in the list, follow the Continuation Protocol since the document is incomplete:
|
||||
|
||||
**Continuation Protocol:**
|
||||
|
||||
- **STOP immediately** and load `{continueStepFile}`
|
||||
- **STOP immediately** and load `./step-01b-continue.md`
|
||||
- Do not proceed with any initialization tasks
|
||||
- Let step-01b handle all continuation logic
|
||||
- This is an auto-proceed situation - no user choice needed
|
||||
|
|
@ -89,7 +76,7 @@ If no document exists or no `stepsCompleted` in frontmatter:
|
|||
Discover and load context documents using smart discovery. Documents can be in the following locations:
|
||||
- {planning_artifacts}/**
|
||||
- {output_folder}/**
|
||||
- {product_knowledge}/**
|
||||
- {project_knowledge}/**
|
||||
- docs/**
|
||||
|
||||
Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content)
|
||||
|
|
@ -97,7 +84,7 @@ Also - when searching - documents can be a single markdown file, or a folder wit
|
|||
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.)
|
||||
- Project Documentation (generally multiple documents might be found for this in the `{project_knowledge}` or `docs` folder.)
|
||||
- Project Context (`**/project-context.md`)
|
||||
|
||||
<critical>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</critical>
|
||||
|
|
@ -114,7 +101,7 @@ Try to discover the following:
|
|||
|
||||
**Document Setup:**
|
||||
|
||||
- Copy the template from `{prdTemplate}` to `{outputFile}`
|
||||
- Copy the template from `../templates/prd-template.md` to `{outputFile}`
|
||||
- Initialize frontmatter with proper structure including inputDocuments array.
|
||||
|
||||
#### C. Present Initialization Results
|
||||
|
|
@ -151,7 +138,7 @@ Display menu after setup report:
|
|||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF C: Update output file frontmatter, adding this step name to the end of the list of stepsCompleted, then read fully and follow: {nextStepFile}
|
||||
- IF C: Update output file frontmatter, adding this step name to the end of the list of stepsCompleted, then read fully and follow: ./step-02-discovery.md
|
||||
- IF user provides additional files: Load them, update inputDocuments and documentCounts, redisplay report
|
||||
- IF user asks questions: Answer and redisplay menu
|
||||
|
||||
|
|
@ -162,7 +149,7 @@ Display menu after setup report:
|
|||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [frontmatter properly updated with this step added to stepsCompleted and documentCounts], will you then read fully and follow: `{nextStepFile}` to 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 read fully and follow: `./step-02-discovery.md` to begin project discovery.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1,11 +1,3 @@
|
|||
---
|
||||
name: 'step-01b-continue'
|
||||
description: 'Resume an interrupted PRD workflow from the last completed step'
|
||||
|
||||
# File References
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
---
|
||||
|
||||
# Step 1B: Workflow Continuation
|
||||
|
||||
## STEP GOAL:
|
||||
|
|
@ -70,21 +62,38 @@ Review the frontmatter to understand:
|
|||
|
||||
### 3. Determine Next Step
|
||||
|
||||
**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!
|
||||
**Step Sequence Lookup:**
|
||||
|
||||
Use the following ordered sequence to determine the next step from the last completed step:
|
||||
|
||||
| Last Completed | Next Step |
|
||||
|---|---|
|
||||
| step-01-init.md | step-02-discovery.md |
|
||||
| step-02-discovery.md | step-02b-vision.md |
|
||||
| step-02b-vision.md | step-02c-executive-summary.md |
|
||||
| step-02c-executive-summary.md | step-03-success.md |
|
||||
| step-03-success.md | step-04-journeys.md |
|
||||
| step-04-journeys.md | step-05-domain.md |
|
||||
| step-05-domain.md | step-06-innovation.md |
|
||||
| step-06-innovation.md | step-07-project-type.md |
|
||||
| step-07-project-type.md | step-08-scoping.md |
|
||||
| step-08-scoping.md | step-09-functional.md |
|
||||
| step-09-functional.md | step-10-nonfunctional.md |
|
||||
| step-10-nonfunctional.md | step-11-polish.md |
|
||||
| step-11-polish.md | step-12-complete.md |
|
||||
|
||||
1. Get the last element from the `stepsCompleted` array
|
||||
2. Look it up in the table above to find the next step
|
||||
3. That's the next step to load!
|
||||
|
||||
**Example:**
|
||||
- If `stepsCompleted = ["step-01-init.md", "step-02-discovery.md", "step-03-success.md"]`
|
||||
- Last element is `"step-03-success.md"`
|
||||
- Load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md`, read its frontmatter
|
||||
- Read fully and follow: `{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md`
|
||||
- Table lookup → next step is `./step-04-journeys.md`
|
||||
|
||||
### 4. Handle Workflow Completion
|
||||
|
||||
**If `stepsCompleted` array contains `"step-11-complete.md"`:**
|
||||
**If `stepsCompleted` array contains `"step-12-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.
|
||||
|
|
@ -104,7 +113,7 @@ What would be most helpful?"
|
|||
|
||||
**Current Progress:**
|
||||
- Last completed: {last step filename from stepsCompleted array}
|
||||
- Next up: {nextStepFile determined from that step's frontmatter}
|
||||
- Next up: {next step from lookup table}
|
||||
- Context documents available: {len(inputDocuments)} files
|
||||
|
||||
**Document Status:**
|
||||
|
|
@ -119,7 +128,7 @@ Display: "**Select an Option:** [C] Continue to {next step name}"
|
|||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF C: Read fully and follow the {nextStepFile} determined in step 3
|
||||
- IF C: Read fully and follow the next step determined from the lookup table in step 3
|
||||
- IF Any other comments or queries: respond and redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -129,7 +138,7 @@ Display: "**Select an Option:** [C] Continue to {next step name}"
|
|||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [current state confirmed], will you then read fully and follow: {nextStepFile} to resume the workflow.
|
||||
ONLY WHEN [C continue option] is selected and [current state confirmed], will you then read fully and follow the next step (from the lookup table) to resume the workflow.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -146,7 +155,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
|
||||
- Failing to extract nextStepFile from the last completed step's frontmatter
|
||||
- Failing to determine the next step from the lookup table
|
||||
- Proceeding without user confirmation of current state
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
|
|
@ -1,20 +1,3 @@
|
|||
---
|
||||
name: 'step-02-discovery'
|
||||
description: 'Discover project type, domain, and context through collaborative dialogue'
|
||||
|
||||
# File References
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# Data Files
|
||||
projectTypesCSV: '../data/project-types.csv'
|
||||
domainComplexityCSV: '../data/domain-complexity.csv'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 2: Project Discovery
|
||||
|
||||
**Progress: Step 2 of 13** - Next: Product Vision
|
||||
|
|
@ -97,7 +80,7 @@ Read the frontmatter from `{outputFile}` to get document counts:
|
|||
**Attempt subprocess data lookup:**
|
||||
|
||||
**Project Type Lookup:**
|
||||
"Your task: Lookup data in {projectTypesCSV}
|
||||
"Your task: Lookup data in ../data/project-types.csv
|
||||
|
||||
**Search criteria:**
|
||||
- Find row where project_type matches {{detectedProjectType}}
|
||||
|
|
@ -109,7 +92,7 @@ project_type, detection_signals
|
|||
**Do NOT return the entire CSV - only the matching row.**"
|
||||
|
||||
**Domain Complexity Lookup:**
|
||||
"Your task: Lookup data in {domainComplexityCSV}
|
||||
"Your task: Lookup data in ../data/domain-complexity.csv
|
||||
|
||||
**Search criteria:**
|
||||
- Find row where domain matches {{detectedDomain}}
|
||||
|
|
@ -186,9 +169,9 @@ Present the project classification for review, then display menu:
|
|||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Product Vision (Step 2b of 13)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Read fully and follow: {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: Read fully and follow: {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 read fully and follow: {nextStepFile}
|
||||
- IF A: Read fully and follow: skill:bmad-advanced-elicitation 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: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md 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 read fully and follow: ./step-02b-vision.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -198,7 +181,7 @@ Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Pr
|
|||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [classification saved to frontmatter], will you then read fully and follow: `{nextStepFile}` to explore product vision.
|
||||
ONLY WHEN [C continue option] is selected and [classification saved to frontmatter], will you then read fully and follow: `./step-02b-vision.md` to explore product vision.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1,16 +1,3 @@
|
|||
---
|
||||
name: 'step-02b-vision'
|
||||
description: 'Discover the product vision and differentiator through collaborative dialogue'
|
||||
|
||||
# File References
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 2b: Product Vision Discovery
|
||||
|
||||
**Progress: Step 2b of 13** - Next: Executive Summary
|
||||
|
|
@ -114,9 +101,9 @@ Present your understanding of the product vision for review, then display menu:
|
|||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Executive Summary (Step 2c of 13)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Read fully and follow: {advancedElicitationTask} with the current vision insights, process the enhanced insights that come back, ask user if they accept the improvements, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu
|
||||
- IF P: Read fully and follow: {partyModeWorkflow} with the current vision insights, process the collaborative insights, ask user if they accept the changes, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu
|
||||
- IF C: Update {outputFile} frontmatter by adding this step name to the end of stepsCompleted array, then read fully and follow: {nextStepFile}
|
||||
- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the current vision insights, process the enhanced insights that come back, ask user if they accept the improvements, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu
|
||||
- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current vision insights, process the collaborative insights, ask user if they accept the changes, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu
|
||||
- IF C: Update {outputFile} frontmatter by adding this step name to the end of stepsCompleted array, then read fully and follow: ./step-02c-executive-summary.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -126,7 +113,7 @@ Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Ex
|
|||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [stepsCompleted updated], will you then read fully and follow: `{nextStepFile}` to generate the Executive Summary.
|
||||
ONLY WHEN [C continue option] is selected and [stepsCompleted updated], will you then read fully and follow: `./step-02c-executive-summary.md` to generate the Executive Summary.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1,16 +1,3 @@
|
|||
---
|
||||
name: 'step-02c-executive-summary'
|
||||
description: 'Generate and append the Executive Summary section to the PRD document'
|
||||
|
||||
# File References
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 2c: Executive Summary Generation
|
||||
|
||||
**Progress: Step 2c of 13** - Next: Success Criteria
|
||||
|
|
@ -104,9 +91,9 @@ Present the executive summary content for user review, then display menu:
|
|||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Success Criteria (Step 3 of 13)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Read fully and follow: {advancedElicitationTask} with the current executive summary content, process the enhanced content that comes 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: Read fully and follow: {partyModeWorkflow} with the current executive summary content, process the collaborative improvements, 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 read fully and follow: {nextStepFile}
|
||||
- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the current executive summary content, process the enhanced content that comes 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: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the current executive summary content, process the collaborative improvements, 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 read fully and follow: ./step-03-success.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -139,7 +126,7 @@ Where:
|
|||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [content appended to document], will you then read fully and follow: `{nextStepFile}` to define success criteria.
|
||||
ONLY WHEN [C continue option] is selected and [content appended to document], will you then read fully and follow: `./step-03-success.md` to define success criteria.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1,16 +1,3 @@
|
|||
---
|
||||
name: 'step-03-success'
|
||||
description: 'Define comprehensive success criteria covering user, business, and technical success'
|
||||
|
||||
# File References
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 3: Success Criteria Definition
|
||||
|
||||
**Progress: Step 3 of 11** - Next: User Journey Mapping
|
||||
|
|
@ -176,9 +163,9 @@ Present the success criteria content for user review, then display menu:
|
|||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to User Journey Mapping (Step 4 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Read fully and follow: {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: Read fully and follow: {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 read fully and follow: {nextStepFile}
|
||||
- IF A: Read fully and follow: skill:bmad-advanced-elicitation 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: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-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 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 read fully and follow: ./step-04-journeys.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -222,6 +209,6 @@ If working in regulated domains (healthcare, fintech, govtech):
|
|||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md` to map user journeys.
|
||||
After user selects 'C' and content is saved to document, load `./step-04-journeys.md` to map user journeys.
|
||||
|
||||
Remember: Do NOT proceed to step-04 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -1,16 +1,3 @@
|
|||
---
|
||||
name: 'step-04-journeys'
|
||||
description: 'Map ALL user types that interact with the system with narrative story-based journeys'
|
||||
|
||||
# File References
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 4: User Journey Mapping
|
||||
|
||||
**Progress: Step 4 of 11** - Next: Domain Requirements
|
||||
|
|
@ -156,9 +143,9 @@ Present the user journey content for review, then display menu:
|
|||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Domain Requirements (Step 5 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Read fully and follow: {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: Read fully and follow: {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 read fully and follow: {nextStepFile}
|
||||
- IF A: Read fully and follow: skill:bmad-advanced-elicitation 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: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-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 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 read fully and follow: ./step-05-domain.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -209,6 +196,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/create-prd/steps-c/step-05-domain.md`.
|
||||
After user selects 'C' and content is saved to document, load `./step-05-domain.md`.
|
||||
|
||||
Remember: Do NOT proceed to step-05 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -1,24 +1,10 @@
|
|||
---
|
||||
name: 'step-05-domain'
|
||||
description: 'Explore domain-specific requirements for complex domains (optional step)'
|
||||
|
||||
# File References
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
domainComplexityCSV: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-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.
|
||||
For complex domains only that have a mapping in ../data/domain-complexity.csv, explore domain-specific constraints, compliance requirements, and technical considerations that shape the product.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
|
|
@ -93,7 +79,7 @@ Proceed with domain exploration.
|
|||
|
||||
**Attempt subprocess data lookup:**
|
||||
|
||||
"Your task: Lookup data in {domainComplexityCSV}
|
||||
"Your task: Lookup data in ../data/domain-complexity.csv
|
||||
|
||||
**Search criteria:**
|
||||
- Find row where domain matches {{domainFromStep02}}
|
||||
|
|
@ -155,9 +141,9 @@ Acknowledge the domain and explore what makes it complex:
|
|||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue - Save and Proceed to Innovation (Step 6 of 13)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Read fully and follow: {advancedElicitationTask}, and when finished redisplay the menu
|
||||
- IF P: Read fully and follow: {partyModeWorkflow}, and when finished redisplay the menu
|
||||
- IF C: Save content to {outputFile}, update frontmatter, then read fully and follow: {nextStepFile}
|
||||
- IF A: Read fully and follow: skill:bmad-advanced-elicitation, and when finished redisplay the menu
|
||||
- IF P: Read fully and follow: `{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md` and when finished redisplay the menu
|
||||
- IF C: Save content to {outputFile}, update frontmatter, then read fully and follow: ./step-06-innovation.md
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#n-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -179,7 +165,7 @@ 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 read fully and follow: `{nextStepFile}` to explore innovation.
|
||||
ONLY WHEN [C continue option] is selected and [content saved or skipped], will you then read fully and follow: `./step-06-innovation.md` to explore innovation.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1,19 +1,3 @@
|
|||
---
|
||||
name: 'step-06-innovation'
|
||||
description: 'Detect and explore innovative aspects of the product (optional step)'
|
||||
|
||||
# File References
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# Data Files
|
||||
projectTypesCSV: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 6: Innovation Discovery
|
||||
|
||||
**Progress: Step 6 of 11** - Next: Project Type Analysis
|
||||
|
|
@ -65,7 +49,7 @@ Detect and explore innovation patterns in the product, focusing on what makes it
|
|||
|
||||
Load innovation signals specific to this project type:
|
||||
|
||||
- Load `{projectTypesCSV}` completely
|
||||
- Load `../data/project-types.csv` completely
|
||||
- Find the row where `project_type` matches detected type from step-02
|
||||
- Extract `innovation_signals` (semicolon-separated list)
|
||||
- Extract `web_search_triggers` for potential innovation research
|
||||
|
|
@ -156,9 +140,9 @@ Present the innovation content for review, then display menu:
|
|||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Project Type Analysis (Step 7 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Read fully and follow: {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: Read fully and follow: {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 read fully and follow: {nextStepFile}
|
||||
- IF A: Read fully and follow: skill:bmad-advanced-elicitation 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: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-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 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 read fully and follow: ./step-07-project-type.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -177,7 +161,7 @@ Display: "**Select:** [A] Advanced Elicitation - Let's try to find innovative an
|
|||
|
||||
### Menu Handling Logic:
|
||||
- IF A: Proceed with content generation anyway, then return to menu
|
||||
- IF C: Skip this step, then read fully and follow: {nextStepFile}
|
||||
- IF C: Skip this step, then read fully and follow: ./step-07-project-type.md
|
||||
|
||||
### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
|
|
@ -213,7 +197,7 @@ When user selects 'C', append the content directly to the document using the str
|
|||
|
||||
## SKIP CONDITIONS:
|
||||
|
||||
Skip this step and load `{nextStepFile}` if:
|
||||
Skip this step and load `./step-07-project-type.md` if:
|
||||
|
||||
- No innovation signals detected in conversation
|
||||
- Product is incremental improvement rather than breakthrough
|
||||
|
|
@ -222,6 +206,6 @@ Skip this step and load `{nextStepFile}` if:
|
|||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document (or step is skipped), load `{nextStepFile}`.
|
||||
After user selects 'C' and content is saved to document (or step is skipped), load `./step-07-project-type.md`.
|
||||
|
||||
Remember: Do NOT proceed to step-07 until user explicitly selects 'C' from the A/P/C menu (or confirms step skip)!
|
||||
|
|
@ -1,19 +1,3 @@
|
|||
---
|
||||
name: 'step-07-project-type'
|
||||
description: 'Conduct project-type specific discovery using CSV-driven guidance'
|
||||
|
||||
# File References
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# Data Files
|
||||
projectTypesCSV: '../data/project-types.csv'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 7: Project-Type Deep Dive
|
||||
|
||||
**Progress: Step 7 of 11** - Next: Scoping
|
||||
|
|
@ -56,7 +40,7 @@ Conduct project-type specific discovery using CSV-driven guidance to define tech
|
|||
|
||||
**Attempt subprocess data lookup:**
|
||||
|
||||
"Your task: Lookup data in {projectTypesCSV}
|
||||
"Your task: Lookup data in ../data/project-types.csv
|
||||
|
||||
**Search criteria:**
|
||||
- Find row where project_type matches {{projectTypeFromStep02}}
|
||||
|
|
@ -173,9 +157,9 @@ Present the project-type content for review, then display menu:
|
|||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Scoping (Step 8 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Read fully and follow: {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: Read fully and follow: {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 read fully and follow: {nextStepFile}
|
||||
- IF A: Read fully and follow: skill:bmad-advanced-elicitation 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: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-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 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 read fully and follow: ./step-08-scoping.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -233,6 +217,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 `{nextStepFile}` to define project scope.
|
||||
After user selects 'C' and content is saved to document, load `./step-08-scoping.md` 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!
|
||||
|
|
@ -1,16 +1,3 @@
|
|||
---
|
||||
name: 'step-08-scoping'
|
||||
description: 'Define MVP boundaries and prioritize features across development phases'
|
||||
|
||||
# File References
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 8: Scoping Exercise - MVP & Future Features
|
||||
|
||||
**Progress: Step 8 of 11** - Next: Functional Requirements
|
||||
|
|
@ -184,9 +171,9 @@ Present the scoping decisions for review, then display menu:
|
|||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Functional Requirements (Step 9 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Read fully and follow: {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: Read fully and follow: {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 read fully and follow: {nextStepFile}
|
||||
- IF A: Read fully and follow: skill:bmad-advanced-elicitation 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: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md 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 read fully and follow: ./step-09-functional.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -224,6 +211,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 {nextStepFile}.
|
||||
After user selects 'C' and content is saved to document, load ./step-09-functional.md.
|
||||
|
||||
Remember: Do NOT proceed to step-09 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -1,16 +1,3 @@
|
|||
---
|
||||
name: 'step-09-functional'
|
||||
description: 'Synthesize all discovery into comprehensive functional requirements'
|
||||
|
||||
# File References
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 9: Functional Requirements Synthesis
|
||||
|
||||
**Progress: Step 9 of 11** - Next: Non-Functional Requirements
|
||||
|
|
@ -182,9 +169,9 @@ Present the functional requirements for review, then display menu:
|
|||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Non-Functional Requirements (Step 10 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Read fully and follow: {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: Read fully and follow: {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 read fully and follow: {nextStepFile}
|
||||
- IF A: Read fully and follow: skill:bmad-advanced-elicitation 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: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md 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 read fully and follow: ./step-10-nonfunctional.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -227,6 +214,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 {nextStepFile} to define non-functional requirements.
|
||||
After user selects 'C' and content is saved to document, load ./step-10-nonfunctional.md 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!
|
||||
|
|
@ -1,16 +1,3 @@
|
|||
---
|
||||
name: 'step-10-nonfunctional'
|
||||
description: 'Define quality attributes that matter for this specific product'
|
||||
|
||||
# File References
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 10: Non-Functional Requirements
|
||||
|
||||
**Progress: Step 10 of 12** - Next: Polish Document
|
||||
|
|
@ -169,9 +156,9 @@ Present the non-functional requirements for review, then display menu:
|
|||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Polish Document (Step 11 of 12)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Read fully and follow: {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: Read fully and follow: {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 read fully and follow: {nextStepFile}
|
||||
- IF A: Read fully and follow: skill:bmad-advanced-elicitation 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: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md 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 read fully and follow: ./step-11-polish.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -238,6 +225,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 {nextStepFile} to finalize the PRD and complete the workflow.
|
||||
After user selects 'C' and content is saved to document, load ./step-11-polish.md 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!
|
||||
|
|
@ -1,17 +1,3 @@
|
|||
---
|
||||
name: 'step-11-polish'
|
||||
description: 'Optimize and polish the complete PRD document for flow, coherence, and readability'
|
||||
|
||||
# File References
|
||||
nextStepFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
purposeFile: '{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: 'skill:bmad-advanced-elicitation'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 11: Document Polish
|
||||
|
||||
**Progress: Step 11 of 12** - Next: Complete PRD
|
||||
|
|
@ -56,7 +42,7 @@ Optimize the complete PRD document for flow, coherence, and professional present
|
|||
|
||||
**CRITICAL:** Load the PRD purpose document first:
|
||||
|
||||
- Read `{purposeFile}` to understand what makes a great BMAD PRD
|
||||
- Read `../data/prd-purpose.md` to understand what makes a great BMAD PRD
|
||||
- Internalize the philosophy: information density, traceability, measurable requirements
|
||||
- Keep the dual-audience nature (humans + LLMs) in mind
|
||||
|
||||
|
|
@ -186,9 +172,9 @@ Present the polished document for review, then display menu:
|
|||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Complete PRD (Step 12 of 12)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Read fully and follow: {advancedElicitationTask} with the polished document, process the enhanced refinements that come back, ask user "Accept these polish improvements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu
|
||||
- IF P: Read fully and follow: {partyModeWorkflow} with the polished document, process the collaborative refinements to flow and coherence, ask user "Accept these polish changes? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu
|
||||
- IF C: Save the polished document to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: {nextStepFile}
|
||||
- IF A: Read fully and follow: skill:bmad-advanced-elicitation with the polished document, process the enhanced refinements that come back, ask user "Accept these polish improvements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu
|
||||
- IF P: Read fully and follow: {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md with the polished document, process the collaborative refinements to flow and coherence, ask user "Accept these polish changes? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu
|
||||
- IF C: Save the polished document to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-12-complete.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
|
@ -230,6 +216,6 @@ When user selects 'C', replace the entire document content with the polished ver
|
|||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and polished document is saved, load `{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md` to complete the workflow.
|
||||
After user selects 'C' and polished document is saved, load `./step-12-complete.md` to complete the workflow.
|
||||
|
||||
Remember: Do NOT proceed to step-12 until user explicitly selects 'C' from the A/P/C menu and polished document is saved!
|
||||
|
|
@ -1,12 +1,3 @@
|
|||
---
|
||||
name: 'step-12-complete'
|
||||
description: 'Complete the PRD workflow, update status files, and suggest next steps including validation'
|
||||
|
||||
# File References
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
validationFlow: '../steps-v/step-v-01-discovery.md'
|
||||
---
|
||||
|
||||
# Step 12: Workflow Completion
|
||||
|
||||
**Final Step - Complete the PRD**
|
||||
|
|
@ -60,8 +51,8 @@ Inform user that the PRD is complete and polished:
|
|||
|
||||
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}"
|
||||
- Check workflow configuration for a status file (if one exists)
|
||||
- Update workflow_status["prd"] = "{outputFile}"
|
||||
- Save file, preserving all comments and structure
|
||||
- Mark current timestamp as completion time
|
||||
|
||||
|
|
@ -71,7 +62,7 @@ Offer validation workflows to ensure PRD is ready for implementation:
|
|||
|
||||
**Available Validation Workflows:**
|
||||
|
||||
**Option 1: Check Implementation Readiness** (`{checkImplementationReadinessWorkflow}`)
|
||||
**Option 1: Check Implementation Readiness** (`skill:bmad-check-implementation-readiness`)
|
||||
- Validates PRD has all information needed for development
|
||||
- Checks epic coverage completeness
|
||||
- Reviews UX alignment with requirements
|
||||
|
|
@ -1,8 +1,6 @@
|
|||
---
|
||||
name: create-prd
|
||||
description: 'Create a PRD from scratch. Use when the user says "lets create a product requirements document" or "I want to create a new PRD"'
|
||||
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||
nextStep: './steps-c/step-01-init.md'
|
||||
outputFile: '{planning_artifacts}/prd.md'
|
||||
---
|
||||
|
||||
# PRD Create Workflow
|
||||
|
|
@ -61,4 +59,4 @@ Load and read full config from {main_config} and resolve:
|
|||
|
||||
"**Create Mode: Creating a new PRD from scratch.**"
|
||||
|
||||
Read fully and follow: `{nextStep}` (steps-c/step-01-init.md)
|
||||
Read fully and follow: `./steps-c/step-01-init.md`
|
||||
|
|
@ -65,7 +65,7 @@ Create the brainstorming session document:
|
|||
mkdir -p "$(dirname "{brainstorming_session_output_file}")"
|
||||
|
||||
# Initialize from template
|
||||
cp "{template_path}" "{brainstorming_session_output_file}"
|
||||
cp "../template.md" "{brainstorming_session_output_file}"
|
||||
```
|
||||
|
||||
#### B. Context File Check and Loading
|
||||
|
|
|
|||
|
|
@ -40,8 +40,6 @@ Load config from `{project-root}/_bmad/core/config.yaml` and resolve:
|
|||
|
||||
### Paths
|
||||
|
||||
- `template_path` = `./template.md`
|
||||
- `brain_techniques_path` = `./brain-methods.csv`
|
||||
- `brainstorming_session_output_file` = `{output_folder}/brainstorming/brainstorming-session-{{date}}-{{time}}.md` (evaluated once at workflow start)
|
||||
|
||||
All steps MUST reference `{brainstorming_session_output_file}` instead of the full path pattern.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,300 @@
|
|||
# Skill Validator — Inference-Based
|
||||
|
||||
An LLM-readable validation prompt for skills following the Agent Skills open standard.
|
||||
|
||||
## How to Use
|
||||
|
||||
1. You are given a **skill directory path** to validate.
|
||||
2. Read every file in the skill directory recursively.
|
||||
3. Apply every rule in the catalog below to every applicable file.
|
||||
4. Produce a findings report using the report template at the end.
|
||||
|
||||
If no findings are generated, the skill passes validation.
|
||||
|
||||
---
|
||||
|
||||
## Definitions
|
||||
|
||||
- **Skill directory**: the folder containing `SKILL.md` and all supporting files.
|
||||
- **Internal reference**: a file path from one file in the skill to another file in the same skill.
|
||||
- **External reference**: a file path from a skill file to a file outside the skill directory.
|
||||
- **Originating file**: the file that contains the reference (path resolution is relative to this file's location).
|
||||
- **Config variable**: a name-value pair whose value comes from the project config file (e.g., `planning_artifacts`, `implementation_artifacts`, `communication_language`).
|
||||
- **Runtime variable**: a name-value pair whose value is set during workflow execution (e.g., `spec_file`, `date`, `status`).
|
||||
- **Intra-skill path variable**: a frontmatter variable whose value is a path to another file within the same skill — this is an anti-pattern.
|
||||
|
||||
---
|
||||
|
||||
## Rule Catalog
|
||||
|
||||
### SKILL-01 — SKILL.md Must Exist
|
||||
|
||||
- **Severity:** CRITICAL
|
||||
- **Applies to:** skill directory
|
||||
- **Rule:** The skill directory must contain a file named `SKILL.md` (exact case).
|
||||
- **Detection:** Check for the file's existence.
|
||||
- **Fix:** Create `SKILL.md` as the skill entrypoint.
|
||||
|
||||
### SKILL-02 — SKILL.md Must Have `name` in Frontmatter
|
||||
|
||||
- **Severity:** CRITICAL
|
||||
- **Applies to:** `SKILL.md`
|
||||
- **Rule:** The YAML frontmatter must contain a `name` field.
|
||||
- **Detection:** Parse the `---` delimited frontmatter block and check for `name:`.
|
||||
- **Fix:** Add `name: <skill-name>` to the frontmatter.
|
||||
|
||||
### SKILL-03 — SKILL.md Must Have `description` in Frontmatter
|
||||
|
||||
- **Severity:** CRITICAL
|
||||
- **Applies to:** `SKILL.md`
|
||||
- **Rule:** The YAML frontmatter must contain a `description` field.
|
||||
- **Detection:** Parse the `---` delimited frontmatter block and check for `description:`.
|
||||
- **Fix:** Add `description: '<what it does and when to use it>'` to the frontmatter.
|
||||
|
||||
### SKILL-04 — `name` Format
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** `SKILL.md`
|
||||
- **Rule:** The `name` value must use only lowercase letters, numbers, and hyphens. Max 64 characters. Must not contain "anthropic" or "claude".
|
||||
- **Detection:** Regex test: `^[a-z0-9][a-z0-9-]{0,62}[a-z0-9]$`. String search for forbidden substrings.
|
||||
- **Fix:** Rename to comply with the format.
|
||||
|
||||
### SKILL-05 — `name` Must Match Directory Name
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** `SKILL.md`
|
||||
- **Rule:** The `name` value in SKILL.md frontmatter must exactly match the skill directory name. The directory name is the canonical identifier used by installers, manifests, and `skill:` references throughout the project.
|
||||
- **Detection:** Compare the `name:` frontmatter value against the basename of the skill directory (i.e., the immediate parent directory of `SKILL.md`).
|
||||
- **Fix:** Change the `name:` value to match the directory name, or rename the directory to match — prefer changing `name:` unless other references depend on the current value.
|
||||
|
||||
### SKILL-06 — `description` Quality
|
||||
|
||||
- **Severity:** MEDIUM
|
||||
- **Applies to:** `SKILL.md`
|
||||
- **Rule:** The `description` must state both what the skill does AND when to use it. Max 1024 characters.
|
||||
- **Detection:** Check length. Look for trigger phrases like "Use when" or "Use if" — their absence suggests the description only says _what_ but not _when_.
|
||||
- **Fix:** Append a "Use when..." clause to the description.
|
||||
|
||||
---
|
||||
|
||||
### WF-01 — workflow.md Must NOT Have `name` in Frontmatter
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** `workflow.md` (if it exists)
|
||||
- **Rule:** The `name` field belongs only in `SKILL.md`. If `workflow.md` has YAML frontmatter, it must not contain `name:`.
|
||||
- **Detection:** Parse frontmatter and check for `name:` key.
|
||||
- **Fix:** Remove the `name:` line from workflow.md frontmatter.
|
||||
|
||||
### WF-02 — workflow.md Must NOT Have `description` in Frontmatter
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** `workflow.md` (if it exists)
|
||||
- **Rule:** The `description` field belongs only in `SKILL.md`. If `workflow.md` has YAML frontmatter, it must not contain `description:`.
|
||||
- **Detection:** Parse frontmatter and check for `description:` key.
|
||||
- **Fix:** Remove the `description:` line from workflow.md frontmatter.
|
||||
|
||||
### WF-03 — workflow.md Frontmatter Variables Must Be Config or Runtime Only
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** `workflow.md` frontmatter
|
||||
- **Rule:** Every variable defined in workflow.md frontmatter must be either:
|
||||
- A config variable (value references `{project-root}` or a config-derived variable like `{planning_artifacts}`)
|
||||
- A runtime variable (value is empty, a placeholder, or set during execution)
|
||||
- A legitimate external path expression
|
||||
|
||||
It must NOT be a path to a file within the skill directory.
|
||||
- **Detection:** For each frontmatter variable, check if its value resolves to a file inside the skill (e.g., starts with `./`, `{installed_path}`, or is a bare relative path to a sibling file). If so, it is an intra-skill path variable.
|
||||
- **Fix:** Remove the variable. Use a hardcoded relative path inline where the file is referenced.
|
||||
|
||||
---
|
||||
|
||||
### PATH-01 — Internal References Must Be Relative From Originating File
|
||||
|
||||
- **Severity:** CRITICAL
|
||||
- **Applies to:** all files in the skill
|
||||
- **Rule:** Any reference from one file in the skill to another file in the same skill must be a relative path resolved from the directory of the originating file. Use `./` prefix for siblings or children, `../` for parent traversal. Bare relative filenames in markdown links (e.g., `[text](sibling.md)`) are also acceptable.
|
||||
- **Detection:** Scan for file path references (in markdown links, frontmatter values, inline backtick paths, and prose instructions like "Read fully and follow"). Verify each internal reference uses relative notation (`./`, `../`, or bare filename). Always resolve the path from the originating file's directory — a reference to `./steps/step-01.md` from a file already inside `steps/` would resolve to `steps/steps/step-01.md`, which is wrong.
|
||||
- **Examples:**
|
||||
- CORRECT: `./steps/step-01-init.md` (from workflow.md at skill root to a step)
|
||||
- CORRECT: `./template.md` (from workflow.md to a sibling)
|
||||
- CORRECT: `../template.md` (from steps/step-01.md to a skill-root file)
|
||||
- CORRECT: `[workflow.md](workflow.md)` (markdown link to sibling — bare relative)
|
||||
- CORRECT: `./step-02-plan.md` (from steps/step-01.md to a sibling step)
|
||||
- WRONG: `./steps/step-02-plan.md` (from a file already inside steps/ — resolves to steps/steps/)
|
||||
- WRONG: `{installed_path}/template.md`
|
||||
- WRONG: `{project-root}/.claude/skills/my-skill/template.md`
|
||||
- WRONG: `/Users/someone/.claude/skills/my-skill/steps/step-01.md`
|
||||
- WRONG: `~/.claude/skills/my-skill/file.md`
|
||||
|
||||
### PATH-02 — No `installed_path` Variable
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** all files in the skill
|
||||
- **Rule:** The `installed_path` variable is an anti-pattern from the pre-skill workflow era. It must not be defined in any frontmatter, and `{installed_path}` must not appear anywhere in any file.
|
||||
- **Detection:** Search all files for:
|
||||
- Frontmatter key `installed_path:`
|
||||
- String `{installed_path}` anywhere in content
|
||||
- Markdown/prose assigning `installed_path` (e.g., `` `installed_path` = `.` ``)
|
||||
- **Fix:** Remove all `installed_path` definitions. Replace every `{installed_path}/path` with `./path` (relative from the file that contains the reference). If the reference is in a step file and points to a skill-root file, use `../path` instead.
|
||||
|
||||
### PATH-03 — External References Must Use `{project-root}` or Config Variables
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** all files in the skill
|
||||
- **Rule:** References to files outside the skill directory must use `{project-root}/...` or a config-derived variable path (e.g., `{planning_artifacts}/...`, `{implementation_artifacts}/...`).
|
||||
- **Detection:** Identify file references that point outside the skill. Verify they start with `{project-root}` or a known config variable. Flag absolute paths, home-relative paths (`~/`), or bare paths that resolve outside the skill.
|
||||
- **Fix:** Replace with `{project-root}/...` or the appropriate config variable.
|
||||
|
||||
### PATH-04 — No Intra-Skill Path Variables
|
||||
|
||||
- **Severity:** MEDIUM
|
||||
- **Applies to:** all files (frontmatter AND body content)
|
||||
- **Rule:** Variables must not store paths to files within the same skill. These paths should be hardcoded as relative paths inline where used. This applies to YAML frontmatter variables AND markdown body variable assignments (e.g., `` `template` = `./template.md` `` under a `### Paths` section).
|
||||
- **Detection:** For each variable with a path-like value — whether defined in frontmatter or in body text — determine if the target is inside the skill directory. Indicators: value starts with `./`, `../`, `{installed_path}`, or is a bare filename of a file that exists in the skill. Exclude variables whose values are prefixed with a config variable like `{planning_artifacts}`, `{implementation_artifacts}`, `{project-root}`, or other config-derived paths — these are external references and are legitimate.
|
||||
- **Fix:** Remove the variable. Replace each `{variable_name}` usage with the direct relative path.
|
||||
- **Exception:** If a path variable is used in 4+ locations across multiple files and the path is non-trivial, a variable MAY be acceptable. Flag it as LOW instead and note the exception.
|
||||
|
||||
---
|
||||
|
||||
### STEP-01 — Step File Naming
|
||||
|
||||
- **Severity:** MEDIUM
|
||||
- **Applies to:** files in `steps/` directory
|
||||
- **Rule:** Step files must be named `step-NN-description.md` where NN is a zero-padded two-digit number. An optional single-letter variant suffix is allowed for branching steps (e.g., `step-01b-continue.md`).
|
||||
- **Detection:** Regex: `^step-\d{2}[a-z]?-[a-z0-9-]+\.md$`
|
||||
- **Fix:** Rename to match the pattern.
|
||||
|
||||
### STEP-02 — Step Must Have a Goal Section
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** step files
|
||||
- **Rule:** Each step must clearly state its goal. Look for a heading like `## YOUR TASK`, `## STEP GOAL`, `## INSTRUCTIONS`, `## INITIALIZATION`, `## EXECUTION`, `# Step N:`, or a frontmatter `goal:` field.
|
||||
- **Detection:** Scan for goal-indicating headings (including `# Step N: Title` as a top-level heading that names the step's purpose) or frontmatter.
|
||||
- **Fix:** Add a clear goal section.
|
||||
|
||||
### STEP-03 — Step Must Reference Next Step
|
||||
|
||||
- **Severity:** MEDIUM
|
||||
- **Applies to:** step files (except the final step)
|
||||
- **Rule:** Each non-terminal step must contain a reference to the next step file for sequential execution.
|
||||
- **Detection:** Look for `## NEXT` section or inline reference to a next step file. Remember to resolve the reference from the originating file's directory (PATH-01 applies here too).
|
||||
- **Fix:** Add a `## NEXT` section with the relative path to the next step.
|
||||
- **Note:** A terminal step is one that has no next-step reference and either contains completion/finalization language or is the highest-numbered step. If a workflow branches, there may be multiple terminal steps.
|
||||
|
||||
### STEP-04 — Halt Before Menu
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** step files
|
||||
- **Rule:** Any step that presents a user menu (e.g., `[C] Continue`, `[A] Approve`, `[S] Split`) must explicitly HALT and wait for user response before proceeding.
|
||||
- **Detection:** Find menu patterns (bracketed letter options). Check that text within the same section (under the same heading) includes "HALT", "wait", "stop", "FORBIDDEN to proceed", or equivalent.
|
||||
- **Fix:** Add an explicit HALT instruction before or after the menu.
|
||||
|
||||
### STEP-05 — No Forward Loading
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** step files
|
||||
- **Rule:** A step must not load or read future step files until the current step is complete. Just-in-time loading only.
|
||||
- **Detection:** Look for instructions to read multiple step files simultaneously, or unconditional references to step files with higher numbers than the current step. Exempt locations: `## NEXT` sections, navigation/dispatch sections that list valid resumption targets, and conditional routing branches.
|
||||
- **Fix:** Remove premature step loading. Ensure only the current step is active.
|
||||
|
||||
### STEP-06 — Step File Frontmatter: No `name` or `description`
|
||||
|
||||
- **Severity:** MEDIUM
|
||||
- **Applies to:** step files
|
||||
- **Rule:** Step files should not have `name:` or `description:` in their YAML frontmatter. These are metadata noise — the step's purpose is conveyed by its goal section and filename.
|
||||
- **Detection:** Parse step file frontmatter for `name:` or `description:` keys.
|
||||
- **Fix:** Remove `name:` and `description:` from step file frontmatter.
|
||||
|
||||
### STEP-07 — Step Count
|
||||
|
||||
- **Severity:** LOW
|
||||
- **Applies to:** workflow as a whole
|
||||
- **Rule:** A sharded workflow should have between 2 and 10 step files. More than 10 risks LLM context degradation.
|
||||
- **Detection:** Count files matching `step-*.md` in the `steps/` directory.
|
||||
- **Fix:** Consider consolidating steps if over 10.
|
||||
|
||||
---
|
||||
|
||||
### SEQ-01 — No Skip Instructions
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** all files
|
||||
- **Rule:** No file should instruct the agent to skip steps or optimize step order. Sequential execution is mandatory.
|
||||
- **Detection:** Scan for phrases like "skip to step", "jump to step", "skip ahead", "optimize the order", "you may skip". Exclude negation context (e.g., "do NOT skip steps", "NEVER skip") — these are enforcement instructions, not skip instructions.
|
||||
- **Exception:** Conditional routing (e.g., "if X, go to step N; otherwise step M") is valid workflow branching, not skipping.
|
||||
|
||||
### SEQ-02 — No Time Estimates
|
||||
|
||||
- **Severity:** LOW
|
||||
- **Applies to:** all files
|
||||
- **Rule:** Workflow files should not include time estimates. AI execution speed varies too much for estimates to be meaningful.
|
||||
- **Detection:** Scan for patterns like "takes X minutes", "~N min", "estimated time", "ETA".
|
||||
- **Fix:** Remove time estimates.
|
||||
|
||||
---
|
||||
|
||||
### REF-01 — Variable References Must Be Defined
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** all files
|
||||
- **Rule:** Every `{variable_name}` reference in any file (body text, frontmatter values, inline instructions) must resolve to a defined source. Valid sources are:
|
||||
1. A frontmatter variable in the same file
|
||||
2. A frontmatter variable in the skill's `workflow.md` (workflow-level variables are available to all steps)
|
||||
3. A known config variable from the project config (e.g., `project-root`, `planning_artifacts`, `implementation_artifacts`, `communication_language`)
|
||||
4. A known runtime variable set during execution (e.g., `date`, `status`, `project_name`, user-provided input variables)
|
||||
- **Detection:** Collect all `{...}` tokens in the file. For each, check whether it is defined in the file's own frontmatter, in `workflow.md` frontmatter, or is a recognized config/runtime variable. Flag any token that cannot be traced to a source. Use the config variable list from the project's `config.yaml` as the reference for recognized config variables. Runtime variables are those explicitly described as user-provided or set during execution in the workflow instructions.
|
||||
- **Exceptions:**
|
||||
- Double-curly `{{variable}}` — these are template placeholders intended to survive into generated output (e.g., `{{project_name}}` in a template file). Do not flag these.
|
||||
- Variables inside fenced code blocks that are clearly illustrative examples.
|
||||
- **Fix:** Either define the variable in the appropriate frontmatter, or replace the reference with a literal value. If the variable is a config variable that was misspelled, correct the spelling.
|
||||
|
||||
### REF-02 — File References Must Resolve
|
||||
|
||||
- **Severity:** HIGH
|
||||
- **Applies to:** all files
|
||||
- **Rule:** All file path references within the skill (markdown links, backtick paths, frontmatter values) should point to files that plausibly exist.
|
||||
- **Detection:** For internal references, verify the target file exists in the skill directory. For external references using config variables, verify the path structure is plausible (you cannot resolve config variables, but you can check that the path after the variable looks reasonable — e.g., `{planning_artifacts}/*.md` is plausible, `{planning_artifacts}/../../etc/passwd` is not).
|
||||
- **Fix:** Correct the path or remove the dead reference.
|
||||
|
||||
---
|
||||
|
||||
## Report Template
|
||||
|
||||
When reporting findings, use this format:
|
||||
|
||||
```markdown
|
||||
# Skill Validation Report: {skill-name}
|
||||
|
||||
**Directory:** {path}
|
||||
**Date:** {date}
|
||||
**Files scanned:** {count}
|
||||
|
||||
## Summary
|
||||
|
||||
| Severity | Count |
|
||||
|----------|-------|
|
||||
| CRITICAL | N |
|
||||
| HIGH | N |
|
||||
| MEDIUM | N |
|
||||
| LOW | N |
|
||||
|
||||
## Findings
|
||||
|
||||
### {RULE-ID} — {Rule Title}
|
||||
|
||||
- **Severity:** {severity}
|
||||
- **File:** `{relative-path-within-skill}`
|
||||
- **Line:** {line number or range, if identifiable}
|
||||
- **Detail:** {what was found}
|
||||
- **Fix:** {specific fix for this instance}
|
||||
|
||||
---
|
||||
|
||||
(repeat for each finding, grouped by rule ID)
|
||||
|
||||
## Passed Rules
|
||||
|
||||
(list rule IDs that produced no findings)
|
||||
```
|
||||
|
||||
If zero findings: report "All {N} rules passed. No findings." and list all passed rule IDs.
|
||||
Loading…
Reference in New Issue