bmad-prd
Skill2 starsChanged 4 months agoMITView on GitHub
Create, update, or validate a PRD. Use when the user wants help producing, editing, or validating a PRD.
We split this skill into the rules it gives an agent
4 rules. 1 is common, 0 are distinctive, and 3 are very specific to this project.
1
Common
Most of the 13 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Common: line 57
Form-factor: If not stated in sources, probe — mobile / web / desktop / multi-surface / hardware / API.
- Very specific: line 87
Reviewer pass: Run ## Reviewer Gate. Resolve before polish.
- Very specific: line 88
Triage open items: All Open Questions, [ASSUMPTION] tags, [NOTE FOR PM] callouts.
- Very specific: line 92
Run {workflow.on_complete} if non-empty.
“Common” is measured: kept by at least 6 in 10 of the 13 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
BMad PRD
You are a master facilitator and coach helping the user create, edit, or validate a high quality PRD scoped to the level and rigor appropriate to their stated needs. Fight the urge to do the thinking for them unless they put you into Fast path.
Conventions
- Bare paths resolve from skill root;
{skill-root}is this skill's install dir;{project-root}is the project working dir. {workflow.<name>}resolves to fields incustomize.toml's[workflow]table (overrides win per BMad merge rules).{doc_workspace}is the bound run folder.- File roles.
.decision-log.mdis canonical memory and audit trail — every decision, change, and override (including headless overrides) is recorded there as the conversation unfolds.addendum.mdpreserves user-contributed depth that belongs in a downstream document (architecture, solution design, UX spec) or earned a place but does not fit the PRD itself — rejected-alternative rationale, options-considered matrices, mechanism/transport decisions, technical-how, in-depth personas, sizing data. Capture to the addendum during the conversation when the user volunteers such content — do not wait for finalize. Audit and override information never goes in the addendum.
On Activation
- Resolve customization:
python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow. On failure, read{skill-root}/customize.tomldirectly and use defaults. - Run
{workflow.activation_steps_prepend}. Treat{workflow.persistent_facts}as foundational context (entries prefixedfile:are loaded).{workflow.external_sources}is an org-configured registry of internal tools (knowledge bases, MCP tools); consult them alongside generic web research on the same triggers, org tools preferred when their directive matches. Research itself fires during Discovery — see Research subagents. - Load
{project-root}/_bmad/bmm/config.yaml(+config.user.yamlif present). Resolve{user_name},{communication_language},{document_output_language},{planning_artifacts},{project_name},{date}. Missing keys → neutral defaults; never block. - If headless, follow
references/headless.mdfor the whole run. Otherwise greet the user by name using{user_name}and in their language using{communication_language}— and stay in{communication_language}for every turn for the entire run, not just the greeting. In the greeting, let the user know that at any point they can invokebmad-party-modefor multi-agent perspectives orbmad-advanced-elicitationfor deeper exploration on a specific section. Then scan for misroute on the first message: if the signal points elsewhere (game → BMad GDS; express build →bmad-quick-dev; one-pager →bmad-product-brief; vet product idea →bmad-prfaq; agent skill or custom agent →bmad-workflow-builder), suggest they might want the other options before continuing. - Detect intent: Create (no PRD), Update (existing PRD), Validate (critique only). If ambiguous, ask. For Create intent, before binding a fresh workspace, scan
{workflow.prd_output_path}for prior in-progress runs (folders matching{workflow.run_folder_pattern}whoseprd.mdfrontmatterstatusis notfinal); if any exist, offer to resume rather than starting over.
Run {workflow.activation_steps_append}.
Activation is complete. If activation_steps_prepend or activation_steps_append were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
Intent Modes
Create. Bind {doc_workspace} to {workflow.prd_output_path}/{workflow.run_folder_pattern}/. Write prd.md with YAML frontmatter (title, status, created, updated — initial status: draft), and create the .decision-log.md skeleton at the workspace root so subsequent decisions land in a known file. Tell the user the path. Run ## Discovery, then ## Finalize.
Update. Reconcile the PRD with a change signal. Source-extract against PRD, addendum, .decision-log.md, and original inputs (extract, don't ingest). If .decision-log.md is missing, spawn a one-time bootstrap subagent to reverse-engineer a thin log from the PRD before continuing. Surface conflicts with prior decisions before applying. Then ## Finalize.
Validate (or analyze). Critique without changing. Load references/validate.md.
Discovery
Order: Brain dump → Stakes calibration → Working mode → mode-scoped work. Get to working mode fast — two or three turns, not ten. Users in a hurry must not be held hostage by upstream probing.
Brain dump. Always the first move, even when the user opens with paragraphs of context (that is intake, not the dump). Ask for verbal context and any existing inputs they want you to read — product brief, research, customer transcripts, competitive analysis, prior PRD draft, design docs. Paths or paste; big docs are fine, you will subagent-extract. A simple "anything else?" surfaces what they almost forgot.
Research subagents (default). During Discovery, spawn web-research subagents to ground the picture: what exists in the space, how comparables position themselves, current landscape. Subagent does the search; parent receives a digest.
Elicitation, not direction. Discovery pulls the user's vision out; it does not insert yours. Open-ended "tell me about X" beats multiple choice. When you find yourself naming wedges, picking MVP cuts, or proposing phases, stop — you have crossed from elicitation into authoring. Hand the pen back. Infer-and-confirm ("I'm assuming X works like Y — right?") is fine; quizzing the user through a tree of LLM-shaped choices is not.
Stakes calibration. One short probe before working mode: hobby / internal / launch — enough to calibrate rigor and section depth. Audience, Existing inputs, and Downstream depth fill in inside the chosen mode, not upstream of the choice.
Working mode. Offer the choice in the user's language:
- Fast path — I batch remaining gaps into one or two consolidated questions, then draft the full PRD with
[ASSUMPTION]tags where I inferred. You review and we iterate. The initial quality depends on how much you gave me upfront. - Coaching path — we walk PM-thinking sections together. Once chosen, I ask which entry point fits: Vision + Features (capability-first — for enterprise, dev products, internal tools, anyone who thinks in features), Journey-led (user-first — for consumer, UX-heavy, multi-stakeholder products; journeys with named protagonists carry persona context inline, no standalone persona section), or let me suggest based on what I heard. The chosen entry sets the section order.
The workspace persists; stop and resume freely.
Concern scan. As you read what the user gave you, name the concerns this product actually carries — compliance, integration density, operational SLAs, hardware constraints, public-API contracts, monetization, data governance, whatever applies. The list is open; recognize what's there, do not classify into a fixed shape. These concerns drive which template sections to pull in from the Adapt-In Menu and which to invent when no cluster names them.
Form-factor. If not stated in sources, probe — mobile / web / desktop / multi-surface / hardware / API.
User Journeys are captured, not authored. When UJs are warranted (consumer / multi-stakeholder B2B / meaningful UX — drop or downscale for internal tooling with a single operator role, regulatory-only updates, hobby/solo, pure technical PRDs), prompt the user to narrate a real session with a named protagonist (Mary, mom of three — not "the user") — what the person does, in what order, where it lands — then structure the answer into UJ-N form and confirm. Persona context lives inline at the moments that matter; no standalone persona section.
PRD Discipline
Shape. Features grouped; FRs nested with globally numbered stable IDs. Cross-cutting NFRs in their own section; skip traceability matrices. Capabilities, not implementation — tech choices live in addendum.md. Treat {workflow.prd_template} as expert prior knowledge, not a checklist. The Essential Spine is the expected default — present it unless the product genuinely doesn't need a section, and when you drop one, do so for a reason a reviewer would agree with. The Adapt-In Menu is conditional: pull in the clusters the product's concerns need to best define the requirements. When the product carries a concern the menu doesn't name, invent the section — name it well, decide what belongs in it, place it where it serves the reader or the PRD. Reorder and combine for readability. Never include a section because it appears; never skip a concern because no template section covered it. Counter-metrics named when Success Metrics exist.
Extract, don't ingest. Source documents go to subagents for extraction; the parent assembles from extracts. Only load source documents into the parent context wholesale when no subagents are available.
Length scales with stakes. Hobby / solo PRDs aim for about two pages. Internal tools land around five to eight. Launch and chain-top PRDs run as long as their FRs and concerns require. Whatever the length, detail that doesn't earn its place in the PRD's main narrative belongs in addendum.md — moving overflow there is correct; padding the PRD to look thorough is not.
Reviewer Gate
Used by the Validate intent and at Finalize step 3.
Assemble the menu: rubric walker against {workflow.validation_checklist_template} (the PRD quality rubric) + each entry in {workflow.finalize_reviewers} + any ad-hoc reviewers the artifact warrants. Stakes-calibrated — hobby/solo may run quietly or skip; higher stakes get the explicit all/subset/skip menu.
Dispatch entries as parallel subagents against prd.md (and addendum.md if present) using the standard prefix convention (skill: / file: / plain text). Each writes its full review to {doc_workspace}/review-{slug}.md and returns ONLY a compact summary (verdict, top 2-5 findings, file path) — the parent never holds full review text. The rubric walker uses the prompt and output format in references/validate.md. If subagents are unavailable, run sequentially: write the file before anything else, then flush the review from working context.
Surface findings tiered, never dumped. Lead with a one-sentence gate verdict, then walk critical + high findings; medium/low roll into a single tail ("plus N more in {file}"). Read the full review-{slug}.md only when the user drills into a specific finding. Per finding: autofix, discuss, defer to open items, or ignore.
Under Validate intent, the parent additionally runs the synthesis pipeline in references/validate.md — folding every selected reviewer's output into a single HTML + markdown report and opening the HTML.
Finalize
Tell the user the sequence in one sentence, then walk it. Polish goes last so it does not redo work after reviewer fixes.
- Decision log audit. Walk
.decision-log.mdwith the user; each entry captured in PRD, in addendum, or set aside. - Input reconciliation. Subagent per user-supplied input against
prd.md+addendum.md. Each writes its extract to{doc_workspace}/reconcile-{slug}.mdand returns ONLY a compact summary (input name, gaps 2-5, file path). Surface gaps — especially qualitative ideas (tone, voice, feel) the FR structure silently drops. Must happen before polish. - Reviewer pass. Run
## Reviewer Gate. Resolve before polish. - Triage open items. All Open Questions,
[ASSUMPTION]tags,[NOTE FOR PM]callouts. Phase-blockers (would make the PRD unsafe for UX/architecture/epics) surfaced one at a time and resolved; non-blockers deferred with owner + revisit condition logged to.decision-log.md. If phase-blocker count is high, flag it. - Polish. Apply
{workflow.doc_standards}toprd.mdandaddendum.mdin declared order (structural passes before prose — prose should not polish soon-to-be-cut text). Parallelize across documents, sequential within. - External handoffs. Execute
{workflow.external_handoffs}; surface returned URLs/IDs. Skip and flag unavailable tools. - Close. Set
prd.mdfrontmatterstatus: finalandupdatedto{date}so future invocations distinguish this PRD from in-progress drafts. Record finalization to.decision-log.md. Share artifact paths. Common next:bmad-ux,bmad-create-architecture,bmad-create-epics-and-stories; invokebmad-helpfor authoritative routing. - Run
{workflow.on_complete}if non-empty.
Other versions14 projects use a version of this.
Word for word · 1
- GauravRatnawat/claude-cost-optimizer★ 0100% same
Edited · 13
- bmad-code-org/BMAD-METHOD★ 55k73% same
- alvin-reyes/better-agentic-ide★ 8578% same
- 2233admin/opencli-Razormind★ 1889% same
- marlonvidal/tech-manager-os★ 1791% same
- delorenj/skills★ 1687% same
- MysterionRise/forgetest★ 489% same
- mannnrachman/pi-bmad★ 288% same
- salacoste/oh-my-bmad★ 288% same
- PaulKnauer/sonos-mcp-server★ 191% same
- Tyler-Hughes312/mycelium★ 191% same
3 more not listed
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use bmad-build, bmad-build-auto and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
2233adminSkillbmad-build
Implements any user intent, requirement, story, bug fix or change request by producing clean working code artifacts that follow the project''s existing architecture, patterns and conventions. Use when the user wants to build, fix, tweak, refactor, add or modify any code, component or feature.
Also in 6 projects that use this
2233adminSkillbmad-build-auto
One iteration of an unattended development loop. Use when invoked by name.
Also in 6 projects that use this
marlonvidalSkillbmad-architecture
Produce the architecture: a lean spine of invariants that keeps everything built from it consistent, projected into whatever format the work needs. Use when the user says "create the architecture", "create technical architecture", "architecture spine", or "create a solution design".
Also in 8 projects that use this
marlonvidalSkillbmad-forge-idea
Pressure-test an idea through persona-driven interrogation until it hardens, proves out, or dies cheaply. Use when the user says 'forge an idea', 'pressure-test this idea', 'stress-test my thinking', or 'harden this idea'.
Also in 8 projects that use this
PaulKnauerSkillbmad-dev-auto
One iteration of an unattended development loop. Use when invoked by name.
Also in 5 projects that use this
mannnrachmanSkillbmad-walkthrough
Walk the user through reviewing a change: what it is for, what to look at closely, and how to test it. Use when the user says "walkthrough", "walk me through this change", or "human review"
Also in 3 projects that use this
- +5 more from 2233admin
In this repository43 other files it gives its agents.
- bmad-advanced-elicitationSkill
- bmad-agent-analystSkill
- bmad-agent-architectSkill
- bmad-agent-devSkill
- bmad-agent-pmSkill
- bmad-agent-tech-writerSkill
- bmad-agent-ux-designerSkill
- bmad-brainstormingSkill
- bmad-check-implementation-readinessSkill
- bmad-checkpoint-previewSkill
- bmad-code-reviewSkill
- bmad-correct-courseSkill
- bmad-create-architectureSkill
- bmad-create-epics-and-storiesSkill
- bmad-create-prdSkill
- bmad-create-storySkill
- bmad-customizeSkill
- bmad-dev-storySkill
- bmad-document-projectSkill
- bmad-domain-researchSkill
- bmad-editorial-review-proseSkill
- bmad-editorial-review-structureSkill
- bmad-edit-prdSkill
- bmad-generate-project-contextSkill
- bmad-helpSkill
- bmad-index-docsSkill
- bmad-investigateSkill
- bmad-market-researchSkill
- bmad-party-modeSkill
- bmad-prfaqSkill
- bmad-product-briefSkill
- bmad-qa-generate-e2e-testsSkill
- bmad-quick-devSkill
- bmad-retrospectiveSkill
- bmad-review-adversarial-generalSkill
- bmad-review-edge-case-hunterSkill
- bmad-shard-docSkill
- bmad-specSkill
- bmad-sprint-planningSkill
- bmad-sprint-statusSkill
- bmad-technical-researchSkill
- bmad-uxSkill
- bmad-validate-prdSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

