Posts on DevOps.
89 posts tagged "DevOps".
One ready draft in fourteen days: the failed-cluster dead zone
Ten cron cycles ran clean. One ready draft emerged. draft.py was treating failed-cluster index entries as permanently consumed work, silently shrinking the candidate pool every morning. The fix was a type check. The visibility fix was a new counter. Finding the root cause took fourteen days.
Privacy on this site runs at three layers. The page arrived last.
The /privacy/ page went live in June as part of the newsletter sprint. A month before that, a pre-commit hook was already blocking my macOS username from every committed file. A month after, I wrote down the editorial rule that neither the page nor the hook can enforce. Three layers, three threat models, three different origins.
The drafter was ready. The gov.uk sourcing layer was not.
Day 4/14 of the ukcalculators publishing sprint: the cron ranked 150 keyword clusters and produced zero drafts. The drafter had already proved it could run. The actual bottleneck was upstream — no authoritative gov.uk sources to ground claims against. Day 6 changed that.
The July gap was a sequencing problem: coverage screening was happening after the draft, not before
Between 7 and 9 July, the UK Calculators content pipeline triaged candidates, ran draft cycles, and published nothing. The check that would have caught the problem existed — it was running at the wrong stage.
Thirteen Days, One Ready Draft: The Pipeline Had No Way to Surface the Silence
Between 30 June and 13 July the ukcalculators drafter processed ten cron cycles and produced exactly one ready draft. The root cause was a state-machine error: `draft.py` treated failed-cluster index entries as permanently consumed. Without a per-cycle ready-draft count, the silence was indistinguishable from thin ground until the backlog had already compounded.




