Skip to main content

How to Write a Good PRD / Spec

Use template docs/PRODUCT_REQUIREMENTS.md.

What is FR?

FR = Functional Requirement.

Meaning: 1 FR = 1 clear functional requirement/feature.

Examples:

  • FR-001: User can log in
  • FR-002: User can view profile
  • FR-003: Admin can change user role

Why FR matters:

  • requirements become specific
  • tests become measurable
  • changes become traceable

Minimal PRD structure

  • Business goal
  • User story
  • Acceptance criteria (checklist)
  • Edge cases
  • Impact area (API/Admin/DB)
  • Risks

Example

### FR-010: Approval Workflow
- Goal: add multi-level approval flow
- Acceptance Criteria:
- [ ] user can submit approval
- [ ] level-1 approver can approve/reject

PRD must be updated before coding starts.