Symptom: Story is too big; team argues about scope.
Cause: Multiple goals or a compound 'I want A and B and C'.
Fix: Split by goal: one story per clear outcome. Use the INVEST panel to spot multi-goal wording.
Title, meta description, canonical, OG, Twitter, BreadcrumbList, FAQPage, WebApplication schema.
This tool is for Agile product user stories and acceptance criteria, not HR job stories or hiring. Generate "As a / I want / so that" stories with testable acceptance criteria in checklist and Given/When/Then (Gherkin) formats, plus Definition of Done and analytics suggestions.
No login. Autosave in browser. Shareable URL.
No login. Autosave in browser.
# user can
## User story
As a user, I want , so that .
## Acceptance criteria (checklist)
### Happy path
- [ ] User can complete the primary flow and see the expected outcome.
- [ ] Success state is clearly visible (confirmation, state change, or feedback).
- [ ] Data is persisted correctly after the action.
- [ ] User can repeat the action without errors.
- [ ] Relevant validations pass and allow progression.
### Negative scenarios
- [ ] Invalid or missing required input shows a clear error message.
- [ ] User cannot proceed until the error is corrected or acknowledged.
- [ ] Error message does not expose sensitive or technical details.
- [ ] Permission or role restriction shows an appropriate message.
- [ ] Duplicate or conflicting action is handled (e.g. idempotent or clear message).
### Edge cases
- [ ] Empty or zero state is handled (e.g. no data, first-time user).
- [ ] Boundary values (min/max, limits) are validated and behave correctly.
- [ ] Concurrent or rapid repeated actions do not corrupt state.
- [ ] Session or context expiry is handled gracefully.
- [ ] Localization or format (date, number) is respected where applicable.
## Gherkin scenarios
```gherkin
Feature: user can
Scenario: Happy path: user completes main flow
Given the user is on the relevant context
When the user performs the main action with valid inputs
Then the outcome is visible and persisted
And the user receives clear confirmation
Scenario: Negative: invalid input shows error
Given the user is on the relevant context
When the user submits invalid or incomplete input
Then an error message is displayed
And the user can correct and retry
Scenario: Edge case: empty or first-time state
Given the user has no prior data or is in empty state
When the user accesses the feature
Then an appropriate empty state or guidance is shown
And the user can still complete the flow or understand next steps
Scenario: Negative: duplicate or conflicting action
Given the user has already completed the action once
When the user repeats the same action
Then the system handles it (idempotent or clear message)
And data remains consistent
```
## Definition of Done
- [ ] Acceptance criteria met
- [ ] Analytics events implemented
- [ ] Error states handled
- [ ] Accessibility checked (basic)
- [ ] Documentation or release notes updated
## Non-functional considerations
- Performance: key actions complete within acceptable response time.
- Offline or empty states: clear messaging when data is missing or unavailable.
- UX clarity: labels and errors are understandable by the target user.
- Accessibility: basic keyboard and screen reader support for the main flow.
## Analytics instrumentation
- story_start: when user begins the flow
- story_complete: when user successfully completes the flow
- story_error: when validation or system error occurs (with error_type property)INVEST: Independent (one story per goal), Negotiable (details in conversation), Valuable (clear benefit), Estimable (team can size it), Small (completable in a sprint), Testable (observable acceptance criteria). The generator enforces one goal per story, a clear benefit, and testable criteria in three groups: happy path, negative, and edge cases.
Checklist format groups criteria by happy path, negative scenarios, and edge cases. Use it for backlog grooming and stakeholder review. Given/When/Then (Gherkin) is for BDD and test automation: each scenario is executable. Use checklist for alignment; use Gherkin when your team writes automated tests from scenarios or uses Cucumber-style tools.
Keep the goal in outcome language: what the user achieves, not which screen or button. Avoid solution leakage (e.g. dashboard, button, API). The quality panel flags these. Write "I want to see my progress at a glance" rather than "I want a progress dashboard". Benefit should be specific: "so that I can report by region in under 2 minutes" not "so that it's better".
Look for "and" or multiple verbs in the goal; each distinct outcome can be one story. The INVEST panel suggests splitting when multiple goals are detected. Practical pattern: one user action, one observable outcome, one benefit. Aim for 2–4 smaller stories that each pass INVEST and have their own acceptance criteria.
Symptom: Story is too big; team argues about scope.
Cause: Multiple goals or a compound 'I want A and B and C'.
Fix: Split by goal: one story per clear outcome. Use the INVEST panel to spot multi-goal wording.
Symptom: Benefit is vague ('so that it's better').
Cause: No concrete outcome; benefit could apply to any story.
Fix: Replace with a specific outcome: e.g. 'so that I can report by region in under 2 minutes'.
Symptom: Goal describes the solution, not the need.
Cause: Solution leakage: 'I want a dashboard', 'I want a button to X'.
Fix: Focus on outcome: 'I want to see my progress at a glance' rather than 'I want a progress dashboard'.
Symptom: Acceptance criteria are not testable.
Cause: Criteria are vague or describe implementation.
Fix: Write binary, observable criteria: 'User sees confirmation within 2s' not 'System should be fast'.
Symptom: Only happy path criteria; no negative or edge cases.
Cause: Skipping error and boundary conditions.
Fix: Add at least one negative (invalid input, permission denied) and one edge (empty state, limit) scenario.
Symptom: Gherkin scenarios are too long or implementation-heavy.
Cause: Steps mention UI or technical detail.
Fix: Keep steps at user/outcome level: Given/When/Then with observable results; 3–5 steps per scenario.
Symptom: B2B story doesn't mention roles or permissions.
Cause: Treating B2B like B2C; role is optional.
Fix: Set user role and add a scenario for permission or role restriction.
Symptom: DoD is ignored or never updated.
Cause: Generic DoD not tailored to the story.
Fix: Use the default DoD as a baseline; customize in settings (local). Tie analytics events to the story's success metric.
This tool is for Agile product user stories and acceptance criteria (software product development), not HR job stories or hiring. You get 'As a / I want / so that' stories plus checklist and Gherkin acceptance criteria, Definition of Done, and analytics suggestions.
INVEST is a checklist for good user stories: Independent, Negotiable, Valuable, Estimable, Small, Testable. The quality panel flags violations: multiple goals (not small/independent), missing or vague benefit (not valuable), and suggests splits. It also checks for solution leakage and criteria coverage.
Checklist format is great for backlogs and quick review: bullet points grouped by happy path, negative, and edge. Given/When/Then (Gherkin) is for BDD and test automation: each scenario is executable. Use checklist for stakeholder alignment; use Gherkin when your team writes automated tests from scenarios.
Solution leakage means the story describes the solution (e.g. button, dashboard, screen, API) instead of the user need. The tool flags words like these. Fix by rewriting the goal around the outcome: e.g. 'I want to see my progress at a glance' instead of 'I want a progress dashboard'.
Look for 'and' or multiple verbs in the goal; each distinct outcome can be one story. The INVEST panel suggests splitting when multiple goals are detected. Aim for 2–4 smaller stories that each deliver one testable outcome. Smaller stories are easier to estimate and ship.
Batch mode lets you paste 5–30 lines (or upload CSV) with at least role, goal, benefit (and optional context). The tool generates a full story pack for each row. Export CSV for backlog import or use the table to expand each story. Handy for backlog refinement and sprint planning when you have many stories to draft.
Yes. The default DoD (acceptance criteria met, analytics implemented, error states, accessibility, docs) is stored in your browser. You can override it in settings so generated stories use your team's DoD checklist. Changes apply only locally and are used for the next story you generate.
Copy (full story pack to clipboard), Markdown (sections A–G), JSON (inputs, outputs, quality results), CSV (backlog-ready columns: story_id, title, role, goal, benefit, checklist, gherkin, dod, nfr, analytics), and Gherkin (.feature file for BDD). Use CSV for Jira or similar; use Gherkin for BDD test automation.
B2B: user role is required; output includes a scenario for permissions/roles. Non-functional considerations focus on audit, role permissions, data retention. B2C: role can be 'user'; NFRs focus on performance, offline/empty states, UX clarity. Analytics suggestions align to the audience and success metrics.
Yes. The tool is free, runs in your browser, and requires no login. You can generate single or batch stories, load 3 examples, run quality checks, and export Markdown/JSON/CSV/Gherkin. Autosave uses local storage; we do not store your data. No sign-up or payment required.
Courses, blog, and glossary for product and discovery skills.
Use CraftUp tools and courses to go from user stories to validation and execution.
Last updated: 2026-03-05