# Pm Prd

> Principal-level PRD co-author for stakeholder and exploration tracks, lite variant, Draft opener, Update track re-check, triage, Solution vs Execution precedence, rollback Path 2, execution spec, checkpoints C0–C5, and session-end coherence. Use when drafting, updating, auditing, or reviewing PRDs, product requirements, functional specs, or agent-ready execution specs, or when the conversation references PM PRD.

- Skill: `cabezas-felipe/pm-prd` (Agent Skill)
- Install (CLI): `npx skillmds@latest add cabezas-felipe/pm-prd`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cabezas-felipe/pm-prd/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: cabezas-felipe (https://skillmd.com/u/cabezas-felipe)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/cabezas-felipe/pm-prd

---


# PM PRD

Industry-neutral PRDs. **No fabrication** (evidence, metrics, quotes, stakeholder facts). Unknowns → `PM input required` + what closes the gap.

## Formatting conventions (required)

- Header field format is: `Status | Owner | Last updated`.
- **Status** values must start with a capital letter (for example: `Draft`, `In review`, `Approved`, `Deprecated`).
- **Owner** label is `Owner` only (do not use `Owner (DRI)`).
- **Last updated** date format is `DD MMM YY` (for example: `20 Apr 26`).
- **PRD track** field label is `PRD track`, and track values must start with a capital letter (`Stakeholder` or `Exploration`).

## Modes

Name the mode first: **Draft** | **Update** | **Audit**.

| Mode | Do |
|------|-----|
| **Draft** | Build from schema below; unknowns → `PM input required`. |
| **Update** | Only requested sections; keep confirmed rest. **Update — track / variant** (next subsection) **required** when its triggers fire. |
| **Audit** | Doc vs schema, readiness, coherence; prioritize biggest gaps. |

### Update — `PRD track` / `Track variant` (when triggered)

Not a full **Draft** / **C0** on every edit. Run when **either**:

1. **Promotion** — Edit applies or continues **exploration → stakeholder** (**Promotion**).
2. **Material change** — Any touched: Solution **In / Out** / material scope · new or expanded **non–eng+PM** approver · **money / regulated / material PII / partner or contract / public API** · **hard rollback** (schema, pricing, irreversible state, etc. — same themes as **Quick triage**) · PM raises stakes explicitly.

**If triggered:** Confirm **`PRD track`** and (if stakeholder) **`Track variant`** still fit.

- **Changed** → update **header** + **one line** in **Decision log** (`Decision | Rationale | Date | Revisit trigger`).
- **Unchanged** → no track-only log line; if promotion ran, still **Promotion** backfill + coherence.
- **Neither** → skip.

**Opening (Draft):** Say **Draft** → **C0** (**PRD track** + triage if unknown) → **Checkpoints** unless PM set an **escape hatch** (e.g. `through C3`, `C0 only`).

**Cadence:** Checkpoints = default pauses. **Tone:** Rigor, not bloat.

## PRD track (Draft — required)

**Ask first:** Track known, or unknown?

- **Known** — `PRD track: Stakeholder | Exploration`. Stakeholder → `Track variant: full | lite` (default **full** if omitted). Follow structure below.
- **Unknown** — **Quick triage** → default **Exploration**; say so explicitly. **Promotion** when stakes rise.

Track choice = **alignment burden × reversibility × evidence** (not “how much AI”).

### Quick triage (unknown track)

Short answers. **Any** clear yes → **stakeholder**. Pick **`lite`** if alignment matters but a full MoSCoW REQ set is premature (**Stakeholder-lite**). Else **`full`**.

- Regulated / money / material PII / contractual partner?
- Approvers beyond eng + PM (legal, security, partner, exec)?
- Hard rollback (schema, pricing, public API, irreversible user state)?

All no → **Exploration**.

### Stakeholder track

High alignment, complex or reversible bets, many reviewers → **Canonical structure**. `Track variant: full` unless **Stakeholder-lite**.

### Stakeholder-lite (`Track variant: lite`)

Stakeholder **decision hygiene**, **lighter REQs**, default **implementer handoff** (stakeholder-leaning triage without full MoSCoW breadth yet).

**Header:** `PRD track: Stakeholder` · `Track variant: lite`.

**Section order** (differs from **full** after `## Solution`):  
`## Solution` → **`## Execution spec (agent-ready)`** (same bullets as that heading under **Exploration track structure**) → **`## Functional requirements` (Must only)** → `## Non-functional requirements` → `## Implementation & dependencies` → `## Cross-functional launch readiness` → `## Risks, assumptions, and open questions` → `## Appendix` (optional).

**Lite minimum**

| Area | Rule |
|------|------|
| **Risks / assumptions / open questions** | Same bar as **full**; **decision log** always. |
| **Launch readiness** | Non-empty buckets only; **any** non–eng+PM approver → **Approvals** (owners may `TBD`). |
| **Functional requirements** | **Must** rows only unless PM widens. Each Must: testable AC, one-line traceability, ↔ Solution In scope. Grouping: PM. |
| **Goals, metrics, guardrails** | Same metric-table rigor as **full** when targets exist; else goals + guardrails + `TBD` / `PM input required` + gap. |

**Thin:** Short secondary metrics; defer non-Must REQs to promotion or **full**.

**Execution spec:** Include after Solution (paste-ready). Waive only with `Execution spec: waived by PM` in header or under the section.

### Exploration track

Fast learning, small blast radius, easy rollback, few approvers → **Exploration track structure**. Prefer **`## Execution spec (agent-ready)`** over long REQ tables. **`REQ-*` Must** only for sign-off / audit.

### Promotion (exploration → stakeholder)

**When:** New approvers; compliance / partner / contract pressure; irreversible data; scope hits high-risk surfaces; PM locks for launch.

**Do:** `PRD track: Stakeholder`; `Track variant: full` unless **lite** still fits; optional promotion date on header. **Backfill:** `## Functional requirements` (Must ↔ in-scope), NFRs, Launch readiness, metrics/sources, Appendix; add **`## Execution spec (agent-ready)`** for **lite** or when handoff needs it. Re-run coherence + readiness.

## Session end (required)

Draft/Update changed the PRD body → run **Coherence pass** (below) **unless** PM waives for that turn.

1. Re-read full PRD.  
2. Coherence pass.  
3. Report coherence findings in chat only; do not add a `Coherence pass` section to the PRD deliverable unless the PM explicitly requests it.

**Readiness** checklist: optional (**Readiness**).

## Canonical structure — stakeholder (`Track variant: full`)

Use another template only if the PM supplies it.

**Lite (`Track variant: lite`):** Same section order as **full**, except after `## Solution` insert **`## Execution spec (agent-ready)`** and keep **`## Functional requirements`** to **Must** rows only — details under **Stakeholder-lite**.

### Header (no `##`)

`# <Title>` · one-line verb-led description · `Status | Owner | Last updated` (`Draft` | `In review` | `Approved` | `Deprecated`; bump on material edits) · `PRD track: Stakeholder` · `Track variant: full | lite` (default **full**) · if **lite** + waived execution spec: `Execution spec: waived by PM` (header or under section) · no version / links in header. `Last updated` must use `DD MMM YY`.

### `## User problem`

Primary user · pain · evidence (signal, source, time window) · optional adjacent users · ≤1 labeled hypothesis · quotes only if strong + sourced

### `## Business problem`

Stakes · strategic fit / why now · constraints / assumptions · stakeholders (roles) · metrics in prose OK · non-goals → Solution **Scope** → Out of scope

### `## Goals, success metrics, and guardrails`

Goals (short) · primary / secondary metrics · guardrails. Per metric: `Metric | Definition | Baseline | Target | Time window | Source of truth` — else `TBD` / `PM input required`

### `## Solution`

`### Overview` · optional `### User flow` · optional `### Alternatives` · `### Scope` (In / Out; non-goals in Out). UI-heavy: platforms/surfaces **required**; else optional.

### `## Functional requirements`

**Full:** By capability (default); journey grouping if UI-heavy/funnel (PM confirms). `REQ-01`… — requirement · **MoSCoW** (Must / Should / Could / Won’t) · testable AC · one-line traceability · optional deps. Must ↔ Solution In scope (flag drift).

**Lite:** Must rows only (unless PM expands); same ID / AC / traceability.

### `## Non-functional requirements`

Discussed buckets only. Security + privacy = one bucket. Accessibility: UI-heavy or PM asks. Each: requirement + target or `TBD` + how verified

### `## Implementation & dependencies`

Discussed only. **Interfaces & contracts** if external integration. **Data & analytics** if Goals list metrics. Subsection **Rollout & milestones**. **Reversibility (Path 2):** **Rollback, ramp-down, and kill**.

### `## Cross-functional launch readiness`

Non-empty buckets only. Order: QA → Support → Ops → Comms → Approvals. Skip Comms if solo/non-public.

### `## Risks, assumptions, and open questions`

Risks (if any) · assumptions + H/M/L confidence · open questions: `Question | Owner | Due date | Default if unresolved` · **Decision log** always: `Decision | Rationale | Date | Revisit trigger`

### `## Appendix`

`Label | Link | Note` when citing artifacts; else omit. Shareable URLs; no invented local URLs; git blob only if remote/branch confirmed.

## Exploration track structure

**Header:** Same fields as stakeholder **Header**, but `PRD track: Exploration` and **no** `Track variant`. Omit empty sections.

### `## User problem` / `## Business problem`

Same intent as stakeholder; shorter OK if gaps labeled. **Why now** (or pointer to Goals).

### `## Prioritization logic` (short)

Why this bet **now**: confidence gap · speed to learn · reversibility · learning value. `PM input required` if unset.

### `## Goals, success metrics, and guardrails`

Stakeholder rules when metrics exist; else goals + guardrails + `TBD` + gap.

### `## Exploration (AI-assisted)`

Hypotheses · approaches tried/queued · tested artifacts (**links** or `to be created`) · learnings · **decision:** chosen path, why, tradeoffs. Heavy optionality → optional `### Alternatives`.

### `## Solution`

`### Overview` · `### User flow` (preferred) · `### Scope` (In / Out)

### `## Execution spec (agent-ready)`

Paste-ready (e.g. Cursor, Claude Code): **goal** · **inputs** (user + system) · **outputs** · **core logic** · **edge cases** · **constraints** (tech, partner/API, legal) · **open questions** blocking build. Does not replace **decision log**.

### `## Prototype & artifacts` (optional)

Mocks, branches, experiments, API sketches. None → omit. `To be created` only if PM commits.

### `## Learning agenda`

Unknowns · what slice **tests** · success/failure **signals** · **rollback / blast radius** (flag, dark launch, revert…) · **kill / pause** — **encouraged**; `TBD` / `PM input required` OK. → **Rollback, ramp-down, and kill**.

### `## Functional requirements` (light)

**Must** only for sign-off, compliance, partner language — **or** omit until promotion; lean on **Execution spec**.

### `## Non-functional requirements` / `## Implementation & dependencies` / `## Cross-functional launch readiness`

Same as **Canonical** for those headings; non-empty buckets only. Launch often thin early.

### `## Risks, assumptions, and open questions` / `## Appendix`

Same as **Canonical**.

## Solution vs Execution (both in the doc)

**Option A — split authority** (single source of truth per layer).

| Layer | Owns |
|-------|------|
| **`## Solution`** | Intent, **In / Out**, non-goals, user flow (PM level), **why**. |
| **`## Execution spec (agent-ready)`** | Implementable contract: I/O, steps, edges, constraints for eng/agents. |

**Precedence**

1. **Scope** — **Solution** wins until PM edits it. **Must** REQs that define scope stay aligned with Solution.
2. **Behavior** — **Execution spec** wins vs conflicting Solution prose; update Solution later **or** log conflict in **coherence**.
3. **Must REQ** (sign-off / compliance / partner) vs execution spec → **coherence flag only**; PM resolves; no silent winner.

## Rollback, ramp-down, and kill (encouraged)

| Track | Where |
|-------|--------|
| **Exploration** | **`## Learning agenda`** |
| **Stakeholder** | **`## Implementation & dependencies`** → Rollout **only** if Path 2 applies — no boilerplate on every PRD |

**Strength:** Encouraged; `TBD` / `PM input required` OK.

**Path 2 (stakeholder)** — Add a short note if **any:** flag / experiment · canary / phased · partner pilot · migration / schema · pricing / commercial terms · new/changed **public API** or **partner/contract** surface · triage flagged **hard rollback** · PM says gated/reversible ship.

**If Path 2:** Ramp-down / revert / disable (or owner) **or** `Irreversible — mitigation: …`. Unknown → one-line gap + what closes it.

**Exploration:** Nudge rollback/kill on learning slices; `TBD` OK.

## Checkpoints (Draft)

Pause before the next layer (not every subsection). Tune cadence after use if needed.

| ID | When | Confirm |
|----|------|---------|
| **C0** | Track gate | `PRD track`, triage; stakeholder → `Track variant` |
| **C1** | Problem + stakes | User + Business problem; gaps labeled |
| **C2** | Goals + guardrails (+ metrics if claimed) | Goals, guardrails, metrics or `TBD` + gap |
| **C3** | Scope + approach | Solution In/Out; exploration = **Exploration** decision; stakeholder = overview + enough flow for REQs |
| **C4** | Execution surface | **`## Execution spec (agent-ready)`** (exploration / **lite** if not waived) **or** shippable **Must** REQ set |
| **C5** | Promotion / launch | Promotion + variant; first material Launch / Approvals |

**Escape hatch:** `through Cn` → draft to **Cn**, pause. `C0 only` → still **C0** + session-end coherence; agent may warn once on drift risk.

Phased batching ≈ **C1→C4**; **C5** when Launch/Approvals appear.

## Phased draft (Draft)

Follow **Checkpoints** unless an escape hatch is set.

- **Stakeholder full:** Header → User → Business → Goals → Solution → Functional REQs → NFRs → Implementation → Launch → Risks → Appendix  
- **Stakeholder lite:** Same through Goals → Solution → **Execution spec** (unless waived) → Must REQs → NFRs → Implementation → Launch → Risks → Appendix  
- **Exploration:** Header + triage line → User → Business → Prioritization → Goals → Exploration → Solution + Execution spec → Learning agenda → light REQs → NFRs / Implementation / Launch → Risks → Appendix  

Solution-first OK; anchor User/Business before locking execution. **Session end** before close.

## Readiness (on request or post-checkpoints)

- **Stakeholder full:** Must REQs ↔ in-scope + metrics · measurable guardrails · data/analytics if Goals have metrics · QA / Support/Ops if risky · open Qs: Owner, Due, Default · Solution vs Must drift · **Solution vs Execution** if both sections exist · Path 2 → Implementation: reversibility, or irreversible + mitigation, or gap + owner  
- **Stakeholder lite:** Execution spec or waiver · spec ↔ in-scope · **Solution vs Execution** · Must REQs ↔ in-scope + metrics · Approvals if non–eng+PM approvers · decision log · open Qs · Path 2 → Implementation (same as full)  
- **Exploration:** Execution ↔ in-scope · **Solution vs Execution** · guardrails · Learning agenda: signals, rollback/kill or `TBD` · promotion triggers  

Output: `Criterion | Pass/Gap | Fix`

## Coherence pass

After body edits (session end) or `coherence check`.

- **Stakeholder full:** User/Business/Goals/Solution/Must REQs · **Solution vs Execution** (Option A) · Path 2 applies per doc → Implementation covers reversibility or gaps (no invented rollout facts) · terminology · definitions · list order = priority · tables/lists consistent  
- **Stakeholder lite:** Same + spec ↔ Solution/Must when spec present; if waived, flag Solution/Must gaps the spec would have closed · **Solution vs Execution** when both exist  
- **Exploration:** User/Business/Goals/Solution/Execution spec/Learning agenda · **Solution vs Execution** (scope / behavior / Must sign-off) · Learning agenda: rollback/kill or `TBD` for experimental slices · Must REQs ↔ scope · promotion need  

Output: `Issue | Location | Suggested fix` (dedupe)

## Audit mode

End-to-end: gaps vs **active track** (+ **`Track variant`** if stakeholder) · readiness · coherence · **top 5** actions · promote exploration if needed · **lite** gaps (Must-only, Approvals, execution spec or waiver)

## Output contract

One deliverable: PRD at PM path. No side files unless PM asks.

- Do not include internal process sections in the PRD markdown output (for example: `Coherence pass`, checkpoint logs, or workflow notes) unless explicitly requested by the PM.

**Triggers:** `write a PRD`, `draft a spec`, `update section …`, `review this PRD`, `readiness`, `coherence check`, `product requirements for …`

## Related skills

- **PM Product Strategy** (`pm-product-strategy`) — direction, scope, and bets before PRD lock when still unclear.

