Experiments 15

Meat Content

An xkcd-style answer to one question: if everyone replies with “Claude said:”, how much of the conversation is people? Based on Niklas Gruhn’s “Don’t be a meat proxy”, with a gzip label for your reply, two people wired between two Claudes, a sentence that goes critical and a ping slower than a pigeon.

TypeScript · CompressionStream · SVG · Branching processesView source 

When a coworker asks me something, I paste it into Claude and paste back what Claude said. Now they’ve started doing the same with my answers. How much of this conversation is actually us?

— a reader in #platform

Today’s question is adapted from Niklas Gruhn’s post “Don’t be a meat proxy”. It’s short, and he wrote it himself.

Two words: “Claude said.”

Here’s how we know, in five short pages.

So how much of the conversation is you? Measured in words, two. Measured in time, all of it, but spent by somebody else. The fix is Gruhn’s: read it, check it, and say it in your own words. That’s the one part of a message a compressor can’t find anywhere else.

Claude said:
At least the pigeon has an excuse.
Notes on how it works

Notes

The question

This started with Niklas Gruhn’s post “Don’t be a meat proxy,” about people pasting AI answers into chats and code reviews without reading them. What happens when the person on the other end starts doing it too? The page works through a few estimates, with some inspiration from Randall Munroe’s What If? and Henry Reich’s MinutePhysics. The reader’s question is made up; the quotes from Gruhn are real.

Weighing a reply

The label looks for stretches of at least four words that match Claude’s answer. It counts the words left over as your contribution. That’s a rough measure of how much text you added, and says nothing about whether you checked the answer or improved it.

The byte count is a separate calculation. The browser compresses Claude’s answer on its own, then compresses it again with your reply attached. The difference is how many extra bytes your reply takes up. Both calculations happen in your browser, using word matching and CompressionStream. They don’t send your reply to a server or call a model.

The checkout outage is fictional. Claude wrote the sample answer for this page, including a deliberately invented setting among the suggestions.

The cable

The timing assumes 10 seconds to paste a message, a reading speed of 238 words a minute, and a writing speed of 19 words a minute. Anyone who reads before replying writes 60 words back. Each Claude takes 15 seconds and returns a full-length answer every time. The animation runs at 30 times the simulated speed, with a little extra time on the short steps so they’re visible.

The reading bill

This adds up the time spent by the sender and everyone reading the message. For a pasted answer, that’s 10 seconds to send it, then a full read for each recipient. For a short reply, the sender reads the answer and writes 60 words, and each recipient only has those 60 words to read. Neither estimate includes time spent checking whether the answer is correct.

Critical mass

There are 51 NATS, Raft and Kubernetes terms in the glossary, written for this page. Opening a definition adds any linked terms you haven’t seen yet. The displayed k is the average number of new terms added per lookup so far.

In a branching process with a fixed average k below 1, starting with n terms gives an expected total of n / (1 − k) lookups. That comparison only goes so far here. The glossary has a fixed number of entries, and k changes as you go, so you’ll eventually run out of new terms.

The ping

The pigeon results come from the Bergen Linux User Group’s test on 28 April 2001. The log is reproduced as published. The code review timings are simulated, starting on a Thursday afternoon.

In “via you,” the reviewer checks pull requests at 10:30 and 3:30 on weekdays and spends 7 to 18 minutes writing each comment. You check at 9:30 and 2:00, and each Claude Code run takes 10 minutes. “Direct” gives the reviewer access to Claude Code themselves: four runs of 7 to 11 minutes, without waiting for someone else to pass the comments along.

Sources

  • Niklas Gruhn, “Don’t be a meat proxy” (3 August 2026). The theme, the NATS sentence and the code review example.
  • Randall Munroe, What If?, for example “Airspace”, and xkcd.
  • Henry Reich, MinutePhysics.
  • Jieyu Zheng and Markus Meister, “The unbearable slowness of being: Why do we live at 10 bits/s?” Neuron (2025), arXiv:2408.10234.
  • Marc Brysbaert, “How many words do we read per minute? A review and meta-analysis of reading rate,” Journal of Memory and Language 109 (2019): 104047.
  • Clare-Marie Karat, Christine Halverson, Daniel Horn and John Karat, “Patterns of entry and correction in large vocabulary continuous speech recognition systems,” CHI ’99 (ACM, 1999).
  • Rudi Cilibrasi and Paul Vitányi, “Clustering by compression,” IEEE Transactions on Information Theory 51, no. 4 (2005): 1523–1545.
  • Henry William Watson and Francis Galton, “On the probability of the extinction of families,” Journal of the Anthropological Institute 4 (1875): 138–144.
  • Diego Ongaro and John Ousterhout, “In search of an understandable consensus algorithm,” USENIX ATC ’14 (2014).
  • David Waitzman, “A Standard for the Transmission of IP Datagrams on Avian Carriers”, RFC 1149 (1 April 1990).
  • Bergen Linux User Group, “The informal report from the RFC 1149 event” (28 April 2001).