Guide

How to write user stories with ChatGPT

ChatGPT or Claude can turn a feature into user stories a team can build and test, if you ask for the parts that make stories useful. One role per story, written as "As a… I want… so that…", where the "so that" names an outcome the user cares about. Slices a user can try on their own, not a backend story and a frontend story. Acceptance criteria as Given/When/Then: the happy path, at least one failure path, and any rule boundary. A list of edge cases (empty data, duplicates, no permission, the same action twice), what's deliberately out of scope, and an INVEST check per story. The team then reviews the stories like any draft, starting with the ones that fail "Small" or "Testable".

Short answer

  • One role per story, a real "so that".
  • Slices a user can try.
  • Given/When/Then, with a failure path.
  • Edge cases, out of scope, INVEST.

The brief to copy

User stories brief

"Turn this feature into user stories.

One role per story: As a [role], I want [action], so that [outcome the user cares about]. Flag any story whose honest 'so that' is 'because we said so'.

Split by what a user can try, never by technical layer.

For each story, 2 to 5 acceptance criteria as Given / When / Then: the happy path, at least one failure path, and any rule boundary.

Check each story for empty data, very long input, duplicates, no permission, lost connection, the same action twice, and existing data. Each becomes a scenario or goes under out of scope.

End each story with an INVEST check, pass or fail per letter.

Feature and rules: [paste]"

A worked example

Illustration: a made-up business. An invoicing app wants customers to export their invoices to a spreadsheet. One of the stories:

From the stories

Story: As a bookkeeper, I want to export one month's invoices as a CSV file, so that I can reconcile them in my accounting software without retyping.

Given I have 40 invoices dated March, When I export March, Then I get one CSV file with 40 rows and the columns number, date, customer, net, tax, total.
Given I have no invoices in March, When I export March, Then I see "No invoices in this month" and no file is created.
Given I'm a viewer without billing permission, When I open the export, Then the button is disabled and says who can export.

Edge cases: a customer name with a comma (quoted in the CSV); exporting twice (two files, no error).
Out of scope: exporting payments; scheduled exports.
INVEST: all pass; Small passes because payments are a separate story.

The product manager adds the column order the accounting software expects, which the AI couldn't know, before the stories go to planning.

Before planning

  1. Check every "so that" names something a user would say they want.
  2. Add what only you know: formats, limits, the rules in your product.
  3. Split any story that fails Small; sharpen any that fails Testable.
  4. Keep customer data out of what you paste; describe the data instead.
  5. Save the brief for the next feature.

Next step: review before the build

Stories inherit the gaps in the spec they come from. Reviewing a product spec with AI before the team builds it covers the same checks for the whole spec. To start from notes instead, see writing a PRD with ChatGPT from your notes.

Skills for this

All skills

Questions

Can ChatGPT write user stories?

Yes, if you ask for the parts that make them buildable: one role per story, a "so that" that names a real outcome, slices a user can try on their own, acceptance criteria as Given/When/Then with at least one failure path, edge cases, what's out of scope, and an INVEST check. Then the team reviews them like any other draft.

What's the format for acceptance criteria?

Given the starting state, When the one action, Then the observable outcome, with "And" for extra conditions. Write two to five per story: the happy path, at least one failure path, and any rule boundary.

How do I split a big user story?

By what a user can try, not by technical layer: along workflow steps, business-rule variants, data types, or the happy path first and the exceptions later. A "backend story" and a "frontend story" are tasks, not stories.

AI skill

Have your AI turn a feature into user stories with acceptance criteria

Put this skill in AI Skill Pod and everyone on your team gets it in their Claude, Cursor or ChatGPT (Pro, Business, Enterprise): one invite link, free to start. With User stories with acceptance criteria, each person's AI turns a feature into user stories: one role per story, a real "so that", slices a user can try, Given/When/Then acceptance criteria, edge cases, out-of-scope notes and an INVEST check per story.

Use this skill in your AI

14 days free · No card needed

Sources

  1. Dan North: Introducing BDD — As a / I want / so that; Given / When / Then (read 2026-11-04)
  2. Martin Fowler: Given When Then (read 2026-11-04)
  3. Bill Wake: INVEST in good stories — Independent, Negotiable, Valuable, Estimable, Small, Testable (read 2026-11-04)