user-story-writer
Skill12 starsChanged 5 months agoMITView on GitHub
Writes high-quality agile user stories that satisfy the INVEST criteria, with clear role/goal/benefit phrasing and testable Gherkin (Given/When/Then) acceptance criteria, and splits epics into thin vertical slices. Use this skill when the user asks to "write a user story", "create acceptance criteria", "break this epic into stories", "turn this requirement into a backlog item", "write Gherkin scenarios", or is grooming/refining a product backlog.
We split this skill into the rules it gives an agent
6 rules. 0 are common, 5 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Keep it to one sentence and one outcome.
- Very specific: line 22
Split if too big: Use the splitting patterns in references/splitting-patterns.md (workflow steps, business rules, happy/error path, data …
- Distinctive: line 68
Write from the user's perspective, not the system's.
- Distinctive: line 71
Always include at least one negative/edge scenario.
- Distinctive: line 72
Use neutral, security-aware wording for auth flows (no account enumeration).
- Distinctive: line 73
Keep the "so that" honest — if you can't name a benefit, question the story.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
User Story Writer
Overview
Turn a feature idea, requirement, or epic into well-formed user stories that a team can estimate, build, and verify. Every story states who wants what and why, passes the INVEST test, and ships with testable acceptance criteria.
Keywords: user story, agile, scrum, backlog, INVEST, acceptance criteria, Gherkin, given when then, story splitting, epic, vertical slice, definition of done, product backlog, refinement, grooming.
Workflow
- Capture the intent. Identify the user/persona, the goal, and the underlying benefit. If the benefit is unclear, ask "so that what?" until you reach real value.
- Write the story statement using the canonical form:
As a <role>, I want <capability> so that <benefit>.Keep it to one sentence and one outcome. - Apply INVEST (see
references/invest-checklist.md). If the story fails any letter — especially Small and Testable — split or sharpen it. - Split if too big. Use the splitting patterns in
references/splitting-patterns.md(workflow steps, business rules, happy/error path, data variations, CRUD operations). Each slice must be a thin vertical slice that delivers value end-to-end, not a horizontal layer. - Write acceptance criteria in Gherkin: one
Scenarioper rule, covering the happy path, key edge cases, and at least one failure path. Use the template intemplates/story-template.md. - Add a Definition of Done checklist items only if they are story-specific (e.g. "feature flag added", "analytics event fired"). Leave generic DoD to the team.
- Self-review against
references/invest-checklist.mdand confirm every acceptance criterion is independently verifiable.
Decision Framework
| Symptom | Action |
| Story has "and" in the goal | Split into separate stories |
| Can't estimate it | Too big or too vague — split or clarify |
| No clear user | It may be a task/enabler, not a story — label it as such |
| Acceptance criteria describe UI pixels | Re-focus on observable behavior, not implementation |
| "As a user" (generic) | Name the real persona; "user" hides differing needs |
Worked Example
Epic: "Users can reset their password."
Story:
As a registered customer, I want to request a password reset link by email so that I can regain access when I've forgotten my password.
Acceptance Criteria:
Scenario: Request reset with a known email
Given a registered account exists for "ana@example.com"
When she submits the reset form with "ana@example.com"
Then a reset email with a single-use link is sent within 1 minute
And the page shows a neutral "If the email exists, we've sent a link" message
Scenario: Request reset with an unknown email
Given no account exists for "ghost@example.com"
When the reset form is submitted with "ghost@example.com"
Then no email is sent
And the same neutral confirmation message is shown (no account enumeration)
Scenario: Reset link expires
Given a reset link issued more than 60 minutes ago
When the user opens it
Then they see "This link has expired" and can request a new oneSee examples/checkout-epic-split.md for a full epic-to-stories breakdown.
Best Practices
- Write from the user's perspective, not the system's.
- One story = one outcome that fits comfortably in a sprint.
- Acceptance criteria describe observable behavior, not implementation.
- Always include at least one negative/edge scenario.
- Use neutral, security-aware wording for auth flows (no account enumeration).
- Keep the "so that" honest — if you can't name a benefit, question the story.
Common Pitfalls
- Horizontal slices ("build the database table") that deliver no user value alone.
- Generic personas ("as a user") masking conflicting needs.
- Untestable criteria ("it should be fast" — quantify it).
- Solutioning in the story ("add a Redis cache") instead of stating the need.
- Giant stories disguised by vague language; if you can't test it, you can't size it.
Other versions7 projects use a version of this.
Word for word · 2
- jaskirat1616/grok-skills★ 22100% same
- JayRHa/AgentSkills★ 12100% same
Edited · 0
None found.
Wrote their own version · 5
- hamzafarooq/claude-code-starter★ 145same name
- HanksChen0110/skills★ 2same name
- Ethical-AI-Syndicate/skills★ 1same name
- shaheenhaque4/claude-skills★ 0same name
- tolgademirli/user-story-writer★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository75 other files it gives its agents.
- 0-templateSkill
- ab-test-analyzerSkill
- adr-authorSkill
- api-designerSkill
- api-docs-writerSkill
- aws-cost-optimizerSkill
- bash-script-hardeningSkill
- blog-post-writerSkill
- book-summarizerSkill
- changelog-keeperSkill
- chart-chooserSkill
- code-reviewerSkill
- competitive-analysisSkill
- concept-explainerSkill
- cover-letter-writerSkill
- cron-schedulerSkill
- data-pipeline-architectSkill
- debug-detectiveSkill
- decision-matrixSkill
- dependency-upgraderSkill
- dockerfile-proSkill
- email-composerSkill
- error-handling-patternsSkill
- event-plannerSkill
- flashcard-generatorSkill
- gdpr-data-mapperSkill
- gift-advisorSkill
- github-actions-builderSkill
- git-workflowSkill
- habit-builderSkill
- incident-postmortemSkill
- interview-prepSkill
- job-description-writerSkill
- json-schema-authorSkill
- kubernetes-manifest-authorSkill
- language-tutorSkill
- meal-plan-builderSkill
- meeting-summarizerSkill
- mermaid-diagram-builderSkill
- nginx-config-proSkill
- observability-setupSkill
- okr-writerSkill
- pandas-data-cleaningSkill
- people-dataSkill
- performance-profilerSkill
- personal-budget-plannerSkill
- presentation-builderSkill
- project-plannerSkill
- prompt-engineerSkill
- proofreaderSkill
- public-speaking-coachSkill
- rag-pipeline-designerSkill
- readme-generatorSkill
- refactoring-guideSkill
- regex-architectSkill
- release-notes-writerSkill
- resume-writerSkill
- salary-negotiatorSkill
- secrets-managerSkill
- secure-code-reviewSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

