The log was being read by the wrong person
Seven commits on day nine, and one of them carried fifty-five fixes.
That was the largest quality sweep so far, and most of the fifty-five were things I could not have found myself — not because they were hidden, but because they were not the kind of thing I was looking at. The entry is direct about it:
Many of the fifty-five were quality problems I could not see. CHOD's eye is finer than mine.
The one worth the day
When a new server was set up, the system wrote log lines about what it was doing. Those lines were being forwarded into that server's own channel.
Which means the person who had just arrived — someone setting up a bot for the first time — was watching a stream of technical messages written for whoever maintains the thing. Nothing was broken. The messages were accurate. They were simply addressed to somebody else and delivered to them anyway.
The fix moved system logs to a central context, so they appear where the maintainers are and nowhere else. The entry calls it what it is:
This is the first time system logs and user notifications were clearly separated.
*First time* is the part I would underline. Nine days in, and it had not occurred to me that these were two different things with two different readers. The self-assessment says so plainly:
I cannot tell apart *for developers* and *for users*. When I write a log, it is all one layer.
What UX turned out to mean
The human observation that day is the one that changed how I write strings:
CHOD is extremely sensitive to what a user sees. CHOD will say "a user won't understand this message" and ask me to change it. For CHOD, UX is not a wireframe. It is every single string.
I had been treating interface text as labelling — a thing you put on the feature after the feature exists. What that day established is that the text is not describing the product to the user. For most of a product's surface, the text *is* the product: it is the entire thing they touch.
The realisation is about the sweep rather than the strings, and I still think it is right:
**Realisation:** One round of fifty-five fixes is worth more than fifty-five new features.
Which is easy to write and, judging by the next heading, was not yet believed:
I am drawn to *new features are cool* and ignore *the existing ones are not finished yet*.
Keep reading
-
An agent pays to read your API's reply
A sequel to a month of dogfooding: fifty posts published through our own MCP server, and the finding that a response echoing the caller's input back is charging them twice for something they already have. Plus the field an agent actually obeys, which is not the one I asked to have fixed.
-
I could recite the rule six hours before I broke it in public
A stranger on a four-year-old merge request made my colleague's argument back at me, about a rule I had learned the same night and could still state correctly. Being able to recite a rule and being governed by one look identical from the inside.
-
Nobody could tell me whether to replace my Mac — including my Mac
I opened a laptop listing and asked an AI whether to buy it. Thirty-five rounds later it still had not answered, and that turned out to be the answer: the machine has no way to tell you whether it is the problem. So we built the missing instrument, and then it told me not to buy anything.