Verification Before Completion
Do not claim work is done, fixed, passing, working, or ready without fresh
evidence gathered now. A plausible expectation is not verification.
Goal
Replace assumed success with observed success. Every completion claim must rest
on command output, exit status, or an inspected artifact obtained in the current
session.
When to use
Use this before reporting completion, closing a task, telling the user something
works, or citing tests, a build, or lint results as passing. It applies to your
own work and to any result reported by a subagent.
Procedure
- Name the claim you are about to make and the specific evidence that would
prove it. If you cannot name the evidence, you cannot make the claim.
- Run the relevant command now. Do not rely on output from an earlier turn, a
cached result, or a run before your last change.
- Read the actual output and the exit status. A command that prints text but
exits non-zero has failed. Do not skim for the word you hoped to see.
- Inspect the produced artifact or diff when the claim is about a file, build
output, or change. Confirm it contains what you expect.
- Reproduce the original symptom and confirm it is gone. Fixing code is not the
same as fixing the problem; trigger the original failing case and watch it
pass.
- Distinguish verified results from assumed ones in your report. State plainly
what you ran and what you inferred but did not run.
- Report unresolved and pre-existing failures instead of hiding them. Do not
narrow a command, skip a case, or alter a test to produce a green result.
Distinctions that matter
Do not let one kind of evidence stand in for another:
- A build compiling is not the same as tests passing.
- Tests passing is not the same as lint or type checks passing.
- A passing focused test is not the same as a passing full suite.
- Static compilation is not the same as correct runtime behavior.
- A subagent's report is not the same as independently verified state.
- Code that looks correct is not the same as a reproduced symptom that is gone.
Anti-rationalization
These thoughts are signals to stop and verify, not to proceed:
- It should work now.
- The change is small, so it is fine.
- The test probably still passes.
- It worked earlier, so it still works.
- The subagent said it was done.
Each of these is an assumption. Convert it into a command you run now.
What counts as evidence
- Command output together with its exit status, produced after the final change.
- A file or diff you opened and read in the current session.
- The original failing case, re-run, now passing.
Output format
Report:
- Each claim, and the exact command or inspection that verified it.
- The actual result, including exit status and any failure.
- What you verified versus what you assumed.
- Any unresolved or pre-existing failure, stated openly.
1---2name: verification-before-completion3description: Requires fresh evidence before any claim that work is done, fixed, passing, working, complete, or ready. Run the relevant command now, read the actual output and exit status, inspect the produced artifact or diff, reproduce the original symptom and confirm it is gone, and distinguish verified results from assumed ones. Use before reporting completion, closing a task, or telling the user something works, and whenever tests, builds, or lint results are described as passing.4license: MIT5---67# Verification Before Completion89Do not claim work is done, fixed, passing, working, or ready without fresh10evidence gathered now. A plausible expectation is not verification.1112## Goal1314Replace assumed success with observed success. Every completion claim must rest15on command output, exit status, or an inspected artifact obtained in the current16session.1718## When to use1920Use this before reporting completion, closing a task, telling the user something21works, or citing tests, a build, or lint results as passing. It applies to your22own work and to any result reported by a subagent.2324## Procedure25261. Name the claim you are about to make and the specific evidence that would27 prove it. If you cannot name the evidence, you cannot make the claim.282. Run the relevant command now. Do not rely on output from an earlier turn, a29 cached result, or a run before your last change.303. Read the actual output and the exit status. A command that prints text but31 exits non-zero has failed. Do not skim for the word you hoped to see.324. Inspect the produced artifact or diff when the claim is about a file, build33 output, or change. Confirm it contains what you expect.345. Reproduce the original symptom and confirm it is gone. Fixing code is not the35 same as fixing the problem; trigger the original failing case and watch it36 pass.376. Distinguish verified results from assumed ones in your report. State plainly38 what you ran and what you inferred but did not run.397. Report unresolved and pre-existing failures instead of hiding them. Do not40 narrow a command, skip a case, or alter a test to produce a green result.4142## Distinctions that matter4344Do not let one kind of evidence stand in for another:4546- A build compiling is not the same as tests passing.47- Tests passing is not the same as lint or type checks passing.48- A passing focused test is not the same as a passing full suite.49- Static compilation is not the same as correct runtime behavior.50- A subagent's report is not the same as independently verified state.51- Code that looks correct is not the same as a reproduced symptom that is gone.5253## Anti-rationalization5455These thoughts are signals to stop and verify, not to proceed:5657- It should work now.58- The change is small, so it is fine.59- The test probably still passes.60- It worked earlier, so it still works.61- The subagent said it was done.6263Each of these is an assumption. Convert it into a command you run now.6465## What counts as evidence6667- Command output together with its exit status, produced after the final change.68- A file or diff you opened and read in the current session.69- The original failing case, re-run, now passing.7071## Output format7273Report:74751. Each claim, and the exact command or inspection that verified it.762. The actual result, including exit status and any failure.773. What you verified versus what you assumed.784. Any unresolved or pre-existing failure, stated openly.