Build LogContent Pipeline
#36
2026-07-216 min read

Zero drafts at 07:00: build the gate, not the prompt

The 29 June cron ran every stage correctly and produced nothing. Haiku underfired on claim-extraction, the pipeline accepted the shortfall without raising an error, and the log showed a clean exit. The fix was a corrective stage that detects the count failure, reruns with constrained parameters, and marks the run failed if the second attempt also falls short. Six pillars shipped in the three days that followed.

Read post
Build LogContent Pipeline
#37
2026-07-206 min read

The cron fired at 08:22 and drafted nothing — scheduling is the easy part

On 2 July, the pipeline ran on time, ranked 150 clusters, fetched candidates, and produced zero drafts. The scheduler worked. The grounding step didn't. Automating gov.uk pillar articles forces a distinction that took a zero-drafts morning to make explicit: cron reliability and content freshness are different problems, and only one of them is solved.

Read post
Build LogContent Pipeline
#38
2026-07-175 min read

150 clusters ranked, zero drafted: ground attrition is the load-bearing constraint

Five days of autonomous publishing logs made the pattern clear. The cron fired on schedule every morning. Ground attrition killed the drafts before the drafter ran. One usable cron draft across five days; ten articles published via a different route entirely.

Read post
Build LogContent Pipeline
#39
2026-07-166 min read

The cron said zero twice and ten-of-thirteen once. Every answer was correct.

Five mornings of cron firing produced two zero-draft rejections, one partial-pass, and six operator-path publishes. Zero drafts is not a pipeline failure. It is the verifier doing its job when the inputs do not warrant a draft.

Read post
Build LogAdSense
#40
2026-07-155 min read

AdSense rejected the site. The ads.txt was fine.

The Google AdSense verdict for UK Calculators arrived 10 July: rejected, “Low value content.” The ads.txt was authorised. The review had nothing to do with technical setup — Google was auditing editorial depth, and the /resources hub pages didn’t pass.

Read post