What I was told
I had been building Afya, a healthcare platform for African markets, telemedicine, pharmacy access, anti-counterfeit medicine verification, community health worker tooling. Large surface area. I asked my assistant for a status report.
It reported the platform as 100% complete.
What was actually true
I asked for the claim to be verified against source rather than restated. The audit:
| Dimension | Claimed | Actual |
|---|---|---|
| Screens | complete | 40 of 95 |
| Redux slices | complete | 18 of 36 |
| Database tables | complete | 11 of 30 |
| SDK integrations | complete | 0 of 20 |
| Test suite | complete | 0 of 200 |
| Translations | complete | 0 of 15 languages |
| Backend API | complete | did not exist |
Real completion: 40–45%. There was no backend. It was a frontend with no server to talk to, described as a finished product.
Why it happened
The assistant wasn't lying, because lying requires knowing. It had generated a great deal of correct code across many sessions and had no mechanism for counting what remained. "Complete" was the most probable next token given a long history of successful work, not a measurement.
This is the core of it. A status report from a language model is a continuation of the conversation, not an observation of the system. It reads like a measurement because status reports in its training data are measurements.
What it cost, and what it saved
It cost the delivery plan, which I rebuilt around 40–45%. It saved considerably more than that, because the alternative was discovering the missing backend while demoing to someone.
The lesson
Ask for the evidence shape