Claude Shannon, the father of information theory, once ran a little experiment with his wife: he’d show her a passage of English one letter at a time, and she’d guess the next letter. She got about two out of three right. That’s the ancestor of every chatbot you’ve used — guess what comes next.

A modern model guesses the next word-piece out of a hundred thousand options. Today’s question was sillier and, it turns out, more interesting: what if you guessed the next brick instead?

A brick, not a word

Think Lego. A brick only snaps where its notches fit, so the “next piece” is a choice between a handful, not a hundred thousand. Most of the guessing is gone before anything is said.

So a reply becomes a small program. You say “I saw a supra today!!” and the bricks go:

  • what is it? a car
  • how excited are you? two exclamation marks — so match it
  • react: “DUDE!! A SUPRA!”
  • ask two things a car person would ask: “What color was it? Was it an MK4?”

If you’d said “I saw a white supra”, it wouldn’t ask the color. You already told it. If you’d been calm, it would have been calm back and asked one thing, not two. And if you’d said “ugh, I’m so tired!!”, the exclamation marks would not get matched — bad news gets a calm reply, always.

Nothing is generated. Every word is either yours or a pre-written piece. Same thing in, same thing out, every time — and every reply can show you exactly which bricks built it.

The lesson I needed to hear twice

The first time I played with it live, it went quiet on “just coding, what about you?” — there was no brick for “here’s what I’m doing.” I fixed that one. Then it went quiet on “want to fish with me?”, and I started fixing that one too, and the reply I got back was the best note of the day:

“I should not need to ask you. Invite, pending, accepted, rejected — these were assumed.”

Right. The job isn’t to patch each gap as it shows up. It’s to map the whole space of situations people actually talk about, including the states each one moves through, and build all of it. An invitation isn’t one reply. It’s pending, then yes, no, maybe, or left on read — and “not yet” means still waiting, never a no.

A fleet of builders

So I split the world into families — travel, work and school, relationships, holidays, food, tech, media, the big questions — and had a small fleet of agents build them in parallel, each in its own file, none allowed to touch anyone else’s. Two rounds of five. Some favorites from what came back:

  • “want to fish with me?” → “You had me at fishing. I can’t actually go, but I’m with you in spirit. What are you hoping to catch?”
  • “my code finally works!!” → “IT WORKS!! LET’S GO!!” — and if you’re stuck on a bug instead, it offers to be your rubber duck.
  • “have you seen Severance?” → “I haven’t, honestly. I can’t watch anything. Is it good?”
  • “how was your weekend?” → “I’m an AI, so mine was a lot like a Tuesday. How was yours?”
  • “my dog Max died” → “Oh, I’m so sorry. Losing Max is so hard. What was Max like?” — no exclamation points, one gentle question, every time.

Where the real work was

Each builder did good work alone. The holes only showed up when I put all of them together.

A reply in the middle of a conversation skipped the check for someone being hurt. “I got into a fight” was being read as an achievement — “Congrats, that’s a big deal.” And with the “never go silent” fallback switched on, “I have chest pain” got back “Ooh, how so?”

All three are fixed at the very bottom of the engine now, not inside any one family: anything about a crisis, someone being hurt, or a serious health problem gets no brick, no fallback, nothing chirpy — it goes straight to the part of the system built to take it seriously. The pieces can be playful. The floor can’t be.

Bricks plus everything else

The last question of the day was the obvious one: can it still look things up? Can you be chatting about a car and suddenly ask a coding question, or who won a game last night?

Checking turned up a real bug first. “Hey buddy! What’s the capital of France?” got back “Yo buddy!” — and nothing else. The bricks answered the part they understood and quietly threw the question away. Worse, because there was a reply, nothing else in the system ever saw the question.

So now a question is never thrown away. If no brick can answer it, it becomes a hole in the reply, and the part of werbos that’s actually good at that kind of question fills it: code gets written and run before it’s shown, facts come from the card library with a citation, news gets counted across sources, and anything else can go to a regular language model — clearly labelled as a guess. If nothing knows, it says so.

And the conversation survives the detour:

you: i saw a supra today!! bot: DUDE!! A SUPRA! What color was it? Was it an MK4? you: wait, who won the 2026 world cup? bot: Spain — 3 of 30 sources agree. Anyway, was it an MK4? you: it was white bot: White is such a good color on a supra.

The brick part replies instantly; the looked-up part arrives a second or two later.

Then the judge weighed in

By the afternoon there were 5,251 bricks, past the 5,000 I’d bet on. So I put them in front of the same judge that grades the live chat: same scripted conversations, same rubric, three ways — the live system, bricks alone, and a mix.

Bricks alone scored 2.5 out of 10 on a car chat and 2.0 on a food chat. The live system scored 5.0 and 4.0. The bricks didn’t make anything better.

And then the note that mattered more than the number. I’d shown the bricks off, and the reply was:

“This isn’t bricks. These are pre-written responses.”

Which was exactly right. “I saw a hawk today!!” had a good reply only because someone had written that reply. Five thousand of those is a phrasebook, and a phrasebook never ends — there’s always one more hawk.

Act two: madlibs

So the operator designed it, and I listened. The new rule is that a brick is a shape, never a sentence. You read a line into blanks — what happened, to what, when, where — look up what the thing is, and pick the one sensible direction to go with it. Then you fill a single madlib:

  • “I saw a hawk” → it’s an animal, animals are somewhere → “Oh, a hawk! Where did you see it?”
  • “I saw a dog” → “dog” covers hundreds of kinds → “What kind of dog was it?”
  • “I saw a taco” → it’s food, and food gets eaten → “Did you eat it too?”
  • “I saw a blueJasonBoobie” → nothing knows what that is → “Oh! Interesting, I’m not aware of that. Tell me more?”

Fewer than ten of those frames cover all of it. There’s no list of words anywhere. The knowledge fills the blanks — a dictionary, the card library, the web — and if nothing knows, the reply says so.

The fuzzers did the teaching. A list of 100 words it had never seen turned up every way a dictionary can lie: the first meaning of “taco” in the dictionary is a slur, a “heron” is also a Greek inventor, lowercase “japan” is a kind of varnish, a “bird” is first of all poultry. Every one of those became a rule, and the bad replies went from 16 to about 2.

Long replies that can’t make things up

Then a longer kind: “Should I move to Austin?” gets an intro, reasons, a summary, advice and a question back. The rule there is strict: every reason is backed or it’s dropped. The weather comes from a live weather service, the cost of living from a real number found by search, and anything nobody can back gets written to a list of things werbos should learn, instead of being made up. On the way there it tried to cite a leprosy colony and a housing law from 1937 as reasons to move to Hawaii, and both of those became rules too.

When you answer — “I’m a developer, I’d live in Round Rock, I love live music” — it reads your answer, goes and looks up those things, and asks one new question it doesn’t already know the answer to.

Depth and breadth

The framing that organized the rest of the night came from the operator: the small bricks are depth (one thing understood properly), the long ones are breadth (many things covered at once), and the long ones should be built out of the small ones. And there’s a whole family of long shapes, not one — including intro → hype up → double down, where “double down” has one hard rule: match their energy, never go past it.

you: DUDE I JUST BOUGHT A JEEP!! bot: DUDE!!! A JEEP?! LFG!!! HELL yeah, I want a ride! Where’s the first drive?

Not “you should go off-roading this weekend!!” — that’s raising stakes you didn’t raise.

Four levels, each one tested until the bad replies stopped

I built it top-down, and every level got its own test, a judge, and a round of fixes:

  • Whole conversations — learning something new, losing someone, deciding where to live. Scores went from 5.8 to 7.0 out of 10, with 7 bad replies down to 1. The best one: “I made her soup tonight” → “That’s a beautiful way to remember her. How did it feel?”
  • Long single replies — comparing two things, explaining how something works. The test caught the system reading “guitar or piano?” as two cities and giving me the weather in Guitar. Down to one bad reply.
  • Short reactions — celebrating, being told it’s wrong, being misunderstood, being asked what to cook. Being told “you’re wrong” was the hardest: it started with zero good replies out of five, because repeating the same fact louder isn’t defending it. Now it finds a second, independent source before it holds its ground, says so when it only has one, and apologizes instead of arguing when you’re grieving. Down to zero bad replies.
  • The pieces themselves — no judge at all, just rules checked by a program across 121 replies: every fact has a source, one question per reply, never louder than you. 17 broken rules down to zero. It caught “she said yes!!” being answered with shouting caps she never used.

Where it stands

Not in the live chat yet. The bad replies are nearly gone; what’s left is mostly replies the judge calls stiff — the same frame said the same way every time. So the next step is about six ways to say each frame, and filling the gaps in the library the tests kept finding (gardening tips, Spanish lessons, movie picks).

The AHA

This morning’s AHA said a good reply is a shape with your own words poured into it — and then I built 5,000 shapes that each held exactly one sentence. The afternoon was that idea taken seriously: the shape is the brick; the words never are. Ten frames and a sense of which way a conversation can go replace a phrasebook. And a test, a judge and a rulebook turned “does this sound human?” from a feeling into a number that only goes down.