user-stories
Write INVEST-compliant user stories with Given-When-Then acceptance criteria. Use when writing user stories, creating acceptance criteria, or during /design Step 4.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install b33eep-claude-code-setup-user-stories
Repository
Skill path: skills/user-stories
Write INVEST-compliant user stories with Given-When-Then acceptance criteria. Use when writing user stories, creating acceptance criteria, or during /design Step 4.
Open repositoryBest for
Primary workflow: Write Technical Docs.
Technical facets: Full Stack, Tech Writer, Designer.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: b33eep.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install user-stories into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/b33eep/claude-code-setup before adding user-stories to shared team environments
- Use user-stories for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
--- name: user-stories description: Write INVEST-compliant user stories with Given-When-Then acceptance criteria. Use when writing user stories, creating acceptance criteria, or during /design Step 4. type: command source: Adapted from https://github.com/alirezarezvani/claude-skills/tree/main/product-team/agile-product-owner by alirezarezvani (MIT License) --- # User Stories Write high-quality, INVEST-compliant user stories with testable acceptance criteria. --- ## User Story Template ``` As a [persona], I want to [action/capability], So that [benefit/value]. ``` **Example:** ``` As a marketing manager, I want to export campaign reports to PDF, So that I can share results with stakeholders who don't have system access. ``` --- ## Story Types | Type | Template | Example | |------|----------|---------| | Feature | As a [persona], I want to [action] so that [benefit] | As a user, I want to filter search results so that I find items faster | | Improvement | As a [persona], I need [capability] to [goal] | As a user, I need faster page loads to complete tasks without frustration | | Bug Fix | As a [persona], I expect [behavior] when [condition] | As a user, I expect my cart to persist when I refresh the page | | Enabler | As a developer, I need to [technical task] to enable [capability] | As a developer, I need to implement caching to enable instant search | --- ## Persona Reference | Persona | Typical Needs | Context | |---------|--------------|---------| | End User | Efficiency, simplicity, reliability | Daily feature usage | | Administrator | Control, visibility, security | System management | | Power User | Automation, customization, shortcuts | Expert workflows | | New User | Guidance, learning, safety | Onboarding | Adapt personas to your project. Use specific names when possible (e.g., "store owner" instead of "end user"). --- ## INVEST Criteria Validate every story before adding it to the backlog: | Criterion | Question | Pass If... | |-----------|----------|------------| | **I**ndependent | Can this be developed without other uncommitted stories? | No blocking dependencies | | **N**egotiable | Is the implementation flexible? | Multiple approaches possible | | **V**aluable | Does this deliver user or business value? | Clear benefit in "so that" | | **E**stimable | Can the team estimate this? | Understood well enough to size | | **S**mall | Can this complete in one iteration? | Reasonably scoped | | **T**estable | Can we verify this is done? | Clear acceptance criteria | --- ## Acceptance Criteria ### Given-When-Then Template ``` Given [precondition/context], When [action/trigger], Then [expected outcome]. ``` **Examples:** ``` Given the user is logged in with valid credentials, When they click the "Export" button, Then a PDF download starts within 2 seconds. Given the user has entered an invalid email format, When they submit the registration form, Then an inline error message displays "Please enter a valid email address." Given the shopping cart contains items, When the user refreshes the browser, Then the cart contents remain unchanged. ``` ### AC Checklist Each story should include criteria for applicable categories: | Category | Example | |----------|---------| | Happy Path | Given valid input, When submitted, Then success message displayed | | Validation | Should reject input when required field is empty | | Error Handling | Must show user-friendly message when API fails | | Performance | Should complete operation within 2 seconds | | Accessibility | Must be navigable via keyboard only | Not every category applies to every story. Use judgment. ### Minimum Criteria by Story Size | Size | Minimum AC Count | |------|------------------| | Small (trivial) | 2-3 criteria | | Medium | 4-6 criteria | | Large | 5-8 criteria | | Too large | Split the story | --- ## INVEST Failure Patterns | Criterion | Red Flag | Fix | |-----------|----------|-----| | Independent | "After story X is done..." | Combine stories or resequence | | Negotiable | Specific implementation in story | Focus on outcome, not solution | | Valuable | No "so that" clause | Add benefit statement | | Estimable | Team says "no idea" | Spike first, then story | | Small | Too large to finish in one iteration | Split into smaller stories | | Testable | "System should be better" | Add measurable criteria | --- ## Story Splitting When a story is too large, split using one of these techniques: | Technique | Example | |-----------|---------| | By workflow step | "Create order" -> "Add items" + "Apply discount" + "Submit order" | | By persona | "User dashboard" -> "Admin dashboard" + "Member dashboard" | | By data type | "Import data" -> "Import CSV" + "Import Excel" | | By operation | "Manage users" -> "Add user" + "Edit user" + "Delete user" | | Happy path first | "Full feature" -> "Basic flow" + "Error handling" + "Edge cases" | --- ## Common Antipatterns ### Story Antipatterns | Antipattern | Example | Fix | |-------------|---------|-----| | Solution story | "Implement React component" | "Display user profile information" | | Compound story | "Create, edit, and delete users" | Split into three stories | | Missing persona | "The system will..." | "As an admin, I want to..." | | No benefit | "I want to see a button" | Add "so that [benefit]" | | Too vague | "Improve performance" | "Reduce page load to <2 seconds" | | Technical jargon | "Implement Redis caching" | "Enable instant search results" | ### Acceptance Criteria Antipatterns | Antipattern | Example | Fix | |-------------|---------|-----| | Too vague | "Works correctly" | Specific Given-When-Then | | Implementation details | "Use PostgreSQL query" | Focus on outcome | | Missing unhappy path | Only success scenario | Add error cases | | Untestable | "User is happy" | Measurable behavior | | Too many | 15+ criteria | Split the story | --- ## References - Based on [agile-product-owner](https://github.com/alirezarezvani/claude-skills/tree/main/product-team/agile-product-owner) by [alirezarezvani](https://github.com/alirezarezvani) (MIT License) - Adapted and reduced to user story focus only (no sprint planning, velocity tracking, or epic breakdown)