PRD Authoring
Overview
This skill is the agent-facing entry point to the Product PRD Standard: how to write
Product Requirements Documents in docs/prd/. A PRD answers what problem, for which users,
what requirements, and what success looks like — and is owned by Product (Product Owner /
PM).
It has a distinct engineering companion — keep the roles separate:
prd-authoring (this skill) = authoring product PRDs. State the problem, target users,
goals, user stories, requirements, acceptance criteria, and success metrics; assign stable
PRD-{AREA}-{NN} IDs; run product/user/market research; map requirements down to implementing
specs.
spec-authoring = engineering specs (a separate, engineering-owned standard —
docs/specs/, SPEC-{SUBSYSTEM}-{NN}~{rev}). Specs implement PRD requirements.
spec-linked-docs = traceability between specs and source code.
PRD ≠ SPEC. A PRD is a product requirements doc (PRD-{AREA}-{NN}, in docs/prd/,
owned by Product). A SPEC is an engineering behavior contract (SPEC-{SUBSYSTEM}-{NN}~{rev},
in docs/specs/, owned by Engineering). A PRD requirement is realized by one or more
specs; list them in the Linked Specs table. Do not put inputs/outputs/error contracts in a
PRD — that is the spec's job.
Full standard: docs/prd/README.md.
This skill orients and links; README.md is the authoritative, portable standard, and
docs/prd/TEMPLATE.md is the copy-pasteable document.
Use this skill, do not duplicate it. SKILL.md is a concise router. The detailed rules live
in docs/prd/README.md and the five reference files below. Read the reference you need.
When to Use
- Defining a product problem and turning it into stable requirements.
- Creating a new
docs/prd/{area}.md file for a product area.
- Adding a governed
PRD-{AREA}-{NN} requirement to an existing PRD.
- Running product / user / market / competitive research and recording it.
- Mapping requirements to the engineering spec(s) that implement them (Linked Specs table).
- Moving a PRD through its lifecycle (Draft → Review → Approved → In-development → Shipped).
If your task is instead authoring the engineering contract, use spec-authoring.
Core Model (at a glance)
A PRD is product-owned: one product area = one file (docs/prd/{area}.md). Each governed
requirement has a stable {#PRD-{AREA}-{NN}} ID. A PRD document carries:
- Header — Title, Status, Owner = Product, Version, Last-updated, Related specs/ADRs.
- Problem & Context — the why.
- Target Users / Personas, Goals & Non-Goals, User Stories / JTBD.
- Requirements — Functional & Non-functional, each a stable
PRD-{AREA}-{NN} item.
- Acceptance Criteria, Success Metrics / KPIs.
- Scope & Out-of-Scope, Risks & Assumptions, Open Questions.
- Linked Specs — the PRD→SPEC traceability table.
- References — research + sources.
PRD IDs have no ~{rev} suffix — requirements evolve via lifecycle and supersession, not a
tilde counter.
The copy-pasteable template is docs/prd/TEMPLATE.md
(and references/prd-template.md explains how to fill it).
Quick Start
- Read the grammar.
docs/prd/README.md §3 defines
PRD-{AREA}-{NN} and the declaration rule. Do not invent IDs.
- Pick or create the area file. One product area = one file. See
references/ia-and-categories.md.
- Apply the template. Copy
docs/prd/TEMPLATE.md;
fill problem, users, requirements, acceptance criteria, success metrics. Guidance in
references/prd-template.md.
- Ground it in research. Non-obvious requirements cite product/user/market research. See
references/prd-research-practices.md.
- Map requirements to specs. Fill the Linked Specs table; engineering authors the specs and
cites the PRD ID back. See
references/prd-to-spec-linkage.md.
- Manage the lifecycle. Draft → Review → Approved → In-development → Shipped → Superseded.
See
references/prd-lifecycle.md.
Reference Files
| Reference |
Read it when you need to… |
prd-template.md |
Fill the PRD document section by section. |
prd-research-practices.md |
Run product/user/market/competitive research and cite evidence. |
prd-lifecycle.md |
Walk the lifecycle (Draft → Shipped → Superseded) and the review checklist. |
prd-to-spec-linkage.md |
Build and maintain the PRD→SPEC traceability table. |
ia-and-categories.md |
Choose/name a product area; decide add-area vs. add-requirement. |
Relationship to Specs
A PRD states what and why; a spec states the engineering contract that realizes it. The two
are distinct standards (distinct dirs, IDs, owners, templates) with a bidirectional link: the
PRD's Linked Specs table points down to implementing SPEC-{SUBSYSTEM}-{NN}~{rev} IDs; each
spec section cites the PRD-{AREA}-{NN} it implements up. Read spec-authoring when you need
to understand or coordinate the engineering side.
1---2name: prd-authoring3description: Standard for authoring product PRDs in docs/prd/: state the problem, users, requirements, and success; assign PRD-{AREA}-{NN} IDs; link down to specs.4---56# PRD Authoring78## Overview910This skill is the agent-facing entry point to the **Product PRD Standard**: how to *write*11Product Requirements Documents in `docs/prd/`. A PRD answers **what problem, for which users,12what requirements, and what success looks like** — and is owned by **Product** (Product Owner /13PM).1415It has a distinct engineering companion — keep the roles separate:1617- **`prd-authoring`** (this skill) = **authoring product PRDs.** State the problem, target users,18 goals, user stories, requirements, acceptance criteria, and success metrics; assign stable19 `PRD-{AREA}-{NN}` IDs; run product/user/market research; map requirements down to implementing20 specs.21- **`spec-authoring`** = **engineering specs** (a separate, engineering-owned standard —22 `docs/specs/`, `SPEC-{SUBSYSTEM}-{NN}~{rev}`). Specs *implement* PRD requirements.23- **`spec-linked-docs`** = traceability between specs and source code.2425> **PRD ≠ SPEC.** A PRD is a *product* requirements doc (`PRD-{AREA}-{NN}`, in `docs/prd/`,26> owned by Product). A SPEC is an *engineering* behavior contract (`SPEC-{SUBSYSTEM}-{NN}~{rev}`,27> in `docs/specs/`, owned by Engineering). A PRD requirement is **realized by** one or more28> specs; list them in the Linked Specs table. Do **not** put inputs/outputs/error contracts in a29> PRD — that is the spec's job.3031**Full standard:** [`docs/prd/README.md`](../../../../../../docs/prd/README.md).32This skill orients and links; `README.md` is the authoritative, portable standard, and33[`docs/prd/TEMPLATE.md`](../../../../../../docs/prd/TEMPLATE.md) is the copy-pasteable document.3435> **Use this skill, do not duplicate it.** SKILL.md is a concise router. The detailed rules live36> in `docs/prd/README.md` and the five reference files below. Read the reference you need.3738---3940## When to Use4142- Defining a product problem and turning it into stable requirements.43- Creating a new `docs/prd/{area}.md` file for a product area.44- Adding a governed `PRD-{AREA}-{NN}` requirement to an existing PRD.45- Running product / user / market / competitive research and recording it.46- Mapping requirements to the engineering spec(s) that implement them (Linked Specs table).47- Moving a PRD through its lifecycle (Draft → Review → Approved → In-development → Shipped).4849If your task is instead authoring the *engineering contract*, use **`spec-authoring`**.5051---5253## Core Model (at a glance)5455A PRD is **product-owned**: one product area = one file (`docs/prd/{area}.md`). Each governed56requirement has a stable `{#PRD-{AREA}-{NN}}` ID. A PRD document carries:5758- **Header** — Title, Status, **Owner = Product**, Version, Last-updated, Related specs/ADRs.59- **Problem & Context** — the *why*.60- **Target Users / Personas**, **Goals & Non-Goals**, **User Stories / JTBD**.61- **Requirements** — Functional & Non-functional, each a stable `PRD-{AREA}-{NN}` item.62- **Acceptance Criteria**, **Success Metrics / KPIs**.63- **Scope & Out-of-Scope**, **Risks & Assumptions**, **Open Questions**.64- **Linked Specs** — the PRD→SPEC traceability table.65- **References** — research + sources.6667PRD IDs have **no** `~{rev}` suffix — requirements evolve via lifecycle and supersession, not a68tilde counter.6970The copy-pasteable template is [`docs/prd/TEMPLATE.md`](../../../../../../docs/prd/TEMPLATE.md)71(and [`references/prd-template.md`](references/prd-template.md) explains how to fill it).7273---7475## Quick Start76771. **Read the grammar.** [`docs/prd/README.md` §3](../../../../../../docs/prd/README.md) defines78 `PRD-{AREA}-{NN}` and the declaration rule. Do not invent IDs.792. **Pick or create the area file.** One product area = one file. See80 [`references/ia-and-categories.md`](references/ia-and-categories.md).813. **Apply the template.** Copy [`docs/prd/TEMPLATE.md`](../../../../../../docs/prd/TEMPLATE.md);82 fill problem, users, requirements, acceptance criteria, success metrics. Guidance in83 [`references/prd-template.md`](references/prd-template.md).844. **Ground it in research.** Non-obvious requirements cite product/user/market research. See85 [`references/prd-research-practices.md`](references/prd-research-practices.md).865. **Map requirements to specs.** Fill the Linked Specs table; engineering authors the specs and87 cites the PRD ID back. See [`references/prd-to-spec-linkage.md`](references/prd-to-spec-linkage.md).886. **Manage the lifecycle.** Draft → Review → Approved → In-development → Shipped → Superseded.89 See [`references/prd-lifecycle.md`](references/prd-lifecycle.md).9091---9293## Reference Files9495| Reference | Read it when you need to… |96|-----------|---------------------------|97| [`prd-template.md`](references/prd-template.md) | Fill the PRD document section by section. |98| [`prd-research-practices.md`](references/prd-research-practices.md) | Run product/user/market/competitive research and cite evidence. |99| [`prd-lifecycle.md`](references/prd-lifecycle.md) | Walk the lifecycle (Draft → Shipped → Superseded) and the review checklist. |100| [`prd-to-spec-linkage.md`](references/prd-to-spec-linkage.md) | Build and maintain the PRD→SPEC traceability table. |101| [`ia-and-categories.md`](references/ia-and-categories.md) | Choose/name a product area; decide add-area vs. add-requirement. |102103---104105## Relationship to Specs106107A PRD states *what* and *why*; a spec states the *engineering contract* that realizes it. The two108are distinct standards (distinct dirs, IDs, owners, templates) with a **bidirectional link**: the109PRD's Linked Specs table points *down* to implementing `SPEC-{SUBSYSTEM}-{NN}~{rev}` IDs; each110spec section cites the `PRD-{AREA}-{NN}` it implements *up*. Read `spec-authoring` when you need111to understand or coordinate the engineering side.