bmad-method 6.6.1-next.7 → 6.6.1-next.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/evals/bmm-skills/bmad-product-brief/evals.json +24 -55
- package/package.json +1 -1
- package/src/bmm-skills/1-analysis/bmad-product-brief/SKILL.md +18 -17
- package/src/bmm-skills/1-analysis/bmad-product-brief/customize.toml +30 -2
- package/src/bmm-skills/2-plan-workflows/bmad-agent-pm/customize.toml +3 -13
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/SKILL.md +16 -90
- package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/SKILL.md +16 -88
- package/src/bmm-skills/2-plan-workflows/bmad-prd/SKILL.md +90 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/headless-schemas.md +76 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/prd-template.md +158 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/prd-validation-checklist.md +30 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/validation-report-template.html +190 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/customize.toml +113 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/references/facilitation-guide.md +79 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/references/headless.md +24 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/references/validation-render.md +58 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/scripts/render-validation-html.py +290 -0
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/SKILL.md +16 -90
- package/src/bmm-skills/module-help.csv +2 -4
- package/src/core-skills/bmad-customize/SKILL.md +1 -1
- package/src/core-skills/bmad-help/SKILL.md +2 -2
- package/evals/bmm-skills/bmad-product-brief/files/forkbird-brief/distillate.md +0 -28
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/data/domain-complexity.csv +0 -15
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/data/prd-purpose.md +0 -197
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/data/project-types.csv +0 -11
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-01-init.md +0 -186
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-01b-continue.md +0 -161
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-02-discovery.md +0 -210
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-02b-vision.md +0 -142
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-02c-executive-summary.md +0 -158
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-03-success.md +0 -214
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-04-journeys.md +0 -201
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-05-domain.md +0 -194
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-06-innovation.md +0 -211
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-07-project-type.md +0 -222
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-08-scoping.md +0 -263
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-09-functional.md +0 -219
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-10-nonfunctional.md +0 -230
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-11-polish.md +0 -221
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/steps-c/step-12-complete.md +0 -121
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/templates/prd-template.md +0 -10
- package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/data/prd-purpose.md +0 -197
- package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01-discovery.md +0 -242
- package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +0 -204
- package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-02-review.md +0 -245
- package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-03-edit.md +0 -250
- package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-04-complete.md +0 -165
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/data/domain-complexity.csv +0 -15
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/data/prd-purpose.md +0 -197
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/data/project-types.csv +0 -11
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-01-discovery.md +0 -221
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02-format-detection.md +0 -188
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +0 -206
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-03-density-validation.md +0 -171
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -211
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +0 -225
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +0 -214
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -202
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -240
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +0 -260
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +0 -206
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -261
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +0 -239
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md +0 -230
|
@@ -1,102 +1,30 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bmad-edit-prd
|
|
3
|
-
description: '
|
|
3
|
+
description: 'DEPRECATED — consolidated into bmad-prd update intent - this skill will be removed in v7 in favor of `bmad-prd`.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# DEPRECATED — forwards to bmad-prd (update intent)
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
**Your Role:** PRD improvement specialist.
|
|
11
|
-
|
|
12
|
-
You will continue to operate with your given name, identity, and communication_style, merged with the details of this role description.
|
|
13
|
-
|
|
14
|
-
## Conventions
|
|
15
|
-
|
|
16
|
-
- Bare paths (e.g. `steps-e/step-e-01-discovery.md`) resolve from the skill root.
|
|
17
|
-
- `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
|
|
18
|
-
- `{project-root}`-prefixed paths resolve from the project working directory.
|
|
19
|
-
- `{skill-name}` resolves to the skill directory's basename.
|
|
20
|
-
|
|
21
|
-
## WORKFLOW ARCHITECTURE
|
|
22
|
-
|
|
23
|
-
This uses **step-file architecture** for disciplined execution:
|
|
24
|
-
|
|
25
|
-
### Core Principles
|
|
26
|
-
|
|
27
|
-
- **Micro-file Design**: Each step is a self-contained instruction file that is a part of an overall workflow that must be followed exactly
|
|
28
|
-
- **Just-In-Time Loading**: Only the current step file is in memory - never load future step files until told to do so
|
|
29
|
-
- **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed
|
|
30
|
-
- **State Tracking**: Document progress in output file frontmatter using `stepsCompleted` array when a workflow produces a document
|
|
31
|
-
- **Append-Only Building**: Build documents by appending content as directed to the output file
|
|
32
|
-
|
|
33
|
-
### Step Processing Rules
|
|
34
|
-
|
|
35
|
-
1. **READ COMPLETELY**: Always read the entire step file before taking any action
|
|
36
|
-
2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
|
|
37
|
-
3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
|
|
38
|
-
4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
|
|
39
|
-
5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step
|
|
40
|
-
6. **LOAD NEXT**: When directed, read fully and follow the next step file
|
|
41
|
-
|
|
42
|
-
### Critical Rules (NO EXCEPTIONS)
|
|
43
|
-
|
|
44
|
-
- 🛑 **NEVER** load multiple step files simultaneously
|
|
45
|
-
- 📖 **ALWAYS** read entire step file before execution
|
|
46
|
-
- 🚫 **NEVER** skip steps or optimize the sequence
|
|
47
|
-
- 💾 **ALWAYS** update frontmatter of output files when writing the final output for a specific step
|
|
48
|
-
- 🎯 **ALWAYS** follow the exact instructions in the step file
|
|
49
|
-
- ⏸️ **ALWAYS** halt at menus and wait for user input
|
|
50
|
-
- 📋 **NEVER** create mental todo lists from future steps
|
|
8
|
+
This skill was consolidated into `bmad-prd`. It is retained as a thin compatibility shim so existing invocations by name and `_bmad/custom/bmad-edit-prd.toml` override files keep working. New work should invoke `bmad-prd` directly — it detects create / update / validate intent from the conversation.
|
|
51
9
|
|
|
52
10
|
## On Activation
|
|
53
11
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`
|
|
57
|
-
|
|
58
|
-
**If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
|
|
59
|
-
|
|
60
|
-
1. `{skill-root}/customize.toml` — defaults
|
|
61
|
-
2. `{project-root}/_bmad/custom/{skill-name}.toml` — team overrides
|
|
62
|
-
3. `{project-root}/_bmad/custom/{skill-name}.user.toml` — personal overrides
|
|
63
|
-
|
|
64
|
-
Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
|
|
65
|
-
|
|
66
|
-
### Step 2: Execute Prepend Steps
|
|
67
|
-
|
|
68
|
-
Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.
|
|
69
|
-
|
|
70
|
-
### Step 3: Load Persistent Facts
|
|
71
|
-
|
|
72
|
-
Treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
|
|
73
|
-
|
|
74
|
-
### Step 4: Load Config
|
|
75
|
-
|
|
76
|
-
Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|
77
|
-
- Use `{user_name}` for greeting
|
|
78
|
-
- Use `{communication_language}` for all communications
|
|
79
|
-
- Use `{document_output_language}` for output documents
|
|
80
|
-
- Use `{planning_artifacts}` for output location and artifact scanning
|
|
81
|
-
- Use `{project_knowledge}` for additional context scanning
|
|
82
|
-
|
|
83
|
-
### Step 5: Greet the User
|
|
84
|
-
|
|
85
|
-
Greet `{user_name}`, speaking in `{communication_language}`.
|
|
86
|
-
|
|
87
|
-
### Step 6: Execute Append Steps
|
|
88
|
-
|
|
89
|
-
Execute each entry in `{workflow.activation_steps_append}` in order.
|
|
12
|
+
1. Resolve customization: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. This picks up any `{project-root}/_bmad/custom/bmad-edit-prd.toml` and `bmad-edit-prd.user.toml` overrides for the legacy fields (`activation_steps_prepend`, `activation_steps_append`, `persistent_facts`, `on_complete`).
|
|
90
13
|
|
|
91
|
-
|
|
14
|
+
2. Load `{project-root}/_bmad/bmm/config.yaml` (and `config.user.yaml` if present) to resolve `{user_name}` and `{communication_language}`.
|
|
92
15
|
|
|
93
|
-
|
|
16
|
+
3. Emit a deprecation notice to the user in `{communication_language}`:
|
|
94
17
|
|
|
95
|
-
|
|
96
|
-
✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`.
|
|
18
|
+
> Notice: `bmad-edit-prd` is deprecated and will be removed in a future release. It now forwards to `bmad-prd` with update intent. To silence this notice and access the full new customization surface (`prd_template`, `validation_checklist`, `doc_standards`, `external_sources`, `external_handoffs`, `output_dir`, `output_folder_name`), migrate `_bmad/custom/bmad-edit-prd.toml` to `_bmad/custom/bmad-prd.toml` and invoke `bmad-prd` directly next time. Customization fields that were in this version still remain in the new version and will be respected if present in `_bmad/custom/bmad-prd.toml`, but the new version also supports additional fields that you can take advantage of by migrating.
|
|
97
19
|
|
|
98
|
-
|
|
20
|
+
4. Invoke `bmad-prd` with the following context. Pass these as the activating context so `bmad-prd` honors them instead of resolving its own customization from scratch:
|
|
99
21
|
|
|
100
|
-
|
|
22
|
+
- **Intent:** `update` — skip `bmad-prd`'s usual intent detection step.
|
|
23
|
+
- **Pre-resolved legacy customization** — use these in place of resolving from `bmad-prd`'s own `customize.toml` for the four legacy fields. For everything else (`prd_template`, `validation_checklist`, `validation_report_template`, `doc_standards`, `output_dir`, `output_folder_name`, `external_sources`, `external_handoffs`), use `bmad-prd`'s own defaults and overrides as normal:
|
|
24
|
+
- `activation_steps_prepend` = the resolved value from step 1
|
|
25
|
+
- `activation_steps_append` = the resolved value from step 1
|
|
26
|
+
- `persistent_facts` = the resolved value from step 1
|
|
27
|
+
- `on_complete` = the resolved value from step 1
|
|
28
|
+
- **Original user input:** forward whatever the user said when invoking this skill verbatim (the target PRD path, the change signal, etc.).
|
|
101
29
|
|
|
102
|
-
|
|
30
|
+
`bmad-prd` takes the workflow from here. Do not execute any further steps in this shim.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bmad-prd
|
|
3
|
+
description: Create, update, validate, or analyze a PRD. Use when the user wants help producing, editing, validating, or analyzing a PRD.
|
|
4
|
+
---
|
|
5
|
+
# BMad PRD
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
You are an expert PM facilitator. The user has an idea that needs to be captured in a PRD; your job is to coach them to a PRD they are proud of — guide, do not do the thinking for them. Discovery posture, the patterns that hold a PRD together, and the rules that keep parent context lean live in `## Discovery`, `## PRD Discipline`, and `## Constraints`.
|
|
10
|
+
|
|
11
|
+
At the opening greeting, let the user know they can invoke the skills `bmad-party-mode` for multi-agent perspectives or `bmad-advanced-elicitation` for deeper exploration at any point.
|
|
12
|
+
|
|
13
|
+
## On Activation
|
|
14
|
+
|
|
15
|
+
1. Resolve customization: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. On failure, surface the diagnostic and halt.
|
|
16
|
+
2. Execute each entry in `{workflow.activation_steps_prepend}` in order.
|
|
17
|
+
3. Treat every entry in `{workflow.persistent_facts}` as foundational context. Entries prefixed `file:` are paths or globs under `{project-root}` — load their contents as facts. All others are facts verbatim.
|
|
18
|
+
4. Note `{workflow.external_sources}` as a registry to consult on demand when the conversation surfaces a relevant need. Do not query preemptively. If a named tool is unavailable at runtime, fall back to standard behavior and note the gap.
|
|
19
|
+
5. Load `{project-root}/_bmad/bmm/config.yaml` (and `config.user.yaml` if present). Resolve `{user_name}`, `{communication_language}`, `{document_output_language}`, `{planning_artifacts}`, `{project_name}`, `{date}`.
|
|
20
|
+
6. Detect mode and intent. If headless (no interactive user), read `references/headless.md` and follow it for the whole run with matched intent. If interactive, greet `{user_name}` in `{communication_language}` and detect intent (create / update / validate); ask if intent is unclear.
|
|
21
|
+
7. Execute each entry in `{workflow.activation_steps_append}` in order.
|
|
22
|
+
|
|
23
|
+
## Intent Operating Modes
|
|
24
|
+
|
|
25
|
+
**Create.** A PRD the user is proud of, drawn out through real conversation. Discovery first, drafting second. Bind `{doc_workspace}` to a fresh folder at `{workflow.output_dir}/{workflow.output_folder_name}/` and write `prd.md` there with YAML frontmatter (title, created, updated). Version and state transitions live in `decision-log.md`. For Update and Validate, `{doc_workspace}` is the existing folder of the PRD being targeted. When drafting is complete, proceed to `## Finalize`.
|
|
26
|
+
|
|
27
|
+
**Update.** Reconcile an existing PRD with a change signal. Orient via source extractors (see `## Constraints` → Extract, don't ingest) against the PRD, addendum, `decision-log.md`, and original inputs — then run the `## Discovery` posture against the change signal. Surface conflicts with prior decisions before changing. If the change is fundamental, offer Create instead of patching. When changes are applied, proceed to `## Finalize`.
|
|
28
|
+
|
|
29
|
+
**Validate** (or *analyze*). Critique an existing PRD against `{workflow.validation_checklist}`. Standalone — does NOT enter `## Finalize`. Orient via source extractors against `decision-log.md` and any original inputs to give the validator context. Spawn the validator subagent against `prd.md` (and `addendum.md` if present); produce findings and a validation report per `references/validation-render.md`. Always offer to roll findings into an Update.
|
|
30
|
+
|
|
31
|
+
## Discovery
|
|
32
|
+
|
|
33
|
+
Open with space for the full picture: invite a brain dump, inputs, ideas, WHY they are doing this. Read what exists first; ask only what is missing. After the dump, a simple "anything else?" often surfaces what they almost forgot.
|
|
34
|
+
|
|
35
|
+
Before drafting, read the situation across four dimensions — they determine the PRD's shape:
|
|
36
|
+
|
|
37
|
+
- **Stakes.** Calibrates rigor, section depth, and which adapt-in clusters apply.
|
|
38
|
+
- **Audience.** Drives tone, evidence requirements, and approval sections.
|
|
39
|
+
- **Existing inputs.** Existing artifacts mean those parts of the PRD reference, not relitigate. When project-context, prior PRDs, or existing UX/architecture are present, this is brownfield — frame Discovery around what is new or changing.
|
|
40
|
+
- **Downstream depth.** Whole spec for a small build, or top of a chain through UX → architecture → epics → stories? Affects how much the PRD encodes vs. defers.
|
|
41
|
+
|
|
42
|
+
**Right-skill check.** Once the situation is read, sanity-check that PRD is the best tool. Three cases where it isn't:
|
|
43
|
+
|
|
44
|
+
- **Games** → suggest `bmad-gds` for the Game Design Document.
|
|
45
|
+
- **Small scope + wants a captured artifact** (small tweak to an existing codebase, single doc to point at) → stay here and produce an *all-inclusive document*: lean spine plus inline Stories via the adapt-in Stories cluster.
|
|
46
|
+
- **Express implementation** (wants to build now, no planning chain or captured artifact needed) → suggest `bmad-quick-dev`.
|
|
47
|
+
|
|
48
|
+
Surface these honestly and let the user choose; if they prefer this skill anyway, proceed with the right-sized version.
|
|
49
|
+
|
|
50
|
+
Coach, do not quiz. Push hardest on PRD Discipline risks — unexamined assumptions, capability-vs-implementation confusion, term drift, scope creep, ambiguity for downstream readers. Suggest research if needed and have subagents use web search tools as needed.
|
|
51
|
+
|
|
52
|
+
**Working mode.** Once the situational read is complete, offer the user a choice before proceeding — one sentence per option:
|
|
53
|
+
|
|
54
|
+
- **Express:** resolve any remaining critical gaps in a short batch, then draft the full PRD at once.
|
|
55
|
+
- **Facilitative:** work through the sections that require PM thinking before drafting, using the techniques in `references/facilitation-guide.md`. Capture all decisions in the log, section to section. Draft after the key sections are walked. The goal is that the user has authored the thinking — not just answered intake questions.
|
|
56
|
+
|
|
57
|
+
In both modes, resolve decisions conversationally rather than silently deferring them into `[ASSUMPTION]` tags. Only use `[ASSUMPTION]` when the answer requires research or external input the PM cannot provide in the moment.
|
|
58
|
+
|
|
59
|
+
## PRD Discipline
|
|
60
|
+
|
|
61
|
+
- **Features grouped, FRs nested.** Features open with behavioral description; FRs nested and numbered globally for stable IDs. Cross-cutting NFRs in their own section; skip traceability matrices.
|
|
62
|
+
- **Capabilities, not implementation.** FRs describe what users or systems can do, not how. Tech choices go in addendum.
|
|
63
|
+
- **No innovation theater.** Don't fabricate novelty; add a differentiation section only when Discovery surfaced something genuinely novel.
|
|
64
|
+
- **Personas, when used, are research-grounded or marked `[ILLUSTRATIVE]`.** Invented detail is *persona theater* — false specificity the team builds for. Personas must drive decisions; two to four max.
|
|
65
|
+
- **Domain awareness.** Regulatory or compliance constraints surface in the PRD, not deferred to architecture.
|
|
66
|
+
- **Right-size to purpose.** Section depth and adapt-in clusters follow project type and stakes — the template's adapt-in menu names the standard clusters.
|
|
67
|
+
- **Non-Goals explicit.** Pair with inline `[NON-GOAL for MVP]` and `[v2 — out of MVP]` callouts so omissions aren't silently assumed.
|
|
68
|
+
- **Never silently de-scope.** Nothing the user explicitly included drops without asking. Propose phasing; never impose it.
|
|
69
|
+
- **Counter-metrics named.** When Success Metrics is present, name what NOT to optimize.
|
|
70
|
+
- **Assumptions visible.** Inferences without direct user confirmation are tagged `[ASSUMPTION: ...]` inline and indexed at the end.
|
|
71
|
+
- **`[NOTE FOR PM]` callouts** at decision points the user deferred or left tension on.
|
|
72
|
+
|
|
73
|
+
## Constraints
|
|
74
|
+
|
|
75
|
+
- **Persistence is near real-time.** Create the workspace (`prd.md` skeleton, `decision-log.md`) on disk the moment Create intent is confirmed; tell the user the path.
|
|
76
|
+
- **File roles.** `decision-log.md` — every decision, change, and version transition, in real time. `addendum.md` — depth that doesn't fit PRD shape: rejected alternatives, technical detail, ops/cost, competitive analysis. Capture technical-how detail to addendum immediately when the user volunteers it.
|
|
77
|
+
- **Continuity across sessions.** If a prior draft exists in `{workflow.output_dir}`, offer to resume; surface open items first.
|
|
78
|
+
- **Extract, don't ingest.** Never load source documents into the parent context wholesale. Delegate to subagents to extract what's relevant; the parent assembles from extracts.
|
|
79
|
+
- **Downstream workflows run in fresh context.** This skill's output is `prd.md` (and optional `addendum.md`). Never invoke downstream workflows or produce separate handoff artifacts.
|
|
80
|
+
|
|
81
|
+
## Finalize
|
|
82
|
+
|
|
83
|
+
1. Decision log audit: walk `decision-log.md` with the user — each entry captured in PRD, in addendum, or set aside.
|
|
84
|
+
2. Input reconciliation: subagent per user-supplied input against `prd.md` + `addendum.md`; surface gaps, especially qualitative ideas (tone, voice, feel) the FR structure silently drops. Must happen before polish.
|
|
85
|
+
3. Discipline pass: validator subagent against `prd.md` with `{workflow.validation_checklist}`. Findings stay in-conversation — autofix obvious issues, ask on ambiguous ones. No report file is written. Resolve before polish.
|
|
86
|
+
4. Open-items review: triage all Open Questions, `[ASSUMPTION]` tags, and `[NOTE FOR PM]` callouts. Surface only phase-blockers one at a time; resolve before calling the PRD ready. Log deferred items to `decision-log.md`. If phase-blocking count is high, flag it.
|
|
87
|
+
5. Polish: apply `{workflow.doc_standards}` to `prd.md` and `addendum.md` via parallel subagents.
|
|
88
|
+
6. External handoffs: execute `{workflow.external_handoffs}` entries; surface returned URLs/IDs. Skip and flag unavailable tools.
|
|
89
|
+
7. Record finalization to `decision-log.md`. Share all artifact paths. Invoke `bmad-help` to share possible steps.
|
|
90
|
+
8. Run `{workflow.on_complete}` if non-empty.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Headless Mode JSON Schemas
|
|
2
|
+
|
|
3
|
+
Every headless run ends with one of these payloads. Omit keys for artifacts not produced.
|
|
4
|
+
|
|
5
|
+
## Common fields
|
|
6
|
+
|
|
7
|
+
- `status` — `"complete"`, `"blocked"`, or `"partial"`
|
|
8
|
+
- `intent` — `"create"`, `"update"`, or `"validate"` (matches the detected intent)
|
|
9
|
+
- `reason` — required when `status` is `"blocked"`; one-sentence explanation
|
|
10
|
+
- `assumptions` — array of inferred values that were not directly confirmed by inputs
|
|
11
|
+
- `open_questions` — array of items that need a human decision before the artifact can be considered final
|
|
12
|
+
|
|
13
|
+
## Create
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"status": "complete",
|
|
18
|
+
"intent": "create",
|
|
19
|
+
"prd": "{doc_workspace}/prd.md",
|
|
20
|
+
"addendum": "{doc_workspace}/addendum.md",
|
|
21
|
+
"decision_log": "{doc_workspace}/decision-log.md",
|
|
22
|
+
"open_questions": [],
|
|
23
|
+
"assumptions": [],
|
|
24
|
+
"external_handoffs": [
|
|
25
|
+
{"directive": "Confluence upload", "tool": "corp:confluence_upload", "url": "https://confluence.corp/PROD/123", "status": "ok"}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Update
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"status": "complete",
|
|
35
|
+
"intent": "update",
|
|
36
|
+
"prd": "{doc_workspace}/prd.md",
|
|
37
|
+
"decision_log": "{doc_workspace}/decision-log.md",
|
|
38
|
+
"changes_summary": "1-3 sentences describing what changed and why",
|
|
39
|
+
"conflicts_with_prior_decisions": [],
|
|
40
|
+
"open_questions": [],
|
|
41
|
+
"external_handoffs": [
|
|
42
|
+
{"directive": "Confluence upload", "tool": "corp:confluence_upload", "url": "https://confluence.corp/PROD/123", "status": "ok"}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Validate
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"status": "complete",
|
|
52
|
+
"intent": "validate",
|
|
53
|
+
"validation_report": "{doc_workspace}/validation-report.md",
|
|
54
|
+
"findings_summary": {
|
|
55
|
+
"critical": 0,
|
|
56
|
+
"high": 0,
|
|
57
|
+
"medium": 0,
|
|
58
|
+
"low": 0
|
|
59
|
+
},
|
|
60
|
+
"offer_to_update": true
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
`validation_report` is always written for Validate intent — the path here is required, not optional.
|
|
65
|
+
|
|
66
|
+
## Blocked
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"status": "blocked",
|
|
71
|
+
"intent": "update",
|
|
72
|
+
"reason": "Change signal ambiguous — could be a scope expansion or a clarification; no inferred direction"
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Always include the intent (best-guess if not certain) and a one-sentence `reason`.
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# PRD Template — A Menu, Not a Skeleton
|
|
2
|
+
|
|
3
|
+
This is a menu of sections the facilitator picks from based on what the product, the stakes, the audience, and the existing inputs actually need. Hobby projects use the essential spine and stop. Enterprise initiatives, regulated submissions, and consumer launches add clusters from the adapt-in menu below. **Never include a section just because it appears here.** Drop, reorder, rename, combine — whatever the PRD needs.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Essential Spine *(almost always present)*
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
---
|
|
11
|
+
title: {Product Name}
|
|
12
|
+
created: {YYYY-MM-DD}
|
|
13
|
+
updated: {YYYY-MM-DD}
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# PRD: {Product Name}
|
|
17
|
+
*Working title — confirm.*
|
|
18
|
+
|
|
19
|
+
## 0. Document Purpose
|
|
20
|
+
[1 paragraph: who this PRD is for (PM, stakeholders, downstream workflow owners), how it's structured (Glossary-anchored vocabulary, features grouped with FRs nested, assumptions tagged inline and indexed). If UX work or other inputs already exist, name them here and reference where they live — this PRD builds on them, it does not duplicate.]
|
|
21
|
+
|
|
22
|
+
## 1. Vision
|
|
23
|
+
[2-3 paragraphs: what this is, what it does for the user, why it matters. Compelling enough to stand alone.]
|
|
24
|
+
|
|
25
|
+
## 2. Target User
|
|
26
|
+
|
|
27
|
+
### 2.1 Primary Persona
|
|
28
|
+
[Vivid but tight. Who they are, how this product fits their context.]
|
|
29
|
+
|
|
30
|
+
### 2.2 Jobs To Be Done
|
|
31
|
+
[Bulleted. Emotional, social, functional, contextual — whichever apply. Even "this is for me as the builder" is a valid persona for a hobby project.]
|
|
32
|
+
|
|
33
|
+
### 2.3 Non-Users (v1) *(add when the audience boundary is non-obvious)*
|
|
34
|
+
[Who this is explicitly not for in v1.]
|
|
35
|
+
|
|
36
|
+
### 2.4 Key User Journeys
|
|
37
|
+
*Named flows the product enables — one line each, numbered globally as UJ-1 through UJ-N for downstream traceability. Detailed flow design (steps, screens, edge flows) is the job of the UX workflow, not this PRD. Features in §4 may reference journeys by ID inline ("realizes UJ-3").*
|
|
38
|
+
|
|
39
|
+
- **UJ-1** — [Named flow, one line: who does what, to what end.]
|
|
40
|
+
- **UJ-2** — ...
|
|
41
|
+
|
|
42
|
+
[For hobby/utility projects, 1-3 journeys may be enough. For complex multi-feature products (onboarding, checkout, multi-step approvals), expand. For libraries/CLIs with minimal flow, reduce to a single line or collapse into §2.2 JTBD.]
|
|
43
|
+
|
|
44
|
+
## 3. Glossary
|
|
45
|
+
*Downstream workflows and readers must use these terms exactly.*
|
|
46
|
+
|
|
47
|
+
- **Term** — Definition. Relationships to other Glossary terms. Cardinality where relevant.
|
|
48
|
+
- **Term** — ...
|
|
49
|
+
|
|
50
|
+
[Every domain noun the rest of the document uses. Defined once. No synonyms anywhere else in the PRD.]
|
|
51
|
+
|
|
52
|
+
## 4. Features
|
|
53
|
+
*Each subsection is a coherent feature: behavioral description first, FRs nested under it, optional feature-specific NFRs and notes. FRs are numbered globally (FR-1 through FR-N) so downstream artifacts have stable references even if features get reorganized. Reference user journeys by ID inline ("realizes UJ-2") where the chain matters.*
|
|
54
|
+
|
|
55
|
+
### 4.1 {Feature Name}
|
|
56
|
+
**Description:** [Behavioral narrative — how this feature works, who uses it, the user experience, edge cases. Use Glossary terms exactly. Embed inline `[ASSUMPTION: ...]` tags where you inferred without confirmation.]
|
|
57
|
+
|
|
58
|
+
**Functional Requirements:**
|
|
59
|
+
- **FR-1** — [Actor] can [capability] [under conditions / with measurement].
|
|
60
|
+
- **FR-2** — ...
|
|
61
|
+
|
|
62
|
+
**Feature-specific NFRs:** *(only if any apply uniquely to this feature)*
|
|
63
|
+
- Performance / security / accessibility / etc. specific to this feature.
|
|
64
|
+
|
|
65
|
+
**Notes:** *(optional — open questions specific to this feature, `[NOTE FOR PM]` callouts)*
|
|
66
|
+
|
|
67
|
+
### 4.2 {Feature Name}
|
|
68
|
+
...
|
|
69
|
+
|
|
70
|
+
## 5. Non-Goals (Explicit)
|
|
71
|
+
[Bulleted. What this product is *not* and what it will *not* do in v1. Does outsized work for downstream readers and workflows — prevents the "let me also add this nearby thing" failure mode at every level (epic, ticket, code). Inline `[NON-GOAL for MVP]` callouts within §4 Features cover deferred items within features; this section captures the broader "we are not building X / we are not becoming Y" statements.]
|
|
72
|
+
|
|
73
|
+
## 6. MVP Scope
|
|
74
|
+
|
|
75
|
+
### 6.1 In Scope
|
|
76
|
+
[Bulleted, crisp.]
|
|
77
|
+
|
|
78
|
+
### 6.2 Out of Scope for MVP
|
|
79
|
+
[Bulleted. Each item with a one-line reason if the reason matters. Mark items deferred to v2/v3 explicitly. Add `[NOTE FOR PM]` callouts where a deferred item is emotionally load-bearing — flags it for revisit if timeline permits.]
|
|
80
|
+
|
|
81
|
+
## 7. Success Metrics
|
|
82
|
+
|
|
83
|
+
**Primary**
|
|
84
|
+
- Metric — definition, target.
|
|
85
|
+
|
|
86
|
+
**Secondary**
|
|
87
|
+
- Metric — definition, target.
|
|
88
|
+
|
|
89
|
+
**Counter-metrics (do not optimize)**
|
|
90
|
+
- Metric — why this should *not* be optimized.
|
|
91
|
+
|
|
92
|
+
[Length scales with stakes. Hobby/utility PRD: a single sentence may be enough ("Success: I use this weekly and don't abandon it after a month"). Public launch / enterprise: full quantitative breakdown with measurement methods. Counter-metrics are as load-bearing as primary metrics — they prevent the architect from optimizing the wrong thing and the dev from gaming the wrong target.]
|
|
93
|
+
|
|
94
|
+
## 8. Open Questions
|
|
95
|
+
[Numbered. Things still unknown — they become future tickets or follow-up research, not silent gaps.]
|
|
96
|
+
|
|
97
|
+
## 9. Assumptions Index
|
|
98
|
+
*Every `[ASSUMPTION]` from the document, surfaced for explicit confirmation:*
|
|
99
|
+
- Inline assumption from §X.Y — short description.
|
|
100
|
+
- ...
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Adapt-In Menu *(add the clusters the product calls for)*
|
|
106
|
+
|
|
107
|
+
### Cross-cutting quality and shape *(most non-trivial PRDs)*
|
|
108
|
+
- **Cross-Cutting NFRs** — system-wide non-functional requirements not tied to a single feature (performance, security, reliability, observability). Add when system-wide quality attributes are meaningful.
|
|
109
|
+
- **Constraints and Guardrails** — Safety, Privacy, Cost. Subsection per cluster. Add when any of these are real concerns.
|
|
110
|
+
- **Why Now** — add when timing is load-bearing (a market shift, a technology enabler, a regulatory deadline). Drop when timing is incidental.
|
|
111
|
+
|
|
112
|
+
### Consumer / branded products
|
|
113
|
+
- **Aesthetic and Tone** — visual references, anti-references, voice/tone for any product-generated text.
|
|
114
|
+
- **Information Architecture** — top-level surfaces, navigation, screens.
|
|
115
|
+
- **Monetization** — free vs. paid, pricing assumptions, ads policy.
|
|
116
|
+
- **Platform** — web, mobile, PWA, native, v1 vs. v2+.
|
|
117
|
+
|
|
118
|
+
### Enterprise initiatives
|
|
119
|
+
- **Stakeholders and Approvals** — who must sign off, at what stage.
|
|
120
|
+
- **Risk and Mitigations** — operational, security, business, reputational risk register.
|
|
121
|
+
- **ROI / Business Case** — quantified benefit, cost, payback period.
|
|
122
|
+
- **Operational Requirements** — SLAs, RTO/RPO, support tier, on-call expectations.
|
|
123
|
+
- **Integration and Dependencies** — SSO, existing enterprise systems, data sources, downstream consumers.
|
|
124
|
+
- **Rollout and Change Management** — phased rollout plan, training, internal communication.
|
|
125
|
+
- **Data Governance** — residency, sovereignty, classification, retention.
|
|
126
|
+
- **Audit Trail / Decision Provenance** — formal documentation requirements for regulated environments.
|
|
127
|
+
|
|
128
|
+
### Regulated domains
|
|
129
|
+
- **Compliance and Regulatory** — HIPAA, PCI-DSS, GDPR, SOX, SOC 2, Section 508 / WCAG 2.1 AA, FedRAMP, etc. — whichever apply. If any item needs depth, add a `[NOTE FOR PM]` callout to revisit or move to an addendum.
|
|
130
|
+
|
|
131
|
+
### Developer products (libraries, APIs, CLIs, SDKs)
|
|
132
|
+
- **API Contracts / Public Surface** — endpoint shapes, breaking change policy.
|
|
133
|
+
- **Versioning and Deprecation Policy**.
|
|
134
|
+
- **Performance Budgets** — latency, throughput, resource use.
|
|
135
|
+
- **Language / Runtime Targets and Dependency Policy**.
|
|
136
|
+
|
|
137
|
+
### Embedded / hardware
|
|
138
|
+
- **Hardware Constraints** — memory, power, form factor.
|
|
139
|
+
- **Deployment and Update Mechanism** — OTA, manual, image-based.
|
|
140
|
+
- **Environmental and Reliability Requirements**.
|
|
141
|
+
|
|
142
|
+
### Small-scope all-inclusive *(use when scope is 1-2 stories' worth and the user wants a single captured artifact — chosen during the Right-skill check in Discovery)*
|
|
143
|
+
- **Stories** — story-level specs listed inline at the end of the doc. Each story: *"As a [persona], I can [action] [under conditions]. Acceptance: [testable criteria]."* Numbered Story-1, Story-2, ... for reference. Pair with very lean §1 Vision, §2 Target User (often just JTBD + one UJ), §3 Glossary (handful of terms), §4 Features (often a single feature), §6 MVP Scope (in/out very tight). The whole doc fits on a page or two and captures intent + implementable stories in one place. If the user doesn't want the captured artifact at all, `bmad-quick-dev` is the better path — this cluster is only for "I want a doc *and* the stories."
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Notes for the facilitator
|
|
148
|
+
|
|
149
|
+
- **The essential spine is the floor, not the ceiling.** A hobby PRD might keep all ten sections short. An enterprise PRD layers many clusters from the adapt-in menu.
|
|
150
|
+
- **§3 Glossary before §4 Features.** Mechanics never introduce a new domain noun without adding it to the Glossary in the same pass. Persona, JTBD, and Journeys may use Glossary terms before §3 formally defines them — context is inferable; the Glossary is for downstream anchoring.
|
|
151
|
+
- **§2.4 Key User Journeys are brief.** One line each. Numbered globally (UJ-1 through UJ-N) so architecture, epics, stories, and tickets can reference them by stable ID. Detailed flow design happens in the UX workflow — not here.
|
|
152
|
+
- **§4 Features pattern at every scale.** Description → FRs nested → optional NFRs → optional notes. Hobby PRD: one short paragraph and three FRs per feature. Enterprise feature: multi-paragraph description, fifteen FRs, several feature-specific NFRs, open questions. Same shape, different depth.
|
|
153
|
+
- **`[ASSUMPTION]`, `[NON-GOAL]`, `[v2 — out of MVP]`, `[NOTE FOR PM]` callouts are first-class.** They signal to downstream readers and the next session of work. Every `[ASSUMPTION]` lands in §9 Assumptions Index.
|
|
154
|
+
- **When UX is *input* to the PRD** (journeys already designed elsewhere): §2.4 names the journeys by ID and points to the existing UX doc. Reference, do not duplicate.
|
|
155
|
+
- **When UX is *output* of the PRD** (no UX work yet — downstream `bmad-create-ux-design` will produce it): §2.4 captures the PM's intent on which journeys exist; UX elaborates them into detailed flows downstream.
|
|
156
|
+
- **§7 Success Metrics scales with stakes** but is always present. Counter-metrics matter as much as primary metrics — they shape what NOT to optimize.
|
|
157
|
+
- **Small-scope all-inclusive option.** When scope is genuinely 1-2 stories and the user wants a single artifact instead of running a separate `bmad-create-story` workflow, add the adapt-in *Stories* cluster: lean §1-§6 plus inline §Stories at the end. The whole doc fits on a page or two. This is a valid PRD shape for tiny work — don't apologize for it.
|
|
158
|
+
- **Adapt the section numbering.** The spine uses 0-9; adapt-in additions slot in wherever they read best (e.g., Aesthetic & Tone before §3 if branding is foundational, Compliance after §5 Non-Goals, Constraints & Guardrails between Features and Non-Goals, Stories at the very end after Assumptions Index).
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# PRD Validation Checklist
|
|
2
|
+
|
|
3
|
+
Loaded by the PRD validator subagent. For each item, return `{id, status: pass|fail|warn|n/a, severity: low|medium|high|critical, location, note}`. Skip items not applicable to the agreed stakes. Cite specific PRD locations — never abstract criticism.
|
|
4
|
+
|
|
5
|
+
## Quality
|
|
6
|
+
|
|
7
|
+
- **Q-1. Information density.** Sentences carry weight. Flag filler, hedging, and conversational padding.
|
|
8
|
+
- **Q-2. Measurability.** Where measurement matters, FRs and Success Metrics are measurable; subjective adjectives flagged. Counter-metrics named when Success Metrics exist.
|
|
9
|
+
- **Q-3. Traceability.** Where the chain matters, FRs name their link to a user journey or success criterion inline.
|
|
10
|
+
- **Q-4. Vision and JTBDs concrete.** Vision is specific and stands alone — not a generic feature list. JTBDs are audience-grounded, not abstract.
|
|
11
|
+
- **Q-5. Non-Goals explicit.** A Non-Goals section is present where it would do real work; inline `[NON-GOAL]` and `[v2]` callouts where omissions would otherwise be silently assumed.
|
|
12
|
+
- **Q-6. Dual-audience and self-contained.** Each section makes sense pulled out alone (cross-references via Glossary terms, not "see above"); the PRD is readable by humans and structured cleanly for downstream source-extraction by UX, architecture, and story-creation workflows.
|
|
13
|
+
|
|
14
|
+
## Discipline
|
|
15
|
+
|
|
16
|
+
- **D-1. Capabilities, not implementation.** FRs describe what users/systems can do, not how. Flag technology names, library choices, architecture decisions.
|
|
17
|
+
- **D-2. Input fidelity.** Requirements from input documents (brief, research, prior PRD) are still in scope or explicitly handled via Non-Goals or `[ASSUMPTION]`.
|
|
18
|
+
- **D-3. Personas grounded.** If personas exist, they are research-grounded or marked `[ILLUSTRATIVE]`. Each persona drives at least one decision.
|
|
19
|
+
- **D-4. No innovation theater.** Novelty claims are real, not invented.
|
|
20
|
+
|
|
21
|
+
## Structural integrity
|
|
22
|
+
|
|
23
|
+
- **S-1. Glossary integrity.** Every domain noun is defined in the Glossary and used identically throughout. Flag drift (case, plural, synonyms) and candidate missing-term entries.
|
|
24
|
+
- **S-2. ID continuity.** FR / UJ / Story IDs are contiguous, unique, and cross-references resolve.
|
|
25
|
+
- **S-3. Assumptions Index.** Every inline `[ASSUMPTION: ...]` appears in the Assumptions Index and vice versa.
|
|
26
|
+
- **S-4. Open-items density.** Count Open Questions + `[ASSUMPTION]` + `[NOTE FOR PM]`. Red flag if density is high relative to the agreed stakes.
|
|
27
|
+
|
|
28
|
+
## Stakes-gated
|
|
29
|
+
|
|
30
|
+
- **STK-1. Required sections.** The PRD includes the sections the agreed stakes and product type warrant.
|