User Story & Acceptance Criteria Generator
User stories with acceptance criteria, checked against INVEST, exported to your tracker.
Try before you buy.
- Free preview: the checks of every story and the first words of the backlog (up to 100, never more than half).
- Locked until you unlock it: download and copy.
- Unlock: Premium pass, ₹799 for 30 days or ₹249 for 1 week, a one-time payment that never renews. Unlock: Premium pass, $19.99 for 30 days or $7.99 for 1 week, a one-time payment that never renews.
Ways to unlock shows how to get the full result.
Printing this result is locked in the free preview.
Product
Your backlog stays in this browser (as a draft) and in the project file you save. Nothing is uploaded.
Definition of done, out of scope and risks
Epics
Write stories
From your requirements or a spreadsheet
Stories
| # | ID | Title and story | Epic | Points | Labels | INVEST | Actions |
|---|
No stories yet: write one above, or load the example.
INVEST: Independent, Negotiable, Valuable, Estimable, Small, Testable. A filled letter passes its checks.
Backlog and exports
Downloads
Azure DevOps options
Jira labels cannot hold spaces: they are joined with hyphens. Linear gets the epic as a label. The issue script creates the labels and the issues with the gh command-line client.
Locked in the free preview. Opens the ways to unlock this result.
Locked in the free preview. Batch runs unlock with a pass.
Locked in the free preview. Query results unlock with a pass.
About the User Story & Acceptance Criteria Generator
Write a backlog of user stories — “As a <role>, I want <goal>, so that <benefit>” — grouped in epics, each with acceptance criteria as Given/When/Then scenarios and a checklist, story points and labels. Start from the guided form, paste your requirements (lines already written as stories are taken apart; other lines become goals, marked as assumptions to confirm), or import a spreadsheet of tasks.
Every story is checked as you write it: against INVEST — Independent, Negotiable, Valuable, Estimable, Small, Testable — and common smells such as a missing or generic role, a solution inside the story (“click a dropdown”), a compound “and”, and words nobody can test (“fast”, “easy”). Large stories get splitting suggestions by SPIDR (spike, paths, interfaces, data, rules), and each story lists the open questions to settle with the team.
The backlog exports as Jira, Linear and Azure DevOps import files, a shell script that creates the issues with the gh command-line client, Markdown, Gherkin .feature files, and a one-page requirements document in Markdown or Confluence wiki markup. Nothing is uploaded. The free preview shows every check and the first words of the backlog; a Premium pass downloads and copies the files.
How to use it
- Name the product, list the roles (one per line) and add the epics.
- Write each story in Write stories: as a (role), I want (goal), so that (benefit); choose its epic, points and labels. Or paste requirements, or import a spreadsheet of tasks.
- Open a story with Edit to add its acceptance criteria — Start from a suggestion writes two scenarios to adapt — and read its checks, the ways to split it and its open questions.
- Reorder the stories in the table, fill in the definition of done, the out-of-scope items and the risks.
- With a Premium pass, download the file for your tracker (Jira, Linear or Azure DevOps CSV, or the issue script), the Markdown backlog, the Gherkin files or the requirements document; without one, the page shows the checks and the first words of the backlog.
Examples
Role: returning shopper · Goal: save a product to my wishlist · Benefit: I can find it again and buy it later · 3 points · 2 scenarios
As a returning shopper, I want to save a product to my wishlist, so that I can find it again and buy it later. · INVEST: I N V E S T all met
As a user, I want to pay by card or by bank transfer and see a fast confirmation page · 13 points
Generic role “user” · no benefit · compound “and” · “fast” cannot be measured · no acceptance criteria · 13 points is large → split by Paths (one payment method first)
“Users can save an address for next time”
As a user, I want to save an address for next time. (marked as an assumption to confirm, with no benefit yet)
Common uses
- Turning a feature idea or a requirements list into a backlog the team can estimate.
- Checking stories before a refinement meeting.
- Moving a backlog into Jira, Linear or Azure DevOps without typing it twice.
- Writing Given/When/Then scenarios that testers and developers share.
- A one-page requirements summary for stakeholders.
The checks
- INVEST (Bill Wake, INVEST in Good Stories): Independent (no overlap with another story, no “depends on”), Negotiable (the need, not the design: no buttons, dropdowns or databases in the goal), Valuable (a specific role and a benefit), Estimable (story points given), Small (one goal, under 13 points), Testable (acceptance criteria, no unmeasurable words). A letter is filled when its checks pass.
- Smells: no role, a generic role (“user”), a compound “and”, vague words (“fast”, “easy”, “user-friendly”, “intuitive”…), scenarios missing a Given, When or Then step, duplicates.
- Splitting by SPIDR (Mike Cohn, five ways to split stories): a spike for the unknown part, one story per path, one interface first, one kind of data first, the simple case before the rules.
- Open questions for each story: why the role needs it, what a vague word means as a number, which path comes first, how the product owner checks it.
The export files
- Jira CSV: Work item ID, Summary, Work type (Epic or Story), Description, Parent (the epic’s ID; epics come first), Story Points and a Labels column for each label, as Jira’s CSV import reads them. Jira labels cannot hold spaces, so their words are joined with hyphens; map Story Points to your site’s field in the import wizard.
- Linear CSV: Title, Description, Priority, Status, Assignee, Created, Completed, Labels and Estimate, the columns of Linear’s CSV import; the epic travels as a label.
- Azure DevOps CSV: Work Item Type, Title 1 (the epic), Title 2 (its stories), Description, Acceptance Criteria (as HTML), the points field of your process (Story Points, Effort or Size) and Tags separated by semicolons — new work items as Azure Boards imports them, at most 1,000 per file.
- Issue script: a shell script that creates the labels and one issue per story with the gh command-line client.
- Gherkin: one .feature file per story (one Feature per file, as Gherkin requires), its scenarios with Given, When, Then and And, tagged with the story’s ID, epic and labels.
- Requirements document: goals, scope, out of scope, the stories table, risks, open questions and the definition of done, in Markdown or in Confluence wiki markup (Insert › Markup in the editor).
Limitations
- The checks read the words of each story; they cannot know whether the work is really small or independent: the team decides.
- Requirements text is read line by line, without AI: lines that are not written as user stories become goals of a guessed role, marked as assumptions to confirm.
- Tracker fields differ between sites and processes: check the column mapping in your tracker’s import screen.
Privacy
On this device; its files download once
Your backlog is kept as a draft in this browser and in the project file you save. Nothing is uploaded.
Frequently asked questions
What do I get without a pass?
Without a pass, User Story & Acceptance Criteria Generator shows the checks of every story and the first words of the backlog (up to 100, never more than half). Until you unlock it, the result can’t be downloaded or copied. A Premium or Ultimate pass, a one-time payment that never renews, unlocks the full result. The pricing page lists the passes and their prices.
What makes a good user story?
A specific role, one goal, and the benefit — “As a returning shopper, I want to save a product to my wishlist, so that I can buy it later” — with acceptance criteria that say how the team will know it works. The INVEST checks look for exactly that.
How do I import the CSV into Jira?
Use Jira’s CSV import, choose the file, and check the column mapping: Summary, Work type, Description, Parent and the repeated Labels columns map directly; map Story Points to your site’s story points field. Epics come first in the file, so the stories find their parents.
Why one .feature file per story?
Gherkin allows a single Feature per file, so each story is its own Feature with its scenarios. The files come in one ZIP, in the backlog’s order.
Can I write stories from a spreadsheet?
Yes: import a CSV or Excel file with a Summary (or Title) column, and optionally Epic, Role, Goal, Benefit, Story Points, Labels and Acceptance Criteria. Summaries written as user stories are taken apart. Template (CSV) shows the columns.