agentleFS
brittbritt/agent-skills/skills/writing-user-stories/SKILL.md

writing-user-stories

Skill11 starsChanged 8 days agoMITView on GitHub

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

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

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

    line 38
  2. Distinctive:

    Before finalizing a story, verify it is:

    line 51

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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 - You can say what done looks like; size it with the estimating-work-items skill
  • Small - 8 points or less on the powers-of-two scale; anything bigger is an epic to decompose
  • 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).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.