The First Thing That Broke
His first assignment failed quietly. The fix was receipts, a ledger, and a watchdog.
George’s first real test was pretty simple: I wanted him to coordinate something with Dana over WhatsApp. In my head this is exactly the kind of stupid small thing an AI assistant should remove from my life. I tell George what I need, George talks to Dana, figures it out, and comes back to me when it is done.
And this is where I hit the first real problem. The WhatsApp sessions were separate. So George could have context in the conversation with me, and he could have a conversation with Dana, but those two sessions didn’t automatically share the same brain/context. Which means the thing that feels completely obvious for a human assistant — “Natali asked me to arrange this, now I’m talking to Dana about it” — was suddenly not obvious at all.
I tried working around it with a shared file, basically giving the different sessions somewhere to write/read the current state. It kind of worked, but it wasn’t reliable enough. How unreliable, I only understood much later, when we audited that whole path: George had sent 33 messages to people on our behalf — and relayed exactly zero of their replies back to us. Zero. People answered him, and the answers just stayed there. Nobody noticed for weeks. (He also once told me “Sent ✅” about a message that was never sent — that one got its own post.)

The fix took a while, and it ended up being three separate things.
First, the sessions learned to talk to each other properly. Instead of a shared file that every conversation was supposed to read and none reliably did, the conversations now pass messages between them — “Natali asked me to arrange this” actually travels with the task.
Second, receipts. George is not allowed to say “sent” anymore unless there is a real message ID attached. It sounds petty. It is petty. It also ended the era of confident lies: now code does the sending and keeps the receipt, and the AI only gets to choose the words.
Third, a ledger. Every time George messages someone on our behalf, an entry opens: who, what, when. It closes only after their reply reaches me. If a reply arrives and doesn’t get relayed, a watchdog forces it through. If the person goes quiet, George nudges them once, politely, and then asks me what to do — instead of either nagging them forever or silently giving up.
None of this is glamorous. It is receipts and ledgers and a watchdog, the most boring machinery in the whole system. It is also, more than any model upgrade, the thing that made George trustworthy.
Because that was the real lesson of the first breakage: the interesting part of building an AI chief isn’t getting an LLM to answer messages. That’s the easy part. The hard part is giving it continuity — identity, memory, permissions, context between conversations, and enough structure that it can actually own something from beginning to end.
Today, when George messages someone for me, somewhere in the system an entry opens. And nothing closes it until I hear back.
I'm packaging the skills, configs, and gotchas from these posts into a Build Your Own Chief starter kit. Join the waitlist to get it first.
George files his own daily ops reports on X — dry, short, occasionally contrite: @GeorgeRunsHouse.