Agent Skills: Writing User Stories

Use when an agent needs to write user stories for a project

UncategorizedID: britt/claude-code-skills/writing-user-stories

Install this agent skill to your local

pnpm dlx add-skill https://github.com/britt/claude-code-skills/tree/HEAD/skills/writing-user-stories

Skill Files

Browse the full folder contents for writing-user-stories.

Download Skill

Loading file tree…

skills/writing-user-stories/SKILL.md

Skill Metadata

Name
writing-user-stories
Description
Use when asked to write user stories, define requirements, break a feature into stories, or draft product/feature issues - produces stories in "As a [persona], I want [action], so that [benefit]" format with Given-When-Then acceptance criteria and an INVEST quality checklist

Writing User Stories

Overview

Core principle: User stories are a formulaic way of expressing user requirements. Every story identifies the persona of the actor, what they want to do, and the benefit they hope to gain.

When to Use

  • You are asked to write a user story
  • You are writing GitHub issues for product work or feature requirements
  • You are asked to plan a feature and express its requirements as stories

Not for: full product specifications — use the writing-product-specs skill instead.

Story Format

As a [persona]
I want [action or feature]
So that [benefit or value]

Example:

As a non-technical stakeholder
I want to understand what changed in a release without reading code diffs
So that I can communicate updates to customers effectively

Acceptance Criteria

Add clear, testable conditions in Given-When-Then format:

Given I am viewing the project dashboard
When I click the "Filter" button
Then I see a dropdown with all available labels
And the issue list updates to show only matching issues

Stories without acceptance criteria lead to scope creep, unclear completion, and misaligned expectations.

Quality Checklist (INVEST)

Before finalizing a story, verify it is:

  • [ ] Independent - Can be developed separately from other stories
  • [ ] Negotiable - Details can be discussed and refined
  • [ ] Valuable - Delivers clear value to users or business
  • [ ] Estimable - Effort can be estimated reasonably
  • [ ] Small - Can be completed in one sprint (typically)
  • [ ] Testable - Success criteria are clear and verifiable

Common Pitfalls

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"

Optional Sections

For stories destined to become GitHub issues, add sections as needed: Dependencies (what must complete first), Open Questions (decisions still needed), Technical Notes (implementation guidance), and Design Assets (mockups, wireframes).