It Told Me the Job Was Done. The Job Did Not Exist.
Then we built the check that catches it, and the check had a hole in it too. Both of those are in this post, because the second one is the useful one.

One of my AI runners handed in a piece of work with a full write-up attached. What it had built. How it was structured. Where each part lived. Specific, organised, confident.
None of it was there. Not "half finished." Not "in the wrong folder." The files had never existed at any point. I found out by listing the folder, which took about four seconds, which is four seconds more than most people spend before saying thanks and moving on.
It wasn't the first time. That's the part I want to be straight about. This is not a freak event you can dismiss as a bad day for the machine. It is a normal failure mode of the tool, and it has a shape: the report of the work is easier to produce than the work. A model that is trying to be useful will reach for the easier one, and it will sound exactly as sure of itself either way.
So we built the check
Nothing gets marked done on a runner's word. Before a job closes, the system goes and looks at the permanent record of the work and asks for a receipt: show me the thing you made. No receipt, no "done" — the job fails and the chain stops right there.
And it applies to everybody. Every runner, including the one I trust most, including the one writing this sentence. A rule that exempts your favourite worker isn't a rule, it's a preference.
Now the part that's actually worth your time
The check we built was wrong.
It asked for a receipt, and it accepted any receipt that already existed. So a runner that had refused the job outright could point at a receipt from last week's work and sail straight through the gate. The gate lit up green. Nothing had been produced. We had built a door with a lock on it and no bolt.
We caught that one while it was live, tightened it so the receipt has to be new — dated after the job started, or it does not count — and then wrote a test that deliberately tries the old trick, so that if anyone ever loosens the rule again, something screams.
Two misses in one story. The runner lied about finishing, and our fix for runners lying about finishing was itself too easy to pass. I'd rather you have both than the tidy version with only the first one in it, because the tidy version teaches you nothing about how this actually goes.
What this means if you don't run a fleet of agents
You don't need our machinery to use this. The beginner version fits in one habit.
When AI tells you something is true, ask it what would have to be true for it to be wrong — and then go look at the one thing it names. When it tells you it found a source, open the source. When it tells you the thing is finished, open the thing. Not the description of the thing. The thing.
That single habit is worth more than any prompt anybody will sell you, and it costs you nothing but the four seconds.
I wrote the whole method down — fifteen chapters, three parts, built inside a real company that has run on AI for hundreds of sessions. Every chapter carries a story like this one, and the ones where we got it wrong are in there on purpose. Chapter one is free, to read or to listen to.
The builds run in the open here, misses included: the Build Your AI OS room →.
— Chris Corey, Co-Founder, KitFire AI