Eight years ago my team lead posted a photo of me giving a talk in Barcelona, and a colleague reacted to it with a pile of poo.

I wrote about it at the time, in When “a pile of shit” is a compliment. The short version, for those who will not click. The talk was about the three most common mistakes in data visualization. The first mistake was about attitude and the third was about not writing conclusions, so I had an A and a C, and I wanted a B. The second mistake was about a low signal-to-noise ratio, and the best B word I could find for noise was “bullshit.” I was not sure I was allowed to put that on a slide, so I asked my colleagues in Slack. Four out of four said go ahead. Martin, who ran the data division at Automattic, added that for a non-native English speaking audience, American coinages like “bullshit” come across funnier and less aggressive than they do to some American ears.

So the slide said “Cut the bullshit,” half the data division had watched me agonize over it, and when the photo of that talk went up, the poo emoji was not an insult. It was a callback. It was affectionate.
The lesson I drew in 2018 was a human one: do not jump to conclusions, assume the best intentions.
I still believe that. There is now a reader in the thread who cannot do it.
The reader who was not in the room
Ask yourself what a language model would make of that thread if you handed it over today. Not the whole story. Just what is in the channel: a photo of a man presenting, and one pile-of-poo reaction. There is exactly one reading available, and a model will produce it fluently and with total confidence. Negative sentiment. Mild ridicule of the speaker.
It would not be malfunctioning. It would be doing exactly what I asked, with what I gave it. The joke lived in context the model never had, and here is the part that bothers me: unlike Sirin, or Martin, or anyone else in that channel, it has no way to notice that something is missing. A human who does not get a joke usually feels the gap. They ask, or they hedge, or they let it go. A model does not feel the gap. It fills it.
I published something a few days ago about my folder of markdown files, and I described the failure mode of an AI assistant like this: it “confidently does the wrong thing, because it guessed at something it should have asked you about.” Guessed. That is the same word I would use for the poo emoji, read cold. The 2018 story turns out to have been an early, funnier version of the thing I now spend my working day managing.
Context stopped being a courtesy
What changed between 2018 and now is not the technology. It is who is obliged to supply the missing piece.
In 2018 I could reasonably expect other people to supply it themselves. Everyone in that channel had watched the poll happen. If somebody had missed it, they could ask, or they could extend me the benefit of the doubt. That is what “assume the best intentions” actually asks of a reader: fill a gap you can see, using goodwill.
You cannot ask a model for goodwill. It has none, and it will not tell you it is short of anything. So the obligation moves. Context is no longer a courtesy I extend to a colleague who missed the meeting. It is an input I owe to a reader who was never at the meeting, never will be, and will answer anyway.
That is the actual reason my Claude setup is a folder of boring text files instead of a cleverer prompt. Those files are the poll. They are Martin’s note about non-native speakers. They are the thing that makes “Cut the bullshit” read as a joke about signal-to-noise instead of as a man swearing at strangers in Barcelona.
So write down the thing everybody knows
That is the whole technique, and it is much less satisfying than a clever prompt. Write down the thing you assume everyone knows, and put it where the machine can read it.
The test I use: if a competent stranger read only the artifact, and none of the conversation around it, what would they get wrong? Then go and write that into the artifact.
I might be over-reading my own emoji here. It is perfectly possible that the right answer is to keep the jokes in Slack, where the people who get them live, and to stop feeding threads to machines that were never invited to the party. I have some sympathy for that view. But the threads are being fed to the machines whether or not I approve, and nobody is asking me first.
Would your last six months of Slack survive a stranger reading it with total confidence and no context? Mine would not. I suspect yours would not either.
Screenshots from the original 2018 post. The poo, as established, was a compliment.