Agent skill
user-story-template
Guide writing well-formed user stories with acceptance criteria following best practices
Install this agent skill to your Project
npx add-skill https://github.com/britt/claude-code-skills/tree/main/skills/user-story-template
SKILL.md
User Story Template Skill
This skill helps create well-formed user stories that follow product management best practices.
When to Use
Activate this skill when:
- Creating new features or requirements
- Writing GitHub issues for product work
- Planning sprints or releases
- Documenting user needs
User Story Format
Every user story should follow this structure:
Title
Clear, concise feature name (what, not how)
User Story Statement
As a [type of user]
I want [an action or feature]
So that [benefit or value]
Examples:
- ✅ As a project manager, I want to view all active issues in one dashboard, so that I can quickly assess project status
- ✅ As a developer, I want to filter issues by label, so that I can focus on my assigned work
- ❌ As a user, I want a button (too vague, doesn't explain why)
Acceptance Criteria
Clear, testable conditions that must be met. Use "Given-When-Then" format:
Given [initial context]
When [action occurs]
Then [expected outcome]
Example:
Given I am viewing the project dashboard
When I click the "Filter" button
Then I see a dropdown with all available labels
And I can select multiple labels to filter by
And the issue list updates to show only matching issues
Additional Sections (Optional)
Dependencies:
- What must be completed first?
- What other systems/features does this rely on?
Open Questions:
- What needs clarification?
- What decisions need to be made?
Technical Notes:
- Implementation guidance (if known)
- Performance considerations
- Security concerns
Design Assets:
- Links to mockups, wireframes, or designs
- Screenshots or examples
Quality Checklist
Before finalizing a user story, verify:
- Independent - Can be developed separately from other stories
- Negotiable - Details can be discussed and refined
- Valuable - Delivers clear value to users or business
- Estimable - Team can estimate effort reasonably
- Small - Can be completed in one sprint (typically)
- Testable - Success criteria are clear and verifiable
Common Pitfalls to Avoid
Too Technical
❌ "Add a REST endpoint at /api/v2/users with authentication" ✅ "As an admin, I want to manage user accounts via API, so that I can automate user provisioning"
Too Vague
❌ "Make the dashboard better" ✅ "As a manager, I want to see project velocity trends, so that I can forecast delivery dates"
Missing the "Why"
❌ "As a user, I want dark mode" ✅ "As a user, I want dark mode, so that I can reduce eye strain during evening work sessions"
No Acceptance Criteria
Stories without clear acceptance criteria lead to:
- Scope creep
- Unclear completion
- Misaligned expectations
- Difficult QA
Workflow Integration
When creating user stories:
- Check for prior art - Search existing issues and documents for similar features
- Write the story - Follow the template above
- Add to project board - Link to appropriate milestone/epic
- Tag appropriately - Use labels like 'feature', 'enhancement', 'user-story'
- Save insights - Record decisions and rationale for future reference
Example: Complete User Story
Title: Multi-Project Dashboard View
User Story: As a product manager overseeing multiple projects I want to view aggregated metrics across all my projects in one dashboard So that I can identify bottlenecks and allocate resources effectively
Acceptance Criteria:
Given I manage 3 active projects When I navigate to the "Overview" dashboard Then I see a summary card for each project showing:
- Project name and status
- Open vs closed issues count
- Recent activity (last 7 days)
- Team members assigned
And I can click any project card to drill into details And the dashboard loads in under 2 seconds And data refreshes every 5 minutes automatically
Dependencies:
- Project metadata API must support batch queries
- User must have "manager" role on at least one project
Open Questions:
- Should we limit to 10 projects max, or paginate?
- Do we show archived projects by default?
Technical Notes:
- Consider caching strategy for performance
- Use existing project card component for consistency
Design Assets:
- See Figma: [link to dashboard mockup]
Didn't find tool you were looking for?