Compare commits

..

46 Commits

Author SHA1 Message Date
Alex Verkhovsky a136713dc9 refactor(skills): convert validate-prd to native skill directory
Move validate-prd from a workflow entry in create-prd manifest to a
self-contained skill at src/bmm/workflows/2-plan-workflows/bmad-validate-prd/.
Update pm.agent.yaml and module-help.csv to use skill: URI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 18:54:42 -06:00
Alex Verkhovsky 1dd6668a0d
Merge pull request #1984 from bmad-code-org/convert-create-prd-skill
refactor(skills): convert create-prd to native skill directory
2026-03-14 18:49:09 -06:00
Alex Verkhovsky b42f1e732a fix(skill): clean up bmad-create-prd validation findings
Strip name/description from all step frontmatter (STEP-06), remove
intra-skill path variables and inline them (PATH-04), move outputFile
to workflow.md (WF-03), fix stale step-11-complete refs (REF-02),
fix product_knowledge typo (REF-01), rewrite continuation logic
to use a lookup table, and strip legacy source workflow frontmatter.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 17:22:40 -06:00
Alex Verkhovsky 9f8f7f4a3e refactor(skills): convert create-prd to native skill directory
Move the create-prd workflow into src/core/tasks/bmad-create-prd/ as a
self-contained native skill with SKILL.md, workflow.md, steps-c/, data/,
and templates/. Update all internal path references from absolute
{project-root}/_bmad/... to relative paths. Mark the source
workflow-create-prd.md as standalone:false to prevent duplicate manifest
entries. Update pm.agent.yaml and module-help.csv to use skill:bmad-create-prd.
2026-03-14 17:21:11 -06:00
Alex Verkhovsky 6c83482513
Merge pull request #1997 from bmad-code-org/fix/quickflow-skill-validation-cleanup
fix(skill): validation cleanup for quick-flow skills
2026-03-14 17:07:45 -06:00
Alex Verkhovsky 5c24754627
Merge branch 'main' into fix/quickflow-skill-validation-cleanup 2026-03-14 17:06:28 -06:00
Alex Verkhovsky fe86785dbf
Merge pull request #1996 from bmad-code-org/fix/routine-skill-validation-cleanup
fix(skill): batch validation cleanup for 6 skills
2026-03-14 17:06:06 -06:00
Alex Verkhovsky 0efe81faec
Merge branch 'main' into fix/routine-skill-validation-cleanup 2026-03-14 17:05:27 -06:00
Alex Verkhovsky b1209a97da fix(skill): validation cleanup for quick-flow skills
bmad-quick-dev-new-preview: fix wrong step-to-step path references
from within steps/ directory, remove step frontmatter metadata and
intra-skill path variables.

bmad-quick-dev: remove step frontmatter metadata, inline nextStepFile
path variables as literal relative paths.

bmad-quick-spec: remove name/description from workflow.md frontmatter,
fix absolute self-references using {project-root} for intra-skill
paths, remove step frontmatter metadata.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 17:02:08 -06:00
Alex Verkhovsky 73e5552aad fix(skill): batch validation cleanup for 6 skills
Remove installed_path definitions, unused intra-skill path variables,
and inline variable references across: bmad-sprint-status,
bmad-document-project, bmad-generate-project-context,
bmad-qa-generate-e2e-tests, bmad-advanced-elicitation, and
bmad-brainstorming.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 17:02:04 -06:00
Alex Verkhovsky f7cd62acba
Merge pull request #1995 from bmad-code-org/fix/sprint-planning-skill-cleanup
fix(skill): clean up bmad-sprint-planning validation findings
2026-03-14 16:51:10 -06:00
Alex Verkhovsky 9976f06e46
Merge branch 'main' into fix/sprint-planning-skill-cleanup 2026-03-14 16:45:14 -06:00
Alex Verkhovsky 1338e4852d
Merge pull request #1993 from bmad-code-org/fix/retrospective-skill-cleanup
fix(skill): clean up bmad-retrospective validation findings
2026-03-14 16:44:45 -06:00
Alex Verkhovsky 6c259bbbc5
Merge pull request #1992 from bmad-code-org/fix/dev-story-skill-cleanup
fix(skill): clean up bmad-dev-story validation findings
2026-03-14 16:44:25 -06:00
Alex Verkhovsky f15b2d129f fix(skill): clean up bmad-sprint-planning validation findings
Remove installed_path and unused intra-skill path variables from
workflow.md (PATH-02, PATH-04).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 16:43:19 -06:00
Alex Verkhovsky f04a1ba8d8
Merge branch 'main' into fix/dev-story-skill-cleanup 2026-03-14 16:41:20 -06:00
Alex Verkhovsky b9b135573d
Merge pull request #1991 from bmad-code-org/fix/create-story-skill-cleanup
fix(skill): clean up bmad-create-story validation findings
2026-03-14 16:39:51 -06:00
Alex Verkhovsky 709b4e8fc9 fix(skill): clean up bmad-retrospective validation findings
Remove unused installed_path from workflow.md (PATH-02).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 16:39:33 -06:00
Alex Verkhovsky 930b5fd7ea
Merge branch 'main' into fix/dev-story-skill-cleanup 2026-03-14 16:37:46 -06:00
Alex Verkhovsky 6721904adb fix(skill): clean up bmad-dev-story validation findings
Remove unused intra-skill path variable from workflow.md (PATH-04).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 16:36:35 -06:00
Alex Verkhovsky 74391d712b
Merge branch 'main' into fix/create-story-skill-cleanup 2026-03-14 16:35:22 -06:00
Alex Verkhovsky 93a808a3d6 fix(skill): clean up bmad-create-story validation findings
Remove installed_path and intra-skill path variables from
workflow.md (PATH-02, PATH-04).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 16:33:40 -06:00
Alex Verkhovsky 54d097c8ca
Merge pull request #1990 from bmad-code-org/fix/code-review-skill-cleanup
fix(skill): clean up bmad-code-review validation findings
2026-03-14 16:33:08 -06:00
Alex Verkhovsky fb4d9169a6
Merge branch 'main' into fix/code-review-skill-cleanup 2026-03-14 16:32:08 -06:00
Alex Verkhovsky 71630bc4e9
Merge pull request #1989 from bmad-code-org/fix/create-epics-stories-skill-cleanup
fix(skill): clean up bmad-create-epics-and-stories validation findings
2026-03-14 16:31:37 -06:00
Alex Verkhovsky 211c7e38c3
Merge branch 'main' into fix/create-epics-stories-skill-cleanup 2026-03-14 16:30:15 -06:00
Alex Verkhovsky e0a56489f7
Merge pull request #1987 from bmad-code-org/fix/create-architecture-skill-cleanup
fix(skill): clean up bmad-create-architecture validation findings
2026-03-14 16:29:47 -06:00
Alex Verkhovsky 2d78e1d942
Merge branch 'main' into fix/create-epics-stories-skill-cleanup 2026-03-14 16:29:42 -06:00
Alex Verkhovsky 7e6c26cd04
Merge branch 'main' into fix/create-architecture-skill-cleanup 2026-03-14 16:28:57 -06:00
Alex Verkhovsky b3d0810042
Merge pull request #1981 from bmad-code-org/feat/skill-validator
feat(tools): add inference-based skill validator
2026-03-14 16:28:07 -06:00
Alex Verkhovsky df5c32e0dd fix(skill): clean up bmad-code-review validation findings
Remove installed_path definition and intra-skill path variables
from workflow.md (PATH-02, PATH-04).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 16:27:27 -06:00
Alex Verkhovsky d343fbe55f
Merge branch 'main' into feat/skill-validator 2026-03-14 16:27:24 -06:00
Alex Verkhovsky b0d4bf7e28
Merge pull request #1986 from bmad-code-org/fix/check-impl-readiness-skill-cleanup
fix(skill): clean up bmad-check-implementation-readiness validation findings
2026-03-14 16:26:41 -06:00
Alex Verkhovsky 9471c832d5
Merge branch 'main' into fix/check-impl-readiness-skill-cleanup 2026-03-14 16:26:02 -06:00
Alex Verkhovsky 2c23522d87 fix(skill): clean up bmad-create-epics-and-stories validation findings
Remove name/description from step frontmatter (STEP-06) and add
missing HALT before user menu in step-04-final-validation (STEP-04).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 16:24:30 -06:00
Alex Verkhovsky 089c19d7ab fix(skill): clean up bmad-create-architecture validation findings
Remove installed_path and intra-skill path variables (PATH-02, PATH-04),
prefix bare docs/** with {project-root} (PATH-03), fix misspelled
{product_knowledge} -> {project_knowledge} (REF-01).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 16:20:33 -06:00
Alex Verkhovsky b9926e1c4a fix(skill): clean up bmad-check-implementation-readiness validation findings
Remove name/description from step frontmatter (STEP-06) and inline
nextStepFile/templateFile path variables as literal relative paths
(PATH-04).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 16:16:34 -06:00
Alex Verkhovsky 304ef02427
Merge pull request #1985 from bmad-code-org/convert-edit-prd-skill
Convert bmad-edit-prd from type:workflow to native skill
2026-03-14 16:08:03 -06:00
Alex Verkhovsky 122ef9b43c
Merge pull request #1983 from bmad-code-org/fix/create-ux-design-skill-cleanup
fix(skill): clean up bmad-create-ux-design validation findings
2026-03-14 16:06:30 -06:00
Alex Verkhovsky 2b2b9201a7
Merge branch 'main' into fix/create-ux-design-skill-cleanup 2026-03-14 16:06:20 -06:00
Alex Verkhovsky 516557451a refactor: convert bmad-edit-prd from shared workflow to standalone skill
Move edit-prd workflow and steps-e/ out of the shared create-prd directory
into its own bmad-edit-prd skill directory with SKILL.md, workflow.md, and
bmad-skill-manifest.yaml. Update pm.agent.yaml and module-help.csv to use
skill:bmad-edit-prd. Fix validationWorkflow path in step-e-04 to use
absolute {project-root} reference since relative path breaks after move.
2026-03-14 16:05:57 -06:00
Alex Verkhovsky f3d6ee2cb8 fix(skill): clean up bmad-create-ux-design validation findings
Remove installed_path and intra-skill template_path variable (PATH-02,
PATH-04), prefix bare docs/** with {project-root} (PATH-03), inline
undefined variable references (REF-01), fix wrong config variable in
output path (REF-02).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 16:04:03 -06:00
Alex Verkhovsky 9d17cee2a8
Merge pull request #1982 from bmad-code-org/fix/product-brief-skill-cleanup
fix(skill): clean up bmad-create-product-brief validation findings
2026-03-14 16:03:19 -06:00
Alex Verkhovsky f4084ea199 feat(tools): add SKILL-05 name-matches-dir and REF-01 variable-defined rules
SKILL-05 checks that SKILL.md name matches the directory name.
REF-01 checks that every {variable} traces to frontmatter, config,
or runtime — exempts {{double-curly}} template placeholders.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 15:49:10 -06:00
Alex Verkhovsky b93d0087db fix(skill): clean up bmad-create-product-brief validation findings
Remove name/description from step frontmatter (STEP-06), inline
intra-skill path variables (PATH-04), prefix bare external path
with {project-root} (PATH-03), and normalize template placeholders
to double-curly convention (REF-01).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 15:49:07 -06:00
Alex Verkhovsky 6ff29d4707 feat(tools): add inference-based skill validator
LLM-readable validation prompt covering 19 rules across 6 categories:
SKILL.md frontmatter, workflow.md hygiene, path resolution, step file
structure, sequential execution, and file reference integrity. Designed
to catch anti-patterns from mechanical workflow-to-skill conversions
(installed_path abuse, intra-skill path variables, metadata in wrong
frontmatter).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 15:18:55 -06:00
91 changed files with 709 additions and 535 deletions

View File

@ -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

View File

@ -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 module phase name code sequence workflow-file command required agent options description output-location outputs
15 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
16 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
17 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
18 bmm 2-planning Create PRD CP 10 _bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md skill:bmad-create-prd bmad-bmm-create-prd true pm Create Mode Expert led facilitation to produce your Product Requirements Document planning_artifacts prd
19 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
20 bmm 2-planning Edit PRD EP 25 _bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md skill:bmad-edit-prd bmad-bmm-edit-prd false pm Edit Mode Improve and enhance an existing PRD planning_artifacts updated prd
21 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
22 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
23 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

View File

@ -1,8 +1,8 @@
---
stepsCompleted: []
inputDocuments: []
date: { system-date }
author: { user }
date: {{system-date}}
author: {{user_name}}
---
# Product Brief: {{project_name}}

View File

@ -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.
---

View File

@ -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'
---

View File

@ -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.
---

View File

@ -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.
---

View File

@ -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.
---

View File

@ -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.
---

View File

@ -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'
---

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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).

View File

@ -0,0 +1 @@
type: skill

View File

@ -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

View File

@ -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'
---

View File

@ -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'"

View File

@ -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.
---

View File

@ -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`
---

View File

@ -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`
---

View File

@ -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`
---

View File

@ -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.
---

View File

@ -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'
---

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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.

View File

@ -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>

View File

@ -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`

View File

@ -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`

View File

@ -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

View File

@ -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}`

View File

@ -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

View File

@ -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>

View File

@ -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`

View File

@ -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>

View File

@ -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`

View File

@ -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:

View File

@ -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`

View File

@ -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`
---

View File

@ -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`.

View File

@ -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`

View File

@ -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`

View File

@ -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`

View File

@ -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 24.
- **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 24.
- **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`

View File

@ -1,6 +1,4 @@
---
name: 'step-05-present'
description: 'Present findings, get approval, create PR'
---
# Step 5: Present

View File

@ -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

View File

@ -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."
---

View File

@ -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
---

View File

@ -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`.
---

View File

@ -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`.
---

View File

@ -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.
---

View File

@ -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

View File

@ -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

View File

@ -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'
---

View File

@ -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'
---

View File

@ -1,7 +1,4 @@
---
name: 'step-04-review'
description: 'Review and finalize the tech-spec'
wipFile: '{implementation_artifacts}/tech-spec-wip.md'
---

View File

@ -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

View File

@ -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).

View File

@ -0,0 +1 @@
type: skill

View File

@ -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"
1 domain signals complexity key_concerns required_knowledge suggested_workflow web_searches special_sections
2 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
3 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
4 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
5 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
6 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
7 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
8 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
9 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
10 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
11 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
12 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
13 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
14 gaming game,player,gameplay,level,character,multiplayer,quest redirect REDIRECT TO GAME WORKFLOWS Game design game-brief NA NA
15 general low Standard requirements;Basic security;User experience;Performance General software practices continue software development best practices {date} standard_requirements

View File

@ -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.

View File

@ -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 project_type detection_signals key_questions required_sections skip_sections web_search_triggers innovation_signals
2 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
3 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
4 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
5 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
6 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
7 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
8 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
9 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
10 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
11 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

View File

@ -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.
---

View File

@ -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.

View File

@ -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.
---

View File

@ -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.
---

View File

@ -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.
---

View File

@ -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!

View File

@ -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!

View File

@ -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.
---

View File

@ -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)!

View File

@ -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!

View File

@ -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!

View File

@ -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!

View File

@ -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!

View File

@ -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!

View File

@ -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

View File

@ -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`

View File

@ -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

View File

@ -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.

300
tools/skill-validator.md Normal file
View File

@ -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.