Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when capturing product requirements or backlog items: phrase each need as 'As a <specific role>, I want <capability>, so that <benefit>' with acceptance criteria as a separate list — which cheaper models do not do by default. Do NOT use for sprint estimation or story-point sizing, roadmap planning, or writing end-user documentation.
.claude/skills/user-story-format/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 100% | 2 |
| Model | Lift | Δ tokens | Δ turns | Cases | Verified |
|---|---|---|---|---|---|
| gemini-3.6-flashbest | +36% | +71% | 0% | 22 | 52d ago |
| gemini-3.5-flash | pending re-run | — | |||
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-07 | ✗→✓ | ▲ Improved | — | — |
| case-09 | ✗→✓ | ▲ Improved | — | — |
| case-14 | ✗→✓ | ▲ Improved | — | — |
| case-05 | ✗→✓ | ▲ Improved | — | — |
Enforces the three-clause agile story template on every requirement or backlog item you write: As a <specific role>, I want <capability>, so that <benefit>, with acceptance criteria attached as a separate list and one story per need. Apply when turning needs into backlog items; not when estimating effort, planning a roadmap, or writing end-user documentation.
<capability>, so that <benefit>. The benefit clause starts with "so that" — not "because", not a bare "to", and never omitted. A story missing any clause is incomplete.
"an on-call operator", "a first-year student" — never a bare "user" or "customer" when a sharper role exists. The role is a person with a goal, not a team, a company, or the system.
screens, buttons, dropdowns, tables, endpoints, or vendor names. "I want to receive my receipts by email" — never "I want a Settings-page toggle that writes to the receipts table".
matters — the value gained or the pain removed. If it merely restates the want ("...so that I can do it"), dig for the underlying reason and write that instead.
Acceptance criteria:block underneath — short, testable statements, one per line. They are never packed into the story sentence itself.
two stories, each independently deliverable and testable. Split on the "and" whenever the two halves could ship separately.
Requirement prose (the base's default) on top; the conforming story below.
A library's online renewal request:
BEFORE The system shall allow renewal of borrowed items via the catalog,
with a renew button on the loans page.
AFTER As a library member with items on loan, I want to renew my loans
online, so that I avoid late fees when I cannot visit in person.
Acceptance criteria:
- A loan within its renewal limit can be renewed before its due date.
- The new due date is shown immediately after renewal.
- An item already reserved by another member cannot be renewed.A billing feature written as a solution:
BEFORE Add a PDF export dropdown to the billing page (reads the invoice table).
AFTER As a freelance designer, I want to download each of my invoices as a
PDF, so that I can attach clean records to my tax filing.A compound ask, split into two stories:
BEFORE As a co-op member, I want to reserve a tool and get reminded to
return it, so that borrowing runs smoothly.
AFTER As a co-op member, I want to reserve a tool ahead of pickup,
so that it is available when I arrive.
As a co-op member, I want a reminder before my return date,
so that I do not keep a tool that others are waiting on.A generic role, sharpened:
BEFORE As a user, I want delay alerts, so that I know about delays.
AFTER As a daily rail commuter, I want an alert when my usual line is
delayed, so that I can leave earlier or reroute before I am stuck...." — the role is whoever feels the benefit, even for internal tooling.
persona; if the criteria are identical, name the primary persona rather than "user".
digest"), not the grievance.
own; attach them as tasks under the story they unblock, or name the internal role who benefits.
As a <specific role>, I want <capability>, so that <benefit>.Acceptance criteria: list attached under every story.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-19 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.5-flash | verified | 7/10/2026 | +48% |
Other measured skills in the registry, with their headline benchmark lift.