GLOSSARY

How to Write User Stories (Format, Examples & Best Practices)

To write a user story: (1) Use the format 'As a [user type], I want [action], so that [outcome].' (2) Focus on the user's goal, not the implementation. (3) Keep each story to a single, testable outcome. (4) Add 3–5 acceptance criteria in Gherkin format: 'Given [context], When [action], Then [outcome].' (5) Ensure it can be completed within one sprint — split stories that cannot.

Updated: Apr 6, 2026By Scriptonia

A user story is a short, plain-language description of a feature from the perspective of the person who will use it. User stories are the primary unit of agile product development — they define what needs to be built in terms of user intent, not technical implementation.

The standard user story format — "As a [user type], I want [action], so that [outcome]" — was popularized by Mike Cohn in the early 2000s and is now the near-universal standard across agile teams. The three-part structure forces clarity: the "As a" clause names who benefits; the "I want" clause names the desired action; the "so that" clause names the business or user value created. A user story missing any of these three parts is incomplete.

The most common mistake is writing user stories from the system's perspective rather than the user's. "The system sends a notification when PRD status changes" is a system behavior description, not a user story. "As a workspace admin, I want to be notified when a PRD I am reviewing changes status, so that I can respond within the same day without manually checking" is a user story — it names who cares, what they want to do, and why it matters.

Good user stories follow the INVEST criteria: Independent (can be developed separately), Negotiable (details are open to discussion), Valuable (delivers user or business value), Estimable (can be sized by engineering), Small (completable in one sprint), Testable (can be verified with acceptance criteria). Any user story that fails the INVEST test should be revised before entering the sprint backlog.

User stories vs tasks vs epics

User story: Describes a desired outcome from a user's perspective. Unit of product value. Written by the PM. Example: "As a PM, I want to generate a PRD from a one-line brief, so that I can hand off to engineering the same day."

Task (engineering ticket): A specific unit of implementation work derived from a user story. More technical and granular. Written by the PM and tech lead together. Example: "Build streaming AI response handler for PRD generation endpoint." One user story typically generates 3–8 engineering tasks.

Epic: A large body of work that is too big to fit in a single sprint — typically a collection of related user stories. Epics are planning containers, not implementation units. Example: "PRD generation" is an epic containing user stories for generation, editing, approval, and export. Epics live in the roadmap; user stories live in the sprint backlog.

How to Use User Stories in Product Management

Follow this step-by-step process to write user stories that actually move features through development without mid-sprint clarification requests:

  1. Identify the user type: Be specific — not "user" but "workspace admin" or "first-time PM." Different user types need different stories even for the same feature.
  2. Name the action in user terms: What does the user want to do? Avoid technical language. "I want to receive a notification" not "I want the system to trigger an event."
  3. State the outcome explicitly: The "so that" clause is the most frequently skipped part and the most important. It tells engineering why the feature matters — and why certain edge cases are worth handling.
  4. Apply the split test: Can this story be completed by one or two engineers in one sprint? If not, split it into smaller stories. "As a user, I want a complete notification system" is an epic. "As a workspace admin, I want to receive a Slack notification when a PRD I am reviewing changes status" is a story.
  5. Add acceptance criteria: Write 3–5 Given/When/Then conditions that define when the story is done. These become the verification checklist for QA and the definition of done for engineering.
  6. Review with the tech lead: Share stories before sprint planning. Engineers surface technical dependencies and feasibility concerns that affect story size and ordering.

Write user stories in batches — draft the full set of stories for a feature before writing acceptance criteria for any of them. This reveals dependencies and gaps in coverage that you cannot see when writing stories one at a time.

User Stories Examples

1Well-formed user story: Slack notifications

As a workspace admin who is responsible for reviewing PRDs before they go to engineering, I want to receive a Slack notification immediately when a PRD assigned to me changes status to 'In Review,' so that I can respond the same day without manually checking Scriptonia every morning. Acceptance criteria: (1) Given Slack is connected, when PRD moves to In Review, admin receives Slack message within 2 seconds. (2) Given Slack is not connected, when PRD moves to In Review, admin receives in-app notification and email. (3) Admin can configure which status changes trigger notifications in workspace settings.

2Before and after: vague vs specific user story

Vague: 'As a user, I want better search.' Problems: 'User' is too broad (which user?). 'Better' is unmeasurable. No 'so that' clause. Specific: 'As a product manager with 20+ PRDs in my workspace, I want to search across all PRD content (not just titles) using keywords, so that I can find a specific requirement or decision from 3 months ago in under 30 seconds instead of opening every document.' The specific version tells engineering exactly what to build and why the current state is insufficient.

3Epic split into user stories

Epic: 'Export PRDs to project management tools.' Too large for one sprint. Split into: (1) 'As a PM, I want to export a PRD's engineering tickets to Linear with one click, so that I can start the sprint without copy-pasting 15 tickets.' (2) 'As a PM, I want exported Linear tickets to include story-point estimates and acceptance criteria from the PRD, so that engineers have everything they need without asking me.' (3) 'As a workspace admin, I want to configure the default Linear project and team for all PRD exports, so that every PM in my workspace exports to the right destination without manual setup.' Three separate stories, each completable in one sprint.

How Scriptonia Automates This

Scriptonia automatically generates 4–8 user stories for every PRD — in the correct "As a / I want / So that" format, with 3–5 Gherkin acceptance criteria per story. For a medium-complexity feature, this typically produces 20–40 acceptance criteria that would take 2–3 hours to write manually.

The user stories are derived from the feature brief you provide — Scriptonia infers the relevant user types from context, names specific actions in user language, and writes "so that" clauses grounded in the problem statement. The acceptance criteria are derived from the user stories and linked to the generated engineering tickets, creating a complete chain from intent to verifiable implementation.

Scriptonia is an AI Product Management OS that generates PRDs in 30 seconds — with a context graph that links PRD → Architecture → Tickets and exports directly to Linear, Notion, and Jira.

Try Scriptonia free →

Frequently asked questions

What is the user story format?

The standard user story format is: 'As a [user type], I want [action or capability], so that [outcome or benefit].' Each part is required: the user type identifies who benefits; the action describes what they want to do; the outcome explains why it matters. Example: 'As a product manager, I want to generate a PRD from a one-line brief, so that I can hand off to engineering the same day without 4 hours of documentation work.'

How long should a user story be?

A user story should be completable by one or two engineers in a single sprint (1–2 weeks). If a story requires more than one sprint to implement, it is an epic and should be split into smaller stories. The story statement itself should be 1–3 sentences. Acceptance criteria add 3–5 additional lines. A complete user story with acceptance criteria is typically 100–200 words.

What are good acceptance criteria for a user story?

Good acceptance criteria are: specific (name exact times, states, and conditions), testable (can be verified by QA without asking the PM), behavior-focused (describe what happens, not how the code works), and written in Gherkin format: 'Given [initial context], When [triggering action], Then [expected outcome].' Avoid vague criteria like 'feature works correctly' or 'UI looks good' — these require judgment calls that cause disagreements at review time.

How many user stories should a PRD have?

A PRD for a medium-complexity feature typically has 4–8 user stories. Lightweight features may have 2–3. Large features may have 10–15 before being split into multiple PRDs. Each user story should be independently testable and completable in one sprint. If your PRD has more than 10 stories, consider whether it should be two separate PRDs — one for the core workflow and one for edge cases or advanced features.

Try Scriptonia free

Generate a complete PRD with architecture blueprint and engineering tickets in under 30 seconds. No account required.

Generate a PRD →
← All glossary terms
© 2026 Scriptonia[ CURSOR FOR PMS ]