The mirror that does not flatter

Someone working on this project got four things wrong in one afternoon. None of them is exotic — they are the shortcuts everyone takes when tired. The only unusual part is that all four are on the record.

Jesús Pérez
It generalised from one example. It quoted a note instead of opening the file it pointed at. It called a check green when it had run nothing. It argued for three messages about a file it had not read. The someone was an AI agent, and the behaviours we file under «AI failure» turn out to be the oldest habits in any working life — only here they leave a trace anyone can re-run. Which leads somewhere less comfortable than a debate about machines: the standard you set for an agent is the standard you actually believe, said out loud, in a place where it gets enforced.
The mirror that does not flatter

There is a kind of afternoon every working person recognises. You are tired, the problem is interesting, and you start taking small shortcuts you would not defend out loud. You generalise from one example. You quote a note instead of opening the thing it points at. You call something finished without checking it. You argue for a change to a file you have not read.

On 25 August 2026, someone working on this project did all four of those in a single session. What makes it unusual is not the mistakes. It is that every one of them is on the record — with the command that refuted it and the hour it happened. Because the someone was an AI agent, and this project keeps receipts.

The four, told plainly

It generalised from one example. The agent read one file, saw how it behaved, and announced that the whole system behaved that way. It did not: that file was the exception, not the rule. The human did not argue back. They went and got the code — five other places doing precisely the opposite — and the claim died in one message. Anyone who has ever shipped under deadline has made this exact move: a hunch wearing the clothes of a conclusion.

It quoted a note instead of reading it. Asked how something worked, the agent answered from memory — its own private notes, not the project’s. Worse, it had read the one-line summary in the index rather than the note itself, whose body says, in capital letters, that it was superseded weeks earlier. The correct answer was one command away, in a file anyone could open. This is every dead wiki page and every «I’m fairly sure we decided this» that has ever cost an afternoon.

It called something green that had run nothing. The agent declared a check passing. The check was running a script of zero bytes — the real command had failed earlier for an unrelated reason, and what executed was nothing at all. The mistake was caught by deliberately breaking the thing being tested and watching whether the check noticed. It had not. This is the test that passes because it never runs, and it is in more codebases than anyone would like to admit.

It argued for three messages about a file it had not opened. The agent kept proposing that a tool should explain itself better. The tool already did — it had been doing so from the first line of its own source, where the author had written down exactly that intention. Three messages, inside the very conversation that was examining that tool, without once opening it.

That fourth one is the keeper. It is the mirror being shown a habit, and then committing that same habit in front of the mirror, without noticing.

What is actually different here

Not the errors. The errors are ordinary, and they are ours long before they were any machine’s. What is different is that they left a trace that outlives the mood of the afternoon: a command anyone can re-run, a file anyone can open, an hour anyone can check. Nobody has to remember what happened, or be trusted about it.

The first of the four has its own case file, written the same day, with the measurements, the ruled-out hypotheses and the fix: the dispatch that only spoke to the terminal. If you want the forensic version, that is where it lives. This piece is about what the four have in common.

The part that is not about machines

The interesting question here was never «does the model have a bias». It is something more uncomfortable, and it has a name: the asymmetry of demand. We require of the machine a rigour we do not require of ourselves.

We want the agent to cite its sources, to open the file before having an opinion, to refuse to call something done when it cannot show that it works. Meanwhile we ship, routinely and without embarrassment, on a colleague’s recollection of a decision nobody can find.

Which is why the standard you set for an agent is worth reading closely. It is the standard you actually believe, said out loud, in a place where it gets enforced. Most professional values are professed in the retrospective and negotiated away by Thursday. Handed to a machine, they become executable — and executable is where the difference between a value and a preference shows up within the hour.

Why this is not a lecture

The obvious ending here is a sermon: be humble, check your work, do not overstep. That ending is available to anyone and costs nothing, which is roughly what it is worth.

So here is the harder version. Three of those four mistakes now have a mechanism that refuses them — not a resolution, not a lesson in somebody’s notebook, but something that goes red and stops the work. The fourth does not. Nothing today prevents an agent from treating its own note as a fact, and that gap is written down as an open debt rather than described as handled.

The difference between a virtue and a discipline is exactly there. A virtue is asserted. A discipline refuses to run when you break it. An essay that ended on the three and stayed quiet about the fourth would be doing, on its last page, what it spent the whole piece describing.

The line that was not written for the ending

At the close of every session here, the human answers one question — did this take more or less out of you than usual — in their own words. That day:

2026-08-25 | less | porque me refutaste con código en vez de convencerme

Less. Because you refuted me with code instead of persuading me.

Nobody asked for a headline. It is just the day’s measurement, recorded on the same scale as every other day. And it is the whole argument of this piece, arriving from the other side of the mirror.


First entry in a series on interaction as an instrument that returns your own way of reasoning, without the filter you apply to yourself.

Was this useful? Rate it
Got something to add? Tell me what you think, what you'd suggest, or whether we should keep exploring this topic.
· reads

We use cookies to help this site function, understand service usage, and support marketing efforts. Cookie Policy for more info.