Mistakes get more expensive the later you find them. A wrong line in a PRD costs one edit. The same mistake in a pull request costs a rebuild and a re-test. So we put the hard thinking first, while it is still cheap.
It starts by reading your code
A PRD written without the repo is a guess. Agents read the code around the request first, so the plan reflects how your product works today, including the parts that are awkward.
What goes in
Flows and states
Every path a person can take, plus the loading, empty, error and success states. The empty screen is the one that usually gets forgotten, so it gets written down.
Edge cases
For a bulk-deactivate feature, that means questions like: what happens to the last admin? What about people with open sessions? These are product decisions, and you should see them before code exists.
User stories with acceptance criteria
Each story is one small, testable thing. Each gets criteria a person can check. The count of stories is also the price, so scope and cost show up on the same page.
What stays out
Anything you did not ask for. Extra scope is not a bonus. It is more for your team to review.
Your job at this step
Read it and approve it, or change it. Nothing gets built until you do. You get the PRD the same business day you raise the request.