Product Requirements Document (PRD)

A short document that defines what you’re building, who it’s for, what “done” looks like, and what’s explicitly out of scope — written before any code exists.


What is a PRD?

A PRD is a contract with yourself (and your team, and your AI agent) about what you’re building and why. It’s not a technical document — it describes the problem and the desired outcome in language a non-engineer would understand. It does NOT specify how to build it. That’s the job of a technical-specification.

Most software projects fail not because of bad code, but because of unclear intent. The PRD is the first line of defence against building the wrong thing.

A good PRD is short — 2 to 4 pages. If it’s longer, it’s trying to be a spec. If it’s shorter, it’s probably missing something important.

In plain terms

A PRD is like a project brief for a builder. Before constructing a house, you write down: who will live there, how many rooms, what’s the budget, and — critically — what you’re NOT building (no swimming pool, no third floor). The builder doesn’t need to decide where the plumbing goes yet. That comes later. First, everyone agrees on what “done” looks like.


At a glance


How does a PRD work?

A PRD has seven core sections. Each one answers a specific question that, if left unanswered, will cause problems later.

1. Problem statement

What pain exists? Describe the problem you’re solving in plain language. Not the solution — the problem. This keeps you honest about why the project exists.


2. Target users

Who specifically? Not “everyone.” Not “users.” Name the people and describe their situation, skills, and constraints.


3. Success metrics

How do we know it works? Define measurable outcomes — not activities (“we shipped features”) but results (“users can do X”).

Think of it like...

A doctor doesn’t measure success by “number of prescriptions written.” They measure “did the patient get better?” Your metrics should measure the outcome, not the output.


4. Core user flows

What does the user actually do? Walk through the main journeys step by step. This exposes assumptions and reveals what needs to be built.

Concept to explore

See user-stories for how to formalise user flows into testable stories with acceptance criteria.


5. Scope — must-haves

What’s in this version? List only what must ship for the product to be useful. Be ruthless. Every item here is a commitment.


6. Out of scope

What’s explicitly NOT in this version? This is the most valuable section in the entire PRD. It prevents scope creep before it starts. If something isn’t listed as in-scope or out-of-scope, it’s ambiguous — and ambiguity is where projects go wrong.

Why "Out of Scope" matters

Without this section, every conversation becomes “should we also add…?” With it, the answer is clear: “That’s out of scope for this version. We can revisit in the next PRD.”

For AI-assisted development, this is critical. Without boundaries, an AI agent will happily build features you didn’t ask for, adding complexity and technical debt.


7. Constraints

What’s non-negotiable? Requirements that constrain every decision — technical, legal, ethical, or practical.


Why do we use PRDs?

Four problems a PRD solves

1. Building the wrong thing. Without a PRD, you build what feels right in the moment. With one, you build what was agreed.

2. Scope creep. Features expand silently. The “Out of Scope” section is the brake pedal.

3. Misaligned expectations. You think “done” means X, your collaborator (or AI agent) thinks “done” means Y. The PRD aligns everyone before work starts.

4. Wasted iteration. Without a PRD, AI agents guess at requirements and you spend cycles correcting them. With a PRD, the agent has a reference point. GitHub’s Spec Kit team: “Write a 1-page PRD before you vibe code anything.”


When do we use PRDs?

  • When starting a new project or a new major phase of a project
  • When the scope is unclear or ambitious and needs bounding
  • When working with AI coding agents that need a reference for what “done” looks like
  • When multiple people (or multiple sessions) will contribute to the same project
  • Before writing a technical-specification — the PRD informs the spec

Rule of thumb

If you can describe the entire task in one sentence and finish it in one session, you don’t need a PRD. For anything bigger, write one — even if it’s just half a page.


How can I think about PRDs?

The travel itinerary

A PRD is like a travel itinerary before a trip.

  • Problem: “We need a holiday” (why are we doing this?)
  • Target users: “Family of four, kids aged 8 and 12”
  • Success metrics: “Everyone has fun, budget stays under CHF 3,000”
  • Core flow: “Fly to Barcelona → 3 nights hotel → beach + city → fly home”
  • Scope: “Barcelona only. Beach, Sagrada Familia, local food”
  • Out of scope: “Not visiting Madrid. Not renting a car. Not doing a road trip”
  • Constraints: “Must fly direct. Hotel must have pool. No more than 5 days”

Without the itinerary, day 2 becomes “should we also visit Madrid?” and the budget doubles. The “out of scope” section is what keeps the trip on track.

The recipe card

A PRD is like choosing a recipe before cooking.

  • You decide what dish to make (problem + goal)
  • You check who’s eating and their dietary needs (target users)
  • You define “done” (a dish that tastes good and feeds four)
  • You list the ingredients and steps at a high level (scope)
  • You explicitly decide what you’re NOT making (no dessert tonight)
  • You note constraints (vegetarian, ready by 7pm, using what’s in the fridge)

The recipe card doesn’t tell you the exact temperature for the oven — that’s the technical-specification. It tells you what you’re cooking and why.


PRD vs Technical Specification

This distinction trips people up, so it’s worth its own section.

PRDTechnical Specification
AnswersWhat and why?How exactly?
LanguagePlain language, non-technicalPrecise: inputs, outputs, error cases
AudienceYou, stakeholders, anyoneYou + the AI agent / developer
Example”Users can browse instruments""GET /api/instruments returns JSON array, sorted by name, paginated at 20”
ChangesRarely (goals are stable)Often (implementation details evolve)
Length2-4 pagesVaries per feature

The handoff

The PRD says “what does the restaurant serve?” The spec says “here’s the recipe for each dish.” You need the menu before you write recipes.


Concepts to explore next

ConceptWhat it coversStatus
technical-specificationHow to define exact behaviour for AI agentscomplete
architecture-decision-recordsHow to record the “why” behind choicescomplete
user-storiesHow to formalise user flows into testable storiescomplete
acceptance-criteriaHow to define binary “done” conditionsstub
scope-managementHow to manage scope and prevent creepcomplete

Some of these cards don't exist yet

They’ll be created as the knowledge system grows. A broken link is a placeholder for future learning, not an error.


Check your understanding


Where this concept fits

Position in the knowledge graph

graph TD
    SD[Software Development] --> PR[Product Requirements]
    PR --> PRD[PRD]
    PR --> TS[Technical Specification]
    PR --> ADR[Architecture Decision Records]
    PRD --> US[User Stories]
    PRD --> AC[Acceptance Criteria]
    PRD --> SM[Scope Management]
    style PRD fill:#4a9ede,color:#fff

Related concepts:


Further reading

Resources