defining-done-and-acceptance-criteria

defining-done-and-acceptance-criteria is a skill for Claude Code from shennawardana23/skillme. It costs 131 tokens per session (2,410 once invoked), scanned A, original, Apache-2.0.

A guide for writing two kinds of checks for software work: acceptance criteria for one user story, and a Definition of Done for every deliverable.

In plain words
What is it for?
Writing Given/When/Then conditions, reviewing user stories, and checking whether a team's shared Definition of Done is complete.
Why use it?
It prevents teams from using “done” to mean different things. It separates whether a feature meets the user's need from whether it is ready to ship.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the skillme plugin — 137 skills, 2 commands shipped together

Good fit Writing Given/When/Then conditions, reviewing user stories, and checking whether a team's shared Definition of Done is complete.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/shennawardana23/skillme/defining-done-and-acceptance-criteria
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add shennawardana23/skillme --skill defining-done-and-acceptance-criteria
Clone the repo
git clone --depth 1 https://github.com/shennawardana23/skillme

Made for: Claude Code.

Or install skillme, the plugin that ships this one along with the rest of its 137 skills, 2 commands.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for defining-done-and-acceptance-criteria

README.md
[![agentmods](https://agentmods.dev/badge/skills/shennawardana23/skillme/defining-done-and-acceptance-criteria/github.svg)](https://agentmods.dev/skills/shennawardana23/skillme/defining-done-and-acceptance-criteria)
Your own site
<a href="https://agentmods.dev/skills/shennawardana23/skillme/defining-done-and-acceptance-criteria"><img src="https://agentmods.dev/badge/skills/shennawardana23/skillme/defining-done-and-acceptance-criteria/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for defining-done-and-acceptance-criteria

Your own site · 80×15
<a href="https://agentmods.dev/skills/shennawardana23/skillme/defining-done-and-acceptance-criteria"><img src="https://agentmods.dev/badge/skills/shennawardana23/skillme/defining-done-and-acceptance-criteria.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 131 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,410 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00131 $0.02410
Opus 5 $0.00066 $0.01205
Sonnet 5 $0.00026 $0.00482
Haiku 4.5 $0.00013 $0.00241

Measured 12d ago against content hash 344e07a82319, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

defining-done-and-acceptance-criteria scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/defining-done-and-acceptance-criteria/SKILL.md · 176 lines

How it starts

The opening of the file, as written. The whole thing — 176 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Defining Done and Acceptance Criteria

Two different tools solve two different problems. Confusing them is the single most common cause of "done" meaning different things to different people on the same team.

  • Definition of Done (DoD) — one checklist, owned by the whole Scrum team, applied to every Product Backlog Item and Increment. It answers "is this shippable, full stop" (code reviewed, tests passing, deployed to staging, docs updated, no known regressions). It rarely mentions the feature itself.
  • Acceptance Criteria (AC) — specific to one story, written during refinement, before or as work starts. It answers "does this particular story do the thing the user needs" (e.g. "search returns results in under 500ms for a 3-word query"). It says nothing about code review or deployment — that's the DoD's job.

A story can satisfy its acceptance criteria and still not be Done (it wasn't code-reviewed). A story can pass every DoD checklist item and still be wrong (it was reviewed, tested, and deployed — against the wrong requirement). Both checks are required; neither substitutes for the other.

Procedure: writing acceptance criteria for a story

  1. Restate the story as a user need, not a task list. If the story reads like a technical to-do ("add Redis cache to search endpoint"), push back and ask what observable behavior changes for the user — AC are written against behavior, not implementation.
  2. Apply INVEST to the story first (Bill Wake's heuristic for a good user story — AC quality is capped by story quality):
    • Independent — can be built and shipped without waiting on another unfinished story. If AC keep referencing "after story X is done," the stories should probably be split differently or merged.
    • Negotiable — a placeholder for a conversation, not a frozen spec. If the AC already dictate the database schema or the exact button copy, the story has quietly become a technical spec, not a story.
    • Valuable — delivers something a user or the business actually cares about, not just a technical stepping stone. "Refactor the auth module" has no user-facing AC because it isn't a user story.
    • Estimable — the team can size it. If AC are so vague the team can't agree on small/medium/large, the story needs more detail or a spike first.
    • Small — fits in a sprint, ideally a few days. If AC run past 5-6 Given/When/Then blocks, the story is probably two stories.
    • Testable — every AC has an observable pass/fail. If an AC can't be checked by a test or a manual QA step, rewrite it or cut it.
  3. Write each criterion as Given/When/Then (Gherkin-style, from Dan North's Behavior-Driven Development): Given the starting state, When the user or system does something, Then the observable outcome. This format forces precondition, action, and expected result to be separated instead of blurred into one vague sentence.
    Given a logged-in user with 0 saved searches
    When they submit a search query of 3+ characters
    Then results appear within 500ms
    And a "no results" state is shown if nothing matches
    
  4. Write the negative and edge cases explicitly, not just the happy path. "Search returns results" has no AC for empty query, query with only special characters, or the backend timing out — each of those is a separate Given/When/Then, and each is where bugs actually hide.
  5. Read every criterion back and ask "could two people disagree on pass/fail after reading this?" If yes, it's not actually testable — replace subjective language ("fast", "intuitive", "handles errors gracefully") with a number, a specific error message, or a named state.
  6. Check the criteria don't smuggle in implementation. "Then a Redis cache entry is created" is an implementation detail masquerading as an acceptance criterion — nobody outside engineering can verify it, and it locks in a technical approach the team may want to change later. Rewrite as the user-observable effect: "Then the second identical search returns in under 50ms."

Read the full file on GitHub · 176 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 176 lines · 131 tokens per session scan A 344e07a82319

Subscribe to this mod's changes

defining-done-and-acceptance-criteria is a skill published in the GitHub repository shennawardana23/skillme (2 stars, last pushed 15d ago), licensed Apache-2.0. It adds 131 tokens to every session and 2,410 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.