Writing & build logs.
Essays on software development, web builds, and AI tooling. Plus build notes from what I'm actually working on right now.
Two correct cancellations, two SLA breaches, four manual ships
On 13 June, the 09:00 and 12:00 BST editorial slots both failed in the same day. G-L3 cancelled the queued articles correctly each time. Manual recovery covered every slot. The experience made the gap between row-level correctness and slot-level reliability impossible to ignore.
Four sprints shipped before the installer resolved to the right directory
The idea park soak cron installer used a directory convention copied from the article pipeline, correct in the article pipeline's layout and wrong in the idea park-soak's co-located layout. Two more post-merge fixes followed the same shape: a sanitiser wired into one code path but not the other, and a caller convention documented but never enforced.
Retries must be stateless, or the loop learns to cheat
The first live probe of the calibration gate against the BoE MMC article produced a 9,340-character draft that blocked correctly. Getting to a pass from there without teaching the loop to game its own gate took two days of doctrine.
The prompt that made Haiku hallucinate, every single time
Every iteration of the UK Calculators redraft loop produced the same failure: Haiku returning plausible-sounding figures with no real source. The fix wasn't better prompting. It was removing the question entirely.
Three newsletter hotfixes. The events table found all of them.
The newsletter form went live on 9 June. I subscribed from my own address and got nothing. No row, no email, no error. Three consecutive bugs followed, all found the same way: reading the events log, not the code.




