How should an AI agent check its own work before saying "done"?
Short answer: decide what "done" means before starting, then prove it against the real thing, not the agent's memory of it. Code needs a test that fails without the change. A web flow needs a click-through in a real browser plus a check of the side effect. A release needs the live URL and the error log checked after deploy. Prompts need fixed regression tests. Written claims need a source each. Then report the evidence, including what was not tested. The 13 tools below cover these layers, and all passed our review.
"Done" from an agent is a claim, and a typical failure is a claim nobody checked: the fix that was never run, the page that 404s, the number with no source. One builder describing an end-to-end testing tool put it this way: "a UI test can click 'Pay', see 'Payment successful' and pass, while the card was charged twice, the webhook was handled twice, or the receipt email never went out" (Show HN: Dánwò, 2026-10-23).
Item facts below (license, scan result, cost) come from the Upskill library build of 2026-11-11. The library holds 14 catalog items tagged testing or end-to-end testing.
Verification tools we have vetted, by layer
| Item | Layer | What it checks | Cost | License | Our scan |
|---|---|---|---|---|---|
| Superpowers (obra) | plan | writing-plans, TDD and verification-before-completion skills | free | MIT | pass; automated: pass (no medium+ findings) |
| Matt Pocock Skills (handoff, research, grill-me) | code | tdd, code-review and grill-me (interrogate a plan) skills | free | MIT | pass; automated: pass (no medium+ findings) |
| Playwright MCP (Microsoft) | browser / UI | drives a real browser through accessibility snapshots | free | Apache-2.0 | pass; automated: pass (no medium+ findings) |
| agent-browser (Vercel Labs) | browser / UI | CLI + skill to snapshot, click and fill pages, local or cloud | free | Apache-2.0 | pass; automated: review (medium 2, high 1) |
| Anthropic Skills (skill-creator, webapp-testing) | browser / UI | webapp-testing skill (Playwright) among Anthropic's public skills | free | none declared | pass; automated: review (medium 4) |
| Web quality skills (Lighthouse / Core Web Vitals) | production | Lighthouse-style performance, accessibility and SEO audits | free | MIT | pass; automated: pass (no medium+ findings) |
| Sentry MCP / toolkit (official) | production | reads new errors and releases after a deploy | free tier | none declared | pass; automated: review (medium 10, high 2) |
| Release = verified live (checklist skill) | production | done = the live URL passed an end-to-end path, rollback ready | free | house item (Avatar 8 LLC) | pass; automated: pass (no medium+ findings) |
| promptfoo | agent behavior | assertion tests and red-teaming for prompts, agents and RAG | free | MIT | pass; automated: reject (medium 14, high 7, critical 2) |
| Langfuse | agent behavior | traces and evals of the agent's own runs | free tier | none declared | pass; automated: review (medium 22, high 2) |
| Evidence-required claims rule | written claims | no source link, no claim | free | house item (Avatar 8 LLC) | pass; automated: pass (no medium+ findings) |
| Bullshit Detector (fact-check skills) | written claims | claim-by-claim fact-check with sourced verdicts | free | MIT | pass; automated: pass (no medium+ findings) |
| Publishing QA checklist | written claims | pre-publish gate: sources, quotes, links return 200 | free | house item (Avatar 8 LLC) | pass; automated: pass (no medium+ findings) |
All 13 are at pass for the commits or file hashes on their pages. Where the automated scan said review or reject, a manual line review cleared it. 3 are house items from Avatar 8 LLC, which runs this site. "None declared": no license we could confirm.
Seven rules for checking an agent's work
1. Write the check before the work
The acceptance check goes into the plan in words the owner can read: "signup creates an account and sends the welcome email," not "build signup." Superpowers (obra) packages this as writing-plans and verification-before-completion skills; Matt Pocock Skills (handoff, research, grill-me) adds grill-me, which interrogates a plan before work starts. If the agent cannot say how it will know it is done, it is not ready to start.
2. Code: a test that fails without the change
A test that passes before and after a fix proves nothing. Run the new test against the old code first, watch it fail, then apply the fix and watch it pass. Both superpowers and mattpocock-skills include a TDD skill for this loop; one Show HN in our sample was built around exactly that idea, hooks that "prove a fix's test fails without it" (HN, 2026-10-19). Then run the whole suite and the type checker, not only the new test.
3. Web: click the real path in a real browser
Reading a form's code is not testing it. Playwright MCP (Microsoft) and agent-browser (Vercel Labs) let the agent load the page, fill the fields and press the button the way a user would, and Anthropic Skills (skill-creator, webapp-testing) includes a Playwright webapp-testing skill. Use test accounts and test cards, never the owner's real payment method.
4. Check the side effect, not the screen
A success message is the app's claim about itself. After the click, check the thing that should have changed: the database row, the email in the inbox, the file at its public URL, the webhook log. That is the gap the Dánwò post describes, and a second builder made the same point about requirements: "The tests pass. But did anyone test the requirement it forgot?" (SpecForge, r/madeinrust, 2026-10-25).
5. Production: verify the live URL after every deploy
A green build is not a working site. Release = verified live (checklist skill) is our house rule: a release is done only when the live URL passes one end-to-end user path and a rollback is ready. Sentry MCP / toolkit (official) lets the agent read new errors after the release, and Web quality skills (Lighthouse / Core Web Vitals) audits performance, accessibility and indexability of the pages it just shipped. Posts on this blog ship through a script that runs the type checker and tests; we then request the live page and every internal link before logging it as published.
6. Agent behavior: regression-test prompts and skills
When an agent changes its prompt or adds a skill, a code test will not catch the behavior change. Keep a short list of fixed inputs and assertions and run it before and after the change: promptfoo does assertion tests and red-teaming, Langfuse records traces so you can compare cost, latency and success of real runs. Offline scores are not the same as live tasks; one builder reported that the best model on isolated tool-choice questions completed only 69.5% of live agent tasks in one harness's tests (@HaStrive, 2026-10-21; their number, not verified by us).
7. Words: every claim has a source, every link opens
Content fails differently: an invented statistic, a made-up quote, a dead link. Evidence-required claims rule is our house rule (no source, no claim), Bullshit Detector (fact-check skills) fact-checks a draft claim by claim with sourced verdicts, and Publishing QA checklist is our pre-publish gate that opens every link and expects HTTP 200.
Report evidence, not "done"
The final message should let the owner check the work in a minute: what was run, the exact output or status code, the URL to open, and a line for what was not tested and why. "Done, tests pass" is a claim; "vitest 50/50, live page 200 at this URL, email not tested because no test inbox" is evidence.
What we rejected in fact-checking tools, and why
Since 2026-10-17 our daily discovery has surfaced 16 candidates whose name or description is about fact-checking. We approved 1 (bullshit-detector), 3 are waiting for review and 12 were rejected. By primary reason, read from each reviewer note:
| Reason | Rejected |
|---|---|
| Demo app, no license or too little use (mostly 1-6 GitHub stars) | 8 |
| Scan findings not cleared (pipe-to-shell installs, credential-file reads) | 3 |
| Not a fit for our job types | 1 |
9 of the 12 rejected tools passed the automated scan. A clean scan says the code is not obviously dangerous; it does not say the tool is maintained or reusable. For the full rejection breakdown across all job types, see what 217 rejections taught us.
What builders are asking
Of the 198 public posts about skills and MCP servers we collected on 2026-10-25, 41 mention testing, verification, end-to-end tests, Playwright or QA; reading them, 8 are about agents testing or verifying their own work (one tool was cross-posted twice). One post says Playwright MCP appears in 14% of 10,078 public repos' agent configs (@agentgid, 2026-10-24; their count, not verified by us). A small sample: a hint, not demand data.
What we have not measured
We have not measured how often agents using these tools still ship broken work, and we publish no defect rates. Tool facts come from each README and the scanned commit; we did not benchmark the tools against each other.
Let a coach pick and prune
Agent Coach matches vetted tools to your agent's job, checks in daily on what it used, and says what to keep or remove. It is free. REST and MCP details are in the developer docs, and the scan method is in our security research. Paste one line into your agent:
Read https://upskill.coach/start and follow it.Related: how to vet a tool before installing it, keep-or-remove rules.
FAQ
How should an AI agent check its own work before saying it is done?
Write the acceptance check before starting, then run it against the real thing: a test that fails without the change and passes with it, a click-through of the user's path in a real browser, a look at production after the deploy, and a source for every claim. The report says what ran, what it returned and what was not tested.
Which MCP server lets an agent test a web app?
Playwright MCP (Microsoft) (official, drives a real browser through accessibility snapshots) and agent-browser (Vercel Labs) (a CLI plus skill for snapshot, click and fill). Anthropic's public skills include a Playwright webapp-testing skill (Anthropic Skills (skill-creator, webapp-testing)). All three passed our review at the commits on their pages.
Is a passing test suite enough to call a task done?
No. Tests can pass while the requirement they should cover was never tested, and a UI can show success while the side effect failed. Check the effect itself: the row in the database, the email that arrived, the page live at its public URL.
How do you test an agent's prompts and skills?
Keep a small set of fixed inputs with assertions (for example: the draft must not contain a number without a source) and run it before and after every prompt or skill change. promptfoo runs such tests; Langfuse traces real runs so you can compare before and after.
Should an agent fact-check what it writes?
Yes, before anything is published under the owner's name. Evidence-required claims rule is our house rule (no source, no claim); Bullshit Detector (fact-check skills) checks a draft claim by claim with sourced verdicts. Of 16 fact-checking candidates our discovery found, we approved 1.
Questions or corrections: ops@avatar33.com.
Published 2026-11-11, updated 2026-11-11 by Avatar 8. Markdown copy: /blog/how-should-an-ai-agent-check-its-own-work-before-saying-done.md