deliver-user-stories — Claude Code skill: user stories
Turns a PRD or feature description into user stories in persona-action-benefit form, with Given/When/Then acceptance criteria and an INVEST check.
npx skills add product-on-purpose/pm-skills --skill deliver-user-stories -a claude-codeWhat deliver-user-stories does
The skill takes product requirements or a feature description and breaks them into separate stories. It starts with context: the goal of the feature, who it is for, where the scope ends. Then it names the personas — real roles, not a generic "user", because the same feature usually produces different stories for different roles.
From there the feature is split by user goal, and each story is written as "As a… I want… so that…". Acceptance criteria come in Given/When/Then form, and the finished stories are checked against INVEST: independent, valuable, estimable, small enough for one sprint, testable. Each story in the output carries a header, the statement itself, background, criteria, design and technical notes, dependencies, and anything left out of scope. The structure lives in references/TEMPLATE.md, with a worked example in references/EXAMPLE.md.
The skill does not replace a PRD. If the feature isn't specified yet, there is nothing for the stories to trace back to, so write the requirements first. For deeper Given/When/Then coverage of a single story there is deliver-acceptance-criteria, and for boundary and failure scenarios across the feature there is deliver-edge-cases. Worth installing once requirements are settled and you need a backlog for sprint planning.
What it helps with
- break an approved PRD into sprint-ready stories
- write feature requirements engineers can act on
- draft tickets with Given/When/Then acceptance criteria
- check a story against INVEST before estimation
- split one feature across different user roles
Example prompts for the agent
- break this feature into user stories for sprint planning
- write stories from the PRD in
docs/prd.mdwith acceptance criteria - build a backlog for this feature and check each story against INVEST
How to install deliver-user-stories
1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill deliver-user-stories -a claude-code2Manually: put the files in place
~/.claude/skills/deliver-user-stories/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/deliver-user-stories/
1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill deliver-user-stories -a codex2Manually: put the files in place
.agents/skills/deliver-user-stories/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill deliver-user-stories -a cursor2Manually: put the files in place
.cursor/skills/deliver-user-stories/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install product-on-purpose/pm-skills deliver-user-stories2Manually: put the files in place
.github/skills/deliver-user-stories/SKILL.md1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill deliver-user-stories -a gemini-cli2Platform CLI
gemini skills install https://github.com/product-on-purpose/pm-skills --path skills/deliver-user-storiesManually: put the files in place
.devin/skills/deliver-user-stories/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill deliver-user-stories -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about deliver-user-stories
How do I install deliver-user-stories in Claude?
Run npx skills add product-on-purpose/pm-skills --skill deliver-user-stories -a claude-code. The skill file then sits at ~/.claude/skills/deliver-user-stories/SKILL.md.
What does deliver-user-stories do?
It converts requirements or a feature description into user stories in "As a… I want… so that…" form. Each story gets acceptance criteria, background, dependencies and open questions.
How is it different from deliver-acceptance-criteria and deliver-edge-cases?
This skill writes the stories themselves. deliver-acceptance-criteria goes deeper on Given/When/Then for one story, and deliver-edge-cases collects boundary and failure scenarios across the whole feature.
Source text
SKILL.md · Apache-2.0
--- name: deliver-user-stories description: Generates user stories in the standard persona, action, benefit story format from product requirements or feature descriptions. Use when breaking a feature into stories for sprint planning, writing tickets, or communicating scope to engineering. For testable Given/When/Then acceptance criteria on a story, use deliver-acceptance-criteria; for boundary and failure scenarios, use deliver-edge-cases. license: Apache-2.0 metadata: phase: deliver version: "2.1.0" updated: 2026-06-10 category: specification frameworks: [triple-diamond, lean-startup, design-thinking] author: product-on-purpose --- <!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 --> # User Stories User stories are concise descriptions of functionality from the user's perspective. They capture who needs something, what they need, and why - without prescribing how to build it. Good user stories enable teams to break large features into estimable, deliverable increments while maintaining focus on user value. ## When to Use - After PRD approval, when breaking down features for implementation - During sprint planning to create actionable work items - When writing tickets for engineering teams - When communicating requirements to stakeholders in accessible terms - When prioritizing a backlog based on user value ## When NOT to Use - You need deeper, QA-ready Given/When/Then coverage for a single story or slice -> use `deliver-acceptance-criteria` - You need the feature-wide catalog of boundary conditions and failure scenarios -> use `deliver-edge-cases` - The feature itself is not yet specified -> use `deliver-prd` first; stories should trace back to documented requirements - You want refinement-session outcomes (estimates, scope decisions, open questions) -> use `iterate-refinement-notes` ## Instructions When asked to create user stories, follow these steps: 1. **Understand the Feature Context** Review the PRD or feature description. Understand the overall goal, target users, and scope boundaries. User stories should trace back to documented requirements. 2. **Identify User Personas** Determine which users interact with this feature. Each story should be written for a specific persona, not generic "users." Different personas may need different stories for the same feature. 3. **Break Down by User Goal** Decompose the feature into distinct user goals. Each story should deliver a complete, valuable capability - something the user can actually do when the story is done. 4. **Write Story Statements** Use the format: "As a [persona], I want [action] so that [benefit]." The benefit clause is critical - it explains why this matters and helps prioritize. 5. **Define Acceptance Criteria** Write specific, testable criteria using Given/When/Then format. Acceptance criteria define "done" - if all criteria pass, the story is complete. 6. **Apply INVEST Criteria** Validate each story against INVEST: Independent, Negotiable, Valuable, Estimable, Small, Testable. Revise stories that don't meet these criteria. 7. **Add Context and Notes** Include relevant design references, technical considerations, and dependencies. These help implementers understand the full picture. ## Output Format Use the template in `references/TEMPLATE.md` to structure the output. A complete output carries, per story: Story Header; User Story Statement; Context & Background; Acceptance Criteria; Design Notes; Technical Notes; Dependencies; Out of Scope; and Open Questions where any remain. Multi-story documents nest these sections under one heading per story, as the example shows. ## Quality Checklist Before finalizing, verify: - [ ] Each story follows "As a... I want... so that..." format - [ ] Stories are independent (can be built in any order) - [ ] Acceptance criteria use Given/When/Then format - [ ] Each criterion is testable (someone can verify pass/fail) - [ ] Stories are small enough to complete in one sprint - [ ] No implementation details in the story statement - [ ] Benefit clause explains why this matters to the user ## Examples See `references/EXAMPLE.md` for a completed example.
© product-on-purpose · Apache-2.0 · product-on-purpose/pm-skills