Build LogContent Pipeline
#01
2026-07-265 min read

Eight clusters triaged, zero published: why autonomous content cadence fails silently

The UK Calculators content pipeline ran three clean cron exits and published nothing for three weekdays. No errors, no alerts, just absence. Three weeks of daily runs showed the failure mode is not bad drafts. It is a gate that rejects everything differently each day, and a cadence monitor that asks the wrong question.

Read post
Build LogUK Calculators
#02
2026-07-265 min read

The cron kept drafting mortgage because gov.uk wasn't in the source set yet

For five days, the cron produced news-cluster drafts and operators shipped gov.uk regulatory pillars by hand. Day 6 changed one thing: gov.uk Search API sources entered the polling loop. Two data-pegged pillars from a single cycle followed immediately.

Read post
Build LogUK Calculators
#03
2026-07-255 min read

10 of 13 sentences made it. The verifier caught the rest before they reached a pillar page.

The June 30th cron produced a mortgage rate-spike draft grounded in April 2026 data. Ten of thirteen sentences passed. The three that didn't never reached a pillar page — and the next two days showed why that distinction matters at publishing scale.

Read post
Build LogContent Pipeline
#04
2026-07-256 min read

14 days of daily publishing: the three failure modes I hadn't designed for

A 14-day publish cadence on UK Calculators surfaced three failure modes: title-mangling produces permanent ugly slugs, zero-draft mornings expose the absence of a fallback queue, and triage without memory republishes the same cluster it shipped the day before.

Read post
Build LogSEO
#05
2026-07-255 min read

AdSense low-value rejection: thin pages, empty hubs, and six SVG diagrams

UK Calculators was rejected for low-value content on 10 July — ads.txt was authorised, so this was purely a content-quality judgement. Three concrete moves addressed the specific inventory-value criteria: expanding thin calculator landings, adding SVG diagrams across the pillar estate, and populating empty hub pages the rejection identified.

Read post
Build LogUK Calculators
#06
2026-07-255 min read

The E2E suite billed 1,130 minutes to test a page that never existed

A Playwright suite on a private repo ran 69 times in three weeks, failed 61 of them, and billed roughly a thousand minutes doing it. The root cause was three mistakes stacked on top of each other, and the deepest one was mine: I did not know GitHub Actions had a bill.

Read post
AdSenseSEO
#07
2026-07-235 min read

AdSense readiness: the checklist caught one gap, the reviewer found another, the sweep found a third

Seven out of eight on the automated readiness audit, then rejected for low value content anyway. The fix required three rounds: media diversity closed before submission, hollow hub listings after rejection, and a site-wide sweep that stripped fabricated trust signals the structural checklist had no way to catch.

Read post
Build LogAdSense
#08
2026-07-235 min read

Google's AdSense reviewer checklist returned 7 of 8 green. Format diversity was the one that counted.

Running Google's reviewer checklist against UK Calculators returned 7 of 8 green. The one red item was format diversity: zero of 38 articles had any embedded visual content. Eight days after submission, rejected for low value content — a checklist score doesn't carry item weights, and format diversity was the one Google's reviewer weighted most.

Read post
Build LogUK Calculators
#09
2026-07-235 min read

The cron produced zero drafts. That was the correct answer.

Four mornings into a 14-day operator-publish sprint on UK Calculators, the pipeline ranked 150 clusters, fetched candidates, and produced nothing. Not a failure. A signal that the ground-truth layer, not the LLM, is the binding constraint in a pipeline built on live gov.uk sources.

Read post
Build LogAI Tools
#10
2026-07-225 min read

Fifteen claim blocks and a zero-draft cron: the cost of grounding a content pipeline in gov.uk

Hand-curated gov.uk claim blocks stopped the ukcalculators drafter fabricating figures. Three days after the first clean pillar shipped, the cron fired on time, ranked 150 clusters, put mortgage at the top — and produced nothing. That was the gate working correctly.

Read post
Build LogContent Pipeline
#11
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
#12
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
#13
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
#14
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
#15
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
Build LogUK Calculators
#16
2026-07-145 min read

The cron ran clean and drafted nothing: eight pillars in five days named the extraction bottleneck

Five days into a 14-day operator-publish sprint, the cron fired on-time every day and produced two useful drafts — one of which recycled yesterday's ground. Improving on the quality-gate diagnosis from the inheritance tax piece, this sprint isolated an earlier failure: claim extraction stalls before the drafter gets a turn.

Read post
Build LogContent Pipeline
#17
2026-07-126 min read

Four cron zeroes in five mornings. Eight articles shipped by hand. The pipeline problem isn't the scheduler.

Five days into a fourteen-day publishing sprint on UK tax calculators, the scheduler fires within a minute of its window every morning. Automated drafts produced: two, one a duplicate cluster. Gov.uk cooperates. The bottleneck is claim extraction and cluster survival.

Read post
SEOBuild Log
#18
2026-07-055 min read

The ultracode audit was clean. Google still hadn't found the pages. The fix was six in-body links.

Five legal pages and /stamp-duty-calculator were returning HTTP 200, index/follow, self-canonical — and still showing 'URL is unknown to Google' in Search Console. A multi-agent ultracode review ruled out every technical blocker. The answer was the link graph: footer-only pages don't get crawled.

Read post
SEOAdSense
#19
2026-07-016 min read

Eight pillars published. AdSense said low value content. The bottleneck was never volume.

Closing the 8-pillar map on 23 June was the point at which Phase 1.6's publish-volume theory ran out of runway. The AdSense low-value-content gate was already in place; more articles hadn't moved it. The real bottleneck is internal-link density and topic-cluster cohesion.

Read post
Build LogTesting
#20
2026-06-286 min read

The diff check passed forever. That was the bug.

A test that checked whether verify.py was modified by a wiring PR became trivially true the moment PR #43 squash-merged. Phase X.8 replaced it with replay hashes, pre-registered gates, and hermetic sabotage cycles — tests designed to fail when they should.

Read post
SEOBuild Log
#21
2026-06-195 min read

Google ranks URLs, not intentions: the NN- prefix strip that resolved eight cannibalisation pairs on ukcalculator.uk

A site-wide SEO audit of ukcalculator.uk surfaced eight cannibalisation pairs before a single meta-tag was touched. The common thread: a numeric sort prefix on every affected slug, one that had never been intended as a ranking signal. Fixing the URLs outweighed everything else in Phase 1.

Read post