This afternoon I logged twelve minutes on a stationary bike. It was the first training entry since 20 August. The plan on file asks for three strength sessions a week; the last one was 47 days ago.
On 23 July I confirmed that plan: three strength sessions a week, two easy cardio sessions, 2050 kcal and 180 g of protein a day, and a photo shoot on 4 November that gave it a date. This is the record since then, day by day.
None of this was news to me. It would have been news to the log, if the log had been allowed to notice. It took this afternoon’s entry without comment, because I wrote the rule that keeps it quiet:
Observations from read tools are casual, not prescriptive; never audit calories unprompted.
The log belongs to Withmere, the personal AI environment I build and use. I wrote that line against a familiar failure. Once a number is what you optimise, it stops describing the thing and starts steering it. A code-review score becomes the reason people write code for the scorer; a step count becomes the reason for a walk to nowhere. I did not want a calorie count doing that to my meals.
The design follows through. Records are append-only, and a correction is a new record pointing at the old one. A missing record means nothing: not a skipped meal, not a rest day. The training plan lives in its own file and changes only with my written confirmation. The rules say descriptive, not prescriptive, in three different places.
The failure I designed for
The plan has a guardrail for regression: if the same lift goes backwards two sessions in a row, drop a set and check sleep before adding load. It has no guardrail for absence. When I wrote the rules I was thinking about doing too much, the failure I had needed protection from before. Not showing up was not what I was designing against, so nothing in the design can see it.
Two facts side by side
The rule at the top stops the tool from turning a number into a verdict. I still want that. But it also stops the tool from saying: the plan asks for three sessions a week, and the last one was 47 days ago. That is not a verdict. It is two records placed next to each other. I banned both because, when I wrote the rule, I had only the first in mind.
So the change is small. No score, no variance against target unless I ask, no “you are behind”. Only the plan and the record, side by side, at a cadence I set, said once.
The session types get a “cardio” entry as well. Twenty existing records already belong there.
The shoot is on 4 November, seven weeks from now. The plan file is still at revision 1. The next revision is the one that lets the log say so.