On 10 July I published two articles. The fourteen-day cadence clock reset. On paper: healthy system.
The three weekdays before that — 7, 8, 9 July — had produced zero autonomous publishes. The pipeline had run each morning. Clusters had been triaged. Drafts had been scored. Nothing had cleared the gate. When the gap became visible from the devlog, I didn’t reach for a metric. I reached for two articles and published them manually.
The clock reset as if the two things were equivalent.
They are not.
What the fourteen-day clock measures
The cadence target is one article published within any rolling fourteen-day window. The clock measures time since last publish. A publish event resets it.
This works until “publish” includes manual rescues.
A manual rescue is when the pipeline fails to produce a gate-passing draft and I retrieve one from a failed cron run, or draft one directly, and publish it myself. From the clock’s perspective: a publish. From an autonomy perspective: a human covering for a broken system.
The 10 July reset was a rescue. So was 15 July — the Santander 8% Regular Saver piece, pulled from that morning’s composer-failed cluster. So was 20 July — the fiscal-drag piece on HMRC projections for higher and additional-rate taxpayers, rescued from the morning’s cron casualties: two checklist failures, one CLI failure, two day-capped articles. So was 23 July — the May HPI piece, rescued from that morning’s checklist casualties, screened against existing coverage before running (May HPI was a new release; the annual comparison was safe territory).
Between 10 and 23 July, four publishes. Three of those four were manual rescues. The clock looked healthy throughout.
The gap anatomy
The 7–9 July gap is in the 10 July devlog entry. On 7 July the cron triaged eight clusters to draft and produced six packs — success by the pipeline’s own accounting, meaning runs completed without errors — and none cleared the publication gate. The next two weekdays followed the same pattern. Three crons, zero autonomous publishes.
Improving on the earlier analysis of this gap, which established that autonomous content cadence fails silently: the point here is narrower. The failure was recoverable. It was recovered. But the recovery mechanism is what broke the metric.
When I published on 10 July, the clock restarted from zero. The fourteen-day window wouldn’t expire again until 24 July. Nothing in the clock’s state indicated that the three days immediately before that reset had been a complete autonomous failure. Nothing in the clock’s state would indicate, over the following two weeks, that three of the next four publishes were also rescues.
The 10 July devlog entry names this: “the 14-day cadence clock is broken and restarts from today.” That’s the right diagnosis of the symptom. What’s harder to see is that the restart is structurally indistinguishable from a clean reset. Nothing annotates the clock entry as “reset from rescue” versus “reset from autonomous publish.” Both look identical.
The gap was real. The metric never showed it.
What the metric incentivises
There’s a structural problem beyond measurement accuracy.
The cadence clock puts pressure on publication frequency. If the pipeline fails to publish, the clock counts down and eventually the gap becomes visible. Manual rescue prevents that. The rescue that fixes the immediate problem — something goes out — also resets the metric that would have made the pipeline failure visible.
The incentive is to rescue. Publishing manually is lower friction than diagnosing why the cron failed. The devlog entries from 15, 20, and 23 July all follow the same structure: morning cron casualty, afternoon rescue, published. Each was the right call in the moment. Each also reset the clock and deferred the diagnostic work.
The only period in July where that incentive structure didn’t apply was 16–17 July, because the pipeline produced gate-passing drafts without my involvement. The devlog marks it as a milestone — the first multi-day autonomous streak since the dead-zone, verifier, and dedupe fixes.
Two days of autonomous operation in three weeks. The clock didn’t distinguish those two days from any of the rescue days on either side.
The two signals that should exist
Autonomous publish rate — publishes where no manual intervention occurred between cron start and gate clearance. This is the pipeline health signal. The 7–9 July gap scores zero. The 16–17 July streak scores four. The rescue days on 10, 15, 20, and 23 July also score zero, regardless of what the cadence clock shows on those dates.
Cadence backstop — time since last publish, source irrelevant. Still useful as an absolute floor: if the window expires, the content problem is visible and compounding. Not a health indicator. A publication-frequency indicator. Those are different things.
Conflating them is what makes manual rescue invisible as a failure signal. A system where the human publishes four times in two weeks to keep the clock healthy looks identical, in the metric, to a system where the pipeline publishes autonomously four times. The inputs are opposite. The clock output is the same.
Where this leaves the build
The July pattern is legible only from the devlog, not from the cadence metric. Reconstructing it required reading individual entries and cross-referencing which publishes had cron casualties that morning.
The clock hasn’t expired since 10 July. That’s because I’ve been publishing. Its health is evidence of my publication activity, not pipeline autonomy. Until autonomous publish rate is tracked separately, that distinction isn’t surfaced anywhere except in retrospect.
The practical consequence: every time the pipeline fails silently and I rescue it, the diagnostic pressure drops. The clock shows I have days in hand. There’s no forcing function to investigate the root cause of the morning’s casualties until the next time the clock runs out — which it doesn’t, because I rescue that day too.
Out of scope: why each specific cron failure happened. The checklist failures, CLI errors, and day-capped articles on 20 and 23 July have distinct root causes that belong in separate analysis. This is about the measurement layer, not the failure layer.
The metric that needs adding is autonomous publish rate per rolling fourteen days. Once it’s tracked separately, the July pattern is visible from a dashboard rather than reconstructed from devlog entries. Until then, the fourteen-day clock resets on every rescue, and what the pipeline actually did goes unrecorded.



