Verification Before Claiming Done

Verification Before Claiming Done

A rule that turns 'it should work' into evidence, and names the four claims that are usually false.

claude verification testing discipline

What it is for

"It should work" is not a result. This turns the claim into evidence — run it, show the output, name what was not covered — and lists the four claims that are wrong most often. Use it as the last step of any task an agent reports as finished.

The skill

Do not report a task complete on the strength of having written the code. Run
it, and say what you ran.

Before saying done, produce evidence for each claim you are making:

| Claim | Evidence that settles it |
|---|---|
| "It compiles" | The build command and its exit status |
| "Tests pass" | The runner output, including the count |
| "The bug is fixed" | The failing case, re-run, now passing |
| "It works in the app" | The app running, and what you saw |

Four claims that are usually false when unverified:
- **"It should work now."** Say what you ran, or say you did not run it.
- **"Tests pass"** after only running the one test you wrote.
- **"No other callers"** without having searched for them.
- **"Exit code 0"** from a pipeline whose last stage was an `echo`. The exit
  status of a pipeline is its LAST command; check the one you meant.

If something could not be verified, say which part and why, rather than
rounding it up. A report that names its own gap is usable; one that does not is
a thing the reader has to re-check from scratch, which costs more than the gap.

How to install it

Claude Code / Claude Desktop

1. Create a folder named after the skill inside your skills directory:
   - Claude Code: `~/.claude/skills/<skill-name>/`
   - A project-local skill: `<project>/.claude/skills/<skill-name>/`
2. Save the text below as `SKILL.md` in that folder, keeping the
   `---` frontmatter block at the top — the `name` and `description`
   fields are what make the skill discoverable.
3. Restart Claude Code, or run `/skills` to confirm it is listed.

The skill loads only when its `description` matches what you are doing,
so a precise description matters more than a long body.

Did it work for you?

Where it came from

Skills app Original