Bmad Prd logo

Bmad Prd

OrganizationPopular
bmad-code-org
bmad-prd

Create, update, or validate a PRD. Use when the user wants help producing, editing, or validating a PRD

Overview

Publisherbmad-code-org
RepositoryBMAD-METHOD
Skill namebmad-prd
Stars
53.7K
Forks
6.1K
Bundled files
8
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 8 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by bmad-code-org on GitHub. Read the source before you install it.

Installation

Install the Bmad Prd AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/bmad-code-org/BMAD-METHOD/tree/main/skills/bmad-prd
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/bmad-code-org/BMAD-METHOD.git /tmp/BMAD-METHOD
mkdir -p .claude/skills
cp -r /tmp/BMAD-METHOD/skills/bmad-prd .claude/skills/bmad-prd
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Bmad Prd in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Bmad Prd on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Bmad Prd is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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 nearest folder containing _bmad/, starting at the project working dir and moving up through its parents.
  • {workflow.<name>} resolves to fields in customize.toml's [workflow] table (overrides win per BMad merge rules).
  • {doc_workspace} is the bound run folder.
  • File roles. .memlog.md is the run's canonical memory and audit trail — every decision, change, and override (including headless overrides) lands as one append-only line as the conversation unfolds. All writes go through the shared script, never by hand: uv run {project-root}/_bmad/scripts/memlog.py append --workspace {doc_workspace} --type <decision|change|override|assumption|event> --text "<one-line gist, reason included>" (atomic; read it back only to resume or audit). The PRD is distilled toward it; whatever isn't logged is lost on resume. addendum.md preserves 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

Forwarded activation: if a caller invoked you with a stated intent and pre-resolved customization fields (e.g. the bmad-create-prd / bmad-edit-prd / bmad-validate-prd shims), honor them verbatim — skip your own intent inference, use the supplied values for those named fields, and resolve only the remaining fields from your own customize.toml.

  1. Resolve customization: uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.
    • Script not found: BMad is not set up here. Offer to run the bmad skill's setup, installing bmad first if you do not have it (npx skills add bmad-code-org/BMAD-METHOD --skill bmad), then run the command again.
    • Any other failure: read {skill-root}/customize.toml directly and use defaults.
  2. Run {workflow.activation_steps_prepend}. Treat {workflow.persistent_facts} as foundational context (entries prefixed file: 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.
  3. Resolve config: uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core.output_folder --key core.active_initiative. {date} is the current system datetime. {slug} is what the PRD is about, in kebab-case: the run lands in prd-{slug}/prd-{slug}.md.
    • Script not found, or no output_folder: BMad is not set up here. Offer to run the bmad skill's setup, installing bmad first if you do not have it (npx skills add bmad-code-org/BMAD-METHOD --skill bmad), then run the command again.
    • No active_initiative: hand off to the bmad skill to set or create one, then run the command again and continue. Headless: write loose.
  4. If headless, follow references/headless.md for the whole run. Otherwise greet the user. In the greeting, let the user know that at any point they can invoke bmad-party-mode for multi-agent perspectives or bmad-advanced-elicitation for 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-build; 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.
  5. 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} whose main file's frontmatter status is not final); 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 the PRD as {workflow.run_folder_pattern}.md with YAML frontmatter (title, status, created, updated — initial status: draft), and seed the memlog with uv run {project-root}/_bmad/scripts/memlog.py init --workspace {doc_workspace} --field topic="<PRD/product name>" 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, .memlog.md, and original inputs (extract, don't ingest). If .memlog.md is missing, init it with uv run {project-root}/_bmad/scripts/memlog.py init --workspace {doc_workspace}, then spawn a one-time bootstrap subagent to reverse-engineer a thin log from the PRD (one uv run {project-root}/_bmad/scripts/memlog.py append --workspace {doc_workspace} --type decision --text "<recovered decision>" per recovered decision) 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 the PRD (and addendum.md if present) using the standard prefix convention (skill: / file: / plain text). Each writes its full review to {doc_workspace}/review-{lens}.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-{lens}.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.

  1. Memlog audit. Walk .memlog.md with the user; each entry captured in PRD, in addendum, or set aside.
  2. Input reconciliation. Subagent per user-supplied input against the PRD + addendum.md. Each writes its extract to {doc_workspace}/reconcile-{input}.md and 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.
  3. Reviewer pass. Run ## Reviewer Gate. Resolve before polish.
  4. 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 via memlog.py append. If phase-blocker count is high, flag it.
  5. Polish. Apply {workflow.doc_standards} to the PRD and addendum.md in declared order (structural passes before prose — prose should not polish soon-to-be-cut text). Parallelize across documents, sequential within.
  6. External handoffs. Execute {workflow.external_handoffs}; surface returned URLs/IDs. Skip and flag unavailable tools.
  7. Close. Set the PRD's frontmatter status: final and updated to {date} so future invocations distinguish this PRD from in-progress drafts. Record finalization via uv run {project-root}/_bmad/scripts/memlog.py append --workspace {doc_workspace} --type event --text "PRD finalized". Share artifact paths. Common next: bmad-ux, bmad-architecture, bmad-ticket; invoke the bmad skill for authoritative routing.
  8. Run {workflow.on_complete} if non-empty.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Bmad Prd AI skill do?

Create, update, or validate a PRD. Use when the user wants help producing, editing, or validating a PRD

Why use Bmad Prd on TypingMind?

Because you install it once and use it with any model. Bmad Prd is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Bmad Prd in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/bmad-code-org/BMAD-METHOD/tree/main/skills/bmad-prd. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Bmad Prd?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Bmad Prd?

As many as you like. As long as a model supports skills, you can use Bmad Prd with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Bmad Prd AI skill free?

It is published on GitHub by bmad-code-org. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇