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.
npx skills add shennawardana23/skillme --skill defining-done-and-acceptance-criteriagit clone --depth 1 https://github.com/shennawardana23/skillmeWrote 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.
[](https://agentmods.dev/skills/shennawardana23/skillme/defining-done-and-acceptance-criteria)<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.
<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>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.
| Model | Per session | Once 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 |
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.
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
- 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.
- 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.
- Write each criterion as Given/When/Then (Gherkin-style, from Dan
North's Behavior-Driven Development):
Giventhe starting state,Whenthe user or system does something,Thenthe 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 - 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.
- 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.
- 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."
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.
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.
- 12d ago First seen · 176 lines · 131 tokens per session scan A 344e07a82319
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.
Other skills, from other repositories
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment.
receiving-code-review
Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation.
writing-plans
Use when you have a spec or requirements for a multi-step task, before touching code.
skill-creator
Create, improve, evaluate, benchmark skills. Use when authoring a new skill, updating an existing one, running evals, or optimizing a skill's description for triggering. Don't use for invoking skills, writing prose, or scaffolding Python projects.
skill-index-updater
Add GitHub skill repos to the ASM index: clone, audit, eval, regenerate index, rebuild catalog, open PR. Use when given GitHub URLs to onboard. Don't use for authoring (skill-creator), improving (skill-auto-improver), or install (asm install).
hello-world
A minimal test skill that greets the user and demonstrates the ASM publish workflow.