Skip to content
Back to all field notes sdd · 6 min

Spec vs PRD: what each one is for (and what agents need)

People use the words interchangeably. An agent needs different things from each, and confusing them is why so much AI-built work misses the point.

PRD

  • Why and for whom
  • Problem and scope
  • Argument
  • The decision

Spec

  • What must be true
  • Boundaries
  • Acceptance criteria
  • The finish line
A PRD argues for a decision; a spec defines the contract an agent builds and verifies against.
field note 6 min

Someone hands you a “spec” and it turns out to be a two-page argument for why the feature matters. Someone else hands you a “PRD” and it is a list of API endpoints. The words have blurred to the point where knowing which document you are holding tells you almost nothing about what is inside.

That blur is harmless when a human reads the document, because a human fills the gaps from context. It stops being harmless the moment you hand the document to an agent, which does not fill gaps from context so much as invent them. So it is worth being precise: a PRD and a spec are different documents doing different jobs, and an agent needs something specific from each.

What a PRD is for

A product requirements document answers why and what for whom. It is the case for building something: the problem, who has it, what success looks like, what is in and out of scope at the product level. Its audience is people who need to agree that this is worth doing before anyone builds it.

A good PRD is mostly about intent and judgment. It argues for a direction, records the trade-offs, and draws the boundary around the problem. What it deliberately does not do is pin down implementation. A PRD that specifies exact endpoints has usually wandered out of its lane.

The failure mode of PRDs is well known: they get long, they get read once, and then they sit unread while the actual decisions happen in Slack. That is the PRD nobody reads problem, and it is worth naming here because it is exactly the part of a PRD an agent cannot use. Prose that argues for a direction is for humans deciding. It is not something an agent can build against.

What a spec is for

A specification answers what must be true and how you will know. It is the contract between the agreed intent and the implementation: the behavior that must change, the constraints that must hold, and the acceptance criteria that decide whether the result is correct.

A spec is downstream of a PRD. The PRD says “guest checkout, because we lose signups at the account wall.” The spec says “guest users complete checkout in three steps; no card data is stored; the logged-in path is unchanged; here are the acceptance criteria.” One argues for the direction. The other defines the finish line precisely enough that you could tell a machine when it has crossed it.

Where a PRD is mostly judgment, a spec is mostly precision. And precision is exactly what makes a spec buildable and verifiable, which is the entire premise of spec-driven development.

The two documents side by side

  PRD Spec
Question Why, and what for whom What must be true, and how we know
Audience People deciding to build Whoever (or whatever) builds and verifies
Content Problem, users, success, scope Behavior, boundaries, acceptance criteria
Register Argument and judgment Contract and precision
Lifespan The decision The implementation and its verification

The rows matter less than the split they describe. A PRD is for reaching a decision. A spec is for executing it correctly. When one document tries to do both, it does neither well: too vague to build against, too detailed to decide from.

What an agent needs from each

This is where the distinction stops being pedantic. An agent needs different things from the two documents, and giving it the wrong parts is how you get confidently wrong output.

From the PRD, an agent needs intent and boundaries, not the argument. The three paragraphs on why guest checkout matters are for the humans who approved it. What the agent needs to extract is the compressed version: build guest checkout, here is who it is for, here is what is out of scope. Feed an agent the full persuasive PRD and it will treat rhetorical emphasis as requirements and build the thing the document was most enthusiastic about, not the thing that was decided.

From the spec, an agent needs the contract, especially the acceptance criteria. This is the part that has to be machine-usable. Boundaries it must not cross, behavior it must produce, and acceptance criteria it can actually verify rather than nod at. An agent that gets a precise spec can check its own work against it. An agent that gets a vague one will report success against criteria it invented.

The single most common mistake is handing an agent a PRD and expecting spec-level results. The document was written to win a decision, not to define a finish line. The agent reads intent where it needed a contract, and produces something that argues well and verifies poorly.

The handoff between them

The PRD and the spec are two stages of one flow, not rivals. The PRD settles the what for and whether. The spec turns the settled decision into a what exactly and how we know. The handoff between them is where a lot of AI-assisted work quietly breaks: the decision lives in one artifact, the contract in another, and nothing connects them, so the reason behind the spec gets lost and the spec drifts from the decision that motivated it.

In practice you do not always need a heavy version of both. A small change might collapse the PRD into two sentences of intent and put its weight on the spec. That is fine, and it is the core of a lightweight spec-driven workflow: keep the intent and the contract, drop the ceremony that serves neither. What you cannot do is collapse them into a single vague document and hope the agent sorts out which parts are the argument and which are the contract.

Where PaellaDoc fits

The gap between a PRD and a spec is a gap between two documents in two tools that do not know about each other. PaellaDoc keeps both in one local model: the intent and boundaries from the decision, connected to the spec’s contract and acceptance criteria, connected in turn to the code and the evidence. An agent reads intent as intent and the contract as the contract, and the decision behind a spec stays attached to it instead of getting lost in the handoff.

FAQ

Do I need both a PRD and a spec for every change? No. Big or shared changes benefit from both. For a small change, two sentences of intent plus a tight spec is enough. The point is to keep the two jobs distinct, not to always produce two documents.

Is a spec just a more detailed PRD? No, and treating it that way is the mistake. A PRD argues for a decision; a spec defines a contract. More detail on a PRD makes a long PRD, not a spec. They differ in kind, not in level of detail.

Which one does an AI agent actually build from? The spec. The PRD gives an agent compressed intent and boundaries; the spec gives it the contract and the acceptance criteria it builds and verifies against. Hand it only a PRD and it will invent the contract, usually wrongly.