skills/docs/engineering/to-prd.md
Matt Pocock 8010ddb2bb docs: thread code-review through the full build-chain flow
The build chain now ends at code-review. Update every flow doc that draws
the chain so it reads end-to-end:

    grill-with-docs → to-prd → to-issues → implement → code-review

- grill-with-docs / to-prd / to-issues: extend the diagram; point the
  downstream neighbour at implement (which drives tdd internally).
- tdd: reframe from "final step" to the engine inside implement's step.
- implement: extend the diagram to include the review pass.
- ask-matt: narrate the flow ending in review (docs) and note that
  /implement closes out with /code-review (SKILL.md).
- writing-docs guide: refresh the example chain.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 12:05:16 +01:00

59 lines
3.5 KiB
Markdown

Quickstart:
```bash
npx skills add mattpocock/skills --skill=to-prd
```
```bash
npx skills update to-prd
```
[Source](https://github.com/mattpocock/skills/tree/main/skills/engineering/to-prd)
## What it does
`to-prd` turns the current conversation and your codebase understanding into a product requirements document, then publishes it to your issue tracker.
It does **not** interview you again. By the time you reach for it, the alignment work is done — `to-prd` synthesises what is already known rather than asking a fresh round of questions.
## When to reach for it
You invoke this by typing `/to-prd` — the agent won't reach for it on its own.
Reach for it once a change has been talked through and the domain language is settled, and you want that shared understanding written down as a spec before any code is written. If you *haven't* aligned yet, grill first — for that, use [grill-with-docs](https://aihero.dev/skills-grill-with-docs). To split the finished PRD into tickets, use [to-issues](https://aihero.dev/skills-to-issues).
## Prerequisites
`to-prd` publishes into your issue tracker, so [setup-matt-pocock-skills](https://aihero.dev/skills-setup-matt-pocock-skills) must have configured the tracker and triage labels for this repo first. It applies the `ready-for-agent` label itself — no separate triage pass needed.
## What the PRD includes
- **Problem statement** — what is broken or missing, and why it's worth solving, in the project's own vocabulary.
- **Solution** — the shape of the fix at a high level, before any implementation detail.
- **User stories** — an extensive, numbered list of the concrete behaviours the change must support, each one independently checkable.
- **Implementation decisions** — the choices already settled during the conversation, so they aren't relitigated later.
- **Testing decisions** — the seams the feature will be tested at, and what "done" looks like.
- **Out-of-scope items** — what this change deliberately does *not* cover, to keep the ticket bounded.
- **Further notes** — anything else worth carrying forward that doesn't fit the sections above.
## Deep modules
Before writing the PRD, `to-prd` sketches the **seams** at which the feature will be tested and looks for **deep module** opportunities — a lot of functionality hidden behind a small, stable interface. It prefers existing seams to new ones and the highest seam possible, ideally just one across the whole change.
That matters for agentic development: a good interface gives tests something durable to target, so the code underneath can change without the tests moving.
## It's working if
- It starts writing the PRD instead of asking you a fresh round of questions.
- It checks the seams with you before writing, and proposes as few as possible.
- The PRD comes back in your project's domain vocabulary, not generic boilerplate.
## Where it fits
`to-prd` is a step in the main build chain:
```txt
grill-with-docs → to-prd → to-issues → implement → code-review
```
Reach for it after the plan and domain language are resolved, and before you break the work into implementation tickets. Its key neighbours are [grill-with-docs](https://aihero.dev/skills-grill-with-docs), which sharpens the context so the PRD is precise, and [to-issues](https://aihero.dev/skills-to-issues), which turns the PRD into independently-grabbable issues for [implement](https://aihero.dev/skills-implement) to build. When you're unsure which skill or flow fits, [ask-matt](https://aihero.dev/skills-ask-matt) routes you.