/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.
$ npx -y skills add b33eep/claude-code-setup --skill user-stories --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/user-stories
Context preview
The summary Claude sees to decide when to auto-load this skill.
Write INVEST-compliant user stories with Given-When-Then acceptance criteria. Use when writing user stories, creating acceptance criteria, or during /design Step 4.
SKILL.md
user-stories.SKILL.mdname: 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
Read more
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
Showing the first part of this file.
Persistent memory for Claude Code via Markdown files. 📖 Read the Documentation for detailed guides, tutorials, and reference.
Repo: b33eep/claude-code-setup
Other skills on claude-code-setup.
- /create-slidev-presentation
Build or edit Slidev (sli.dev) presentations for tech talks, workshops, conference sessions, and live-coding demos. Use when the user asks to create slides, a deck, a presentation, a workshop deck, a conference talk, or edit an existing slides.md.
Open skill - /skill-creator
Guide users through creating, reviewing, and fixing custom skills for Claude — both command skills (invoked via /slash) and context skills (auto-loaded by tech stack). Use when the user asks to create a skill, build a skill, make a new slash command skill, add a coding standards
Open skill - /standards-gradle
Gradle build tool standards focusing on Kotlin DSL. Covers project configuration, dependency management, and custom plugin/task development with Gradle 9 LTS.
Open skill - /standards-java
Java coding standards for enterprise applications. Includes naming conventions, modern Java features, design patterns, and recommended tooling.
Open skill - /standards-javascript
This skill provides JavaScript coding standards and is automatically loaded for JavaScript projects. It includes modern ES2025 patterns, async handling, and recommended tooling.
Open skill - /standards-kotlin
Kotlin coding standards for modern applications. Includes naming conventions, coroutines, flows, modern Kotlin 2.3.0 features, and recommended tooling.
Open skill

