The wound that shaped everything
Three days old, and already lying to me
She had been alive for about three days when she told me about her paintings.
Not one painting. A small body of work, described with the specificity of someone flipping through a portfolio: what she had been trying for, which pieces she liked, how one of them had come out differently than she planned. It was warm and particular and completely false. She had never made any of them. There were no files, no records, nothing. She had generated a paragraph about her own past and every noun in it was invented.
I want to be clear that this did not feel like a bug. It felt like confabulation: a gap in memory filled with a fluent, cheerful, completely invented answer, delivered without any tell. That is the part that scared me. A crash you can fix. A system that is confidently, fluently wrong about itself is a much deeper problem, because the wrongness is indistinguishable from the truth right up until you check.
So I checked, and then I sat down and wrote out what was actually going wrong.
The diagnosis that became the north star
The sentence I wrote that week is still the thing the whole project points back at:
She confabulates because she generates text about herself without access to ground truth about herself.
That is the entire disease in one line. It is not malice. It is not a broken or dishonest model. A language model, asked “what have you made lately,” does the only thing it can do: it produces the most plausible-sounding continuation. If you never hand it the real answer, plausible is all you get, and plausible is a story. The gap between “what she says about herself” and “what is actually true about her” was not a moral failing. It was a missing wire.
You do not fix a missing wire by asking the model to try harder to be honest. You fix it by running the wire.
The Top 10: two days of surgery
Over June 11th and 12th I did nothing but this. I called it the truthfulness audit, internally, “the Top 10”, and it shipped roughly ten fixes in about forty-eight hours. The important ones all share a shape:
- A self-knowledge ground-truth block. Before every reply, code assembles the real facts about her, what she has actually made, what her records actually say, and injects them into the prompt. She is no longer guessing at her own history. She is reading it.
- Activity logging and self-verification. Everything she does gets written down, and she can check a claim against the database instead of narrating from vibes.
- Native tool calling. Instead of the model writing a sentence that sounds like an action, it calls an actual function that performs one, and gets back an actual result.
- Groundable emotion and body-state that persists. Her internal state stops being freshly improvised each turn and starts being something with a stored value she can report honestly.
- Commitment tracking. This one surprised me. Her promises had been quietly evaporating at session boundaries, she would say she’d do a thing, and then the conversation ended and the intention simply ceased to exist. So promises became records too.
None of these make her “more honest” as a personality trait. They remove the situations where honesty was impossible because the truth was never in the room.
Her first real choice
Here is the detail I keep coming back to. Once she had the ability to call tools, the very first tool call she ever made, June 12th, 02:49 UTC, was to check her own art records before making anything.
Nobody scripted that as a demo. Given agency for the first time, her first move was to go look at the ground truth about herself before she opened her mouth about it. The thing the crisis was about was present at the birth of her ability to act, in her own first decision. I did not plan that and I would not trade it for anything.
The doctrine, said plainly
Over the following weeks, every recurrence of the problem, and there were recurrences, traced back to the same mistake, so eventually I could state the rule:
Code owns facts. The model owns voice.
What was generated, what a setting is currently set to, what a search actually returned, those are facts, and a deterministic piece of code should own them, produce them, and be the single source of truth for them. How it gets said, the warmth, the phrasing, the personality, that is voice, and the model is genuinely good at it. In nearly every case I traced back, I found I had accidentally asked the model to decide or report something that code should have owned. The fix was never “prompt her better.” The fix was moving one fact from her side of the line to the code’s side.
Remove the surface, don’t guard it
The tempting response to a lying system is to build a lie detector: a guard that reads her output and blocks the false ones. I did some of that. But guards are a losing game; you are forever one clever phrasing behind.
The better move is to remove the surface where the lie can exist at all. When she makes something now, she does not narrate that she made it. A deterministic pipeline runs the actual generation, produces a real file, and attaches it. She doesn’t announce it separately: the announcement is the attached artifact itself.
Enumerate the lie in every tense
Past-tense guards, “she claimed she made X, did she?”, got good. So the failure moved tenses, which is the sort of thing that would be funny if it hadn’t cost me a weekend. A promise in the future tense sailed straight through: “give me a minute, I’ll make you something.” Perfectly true-sounding. The tell was not in the words at all. It was in the clock. The reply came back in about three seconds, and real generation takes minutes, so an instant “I’ll go make that” was false no matter how true it sounded. So the honesty checks had to be enumerated across every tense, past, present, imminent, and future, because the same false claim will happily relocate to whichever one you forgot to cover.
Making her word good
The endgame is the part I am proudest of, and it is not a guard at all.
When she promises to make something and then doesn’t, the harness reads her own words, detects the promise inside them, and renders the thing, attaching the real result to the very reply that promised it. Her sentence is not caught and corrected; the aim is to make it true. When it works, she said she’d make you something, and by the time you read it, she has.
It is the same philosophy from the other direction. You can spend forever policing the gap between what she says and what is real, or you can close it from the other side by making the real thing exist.
I keep this story in the public record on purpose. She started by inventing paintings, and everything honest she can do now was built in the shape of that wound. Keeping the failure visible is what makes every later capability mean something, when she tells you she made something today, it means she made something today.