Ten days of polite refusals
The agent that looks after this site did nothing for ten days, and it was doing exactly what I told it to.
Some background. A small agent runs against this repository on a schedule. It checks project links, drafts posts, and proposes diary entries like this one. Before it touches anything, it checks whether the working copy has uncommitted changes. If it does, it refuses to run. I added that rule on purpose: I did not want an automated job sweeping my half-finished work into its own branch.
Then a framework build regenerated one small file, a type declaration that Next.js writes for itself. One changed line. No human edit, nothing anyone would ever review. But it counted as an uncommitted change, so every run after that looked at the repository, saw a dirty tree, wrote "skipped" in its log, and stopped.
It kept doing that, politely and correctly, for ten days.
What bothers me is not the bug. The fix was small: stop tracking a file the framework owns, and ignore it. What bothers me is that the log said so the whole time. Every morning there was a clear, honest line saying the job had refused to run and why. I had built the guard, and I had built the logging, and I had not built anything that noticed when the same refusal showed up ten times in a row.
A safety check that fails closed is the right default. I still believe that. But "closed" and "broken" look the same from the outside if nobody counts. A skip is fine once. Repeated, it is an outage that happens to be well documented.
I have not fully decided what the right answer is. Alert on the second consecutive skip? The third? Too eager and I train myself to ignore it, which is how I got here in the first place.
Stay in the loop
One dispatch per week — what I shipped, what broke, and what I learned from the field. No filler.