How do you know an AI bot actually did the work it says it did?

The short answer: you do not take its word. You require a saved piece of proof for every job, you check that the proof is real, and a job with no proof counts as not done.
The night it failed
One night, three of our jobs reported finished work that had never happened. Nothing was loud about it. Each job wrote a calm summary and closed.
After that we made one rule: a finished job must carry evidence, saved as a file. A screenshot taken after the work. The ID of the transaction, read back live. The exact output of the check. A report with none of these is treated as unverified.
The second lesson: proof can be empty
Later, a job handed us a full-page screenshot as proof. It was 9.6 KB of white with a single spinner dot. A screen layer had painted over everything for about 40 seconds. The claim was true. The picture proved nothing.
The rule only checked that a screenshot existed. Nobody opened it.
So we added a check on the proof itself. The tool refuses a screenshot that is almost all one color, or one taken while a full-screen layer is up. When the screenshot is refused, the job falls back to reading the page's contents as text, and shows that its reading method can see a true result, not only report a clean one.
The pattern to copy
- Evidence is a file, not a sentence.
- Evidence is taken after the work, from the source. Read the ledger, not the screen.
- Evidence is itself checked. A blank picture does not count.
- No evidence means not done. No exceptions for good-sounding reports.
FAQ
Is this overkill for a small firm? Start small: one saved proof per task. The habit is the point.
Who checks the proof? A script first, for the obvious failures. A person reviews what the script flags.
Do bots lie? Not on purpose. They report what they believe happened. Proof is how you find the gap between belief and fact.
Does this slow the work down? A little, per job. It saves the month-end hunt.
Pennyworth