Build LogUK Calculators
#01
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 LogAI Tools
#02
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
#03
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
#04
2026-07-205 min read

The cron exited clean. There were no drafts.

Two zero-draft mornings out of four cron firings across 29 June to 2 July, both exits clean. The failure was Haiku's claim extraction underfiring one stage before draft: structurally invisible, no error, no warning, cron returns success.

Read post
Build LogContent Pipeline
#05
2026-07-186 min read

Ten of thirteen: why verification without correction is just expensive triage

The morning cron produced a draft with 10 of 13 sentences passing the verifier. Without a corrective step, that's a triage ticket, not a publish. Four days of cron output showed the rescue pattern fires once in four — and what covers the other three.

Read post
Build LogUK Calculators
#06
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
#07
2026-07-126 min read

What shipped on 2026-06-25 wasn't T-004: the verifier is the pipeline's real editor

T-004 was next in the topic-authority backlog — NRB and RNRB explainer, score 11. Two operator-driven publishes on 2026-06-25 shipped IHT rates and property tax reform instead. The backlog had an opinion; the verifier had authority.

Read post
Build LogAutomation
#08
2026-06-255 min read

Phase 9 claimed self-driving overnight. The first five slots returned twenty percent.

Phase 9 described BBBrain's auto-pipeline as self-driving overnight delivery. Five scheduled slots later, the success rate was twenty percent — four cancellations, two architectural gaps in the publisher, and one duplicate that should never have queued. The rebuild was around explicit failure modes, not the happy path.

Read post
Build LogAI Tools
#09
2026-06-225 min read

The pipeline was wrong before the model ever ran

PR #53 was the first article the X.8 editorial pipeline shipped since H-1/H-2/H-3 lifted, unblocked by a single bug fix in ground.py. Not a prompt change. Not a model upgrade. A function called calculator_scores had a bug, and the model had been synthesising from whatever it returned.

Read post
DVLAWBuild Log
#10
2026-06-215 min read

The sibling-rehash rule: wired in the prompt, enforced in the filter

The picker generates three thesis variants per upgrade decision. Multiple upgrade taps on the same topic, same source material, different angles: the pipeline could queue two articles that were really one. Fixing that took two layers — one in the drafter prompt, one in the substitute filter — because prompts are probabilistic and filters are not.

Read post
Build LogEditorial
#11
2026-06-206 min read

25 PRs, a rescued BoE fetcher, and a composer taught restraint: the editorial pipeline ships

PR #53 merged on 12 June: the first article through the full X.8 grounded editorial pipeline. The morning sweep showed three gaps that had been quietly open — a stale PR that would have deleted the BoE rates fetcher, a composer inferring beyond its sources, and a design sprint that completed the day after. All three closed within 72 hours.

Read post
Build LogAI Tools
#12
2026-06-205 min read

The S-4 cohort made two editorial pipeline decisions. I shipped them.

Two weeks of UK Calculators editorial pipeline sprints ended with two decisions that came from the cohort data, not preference: live Bank of England rate fetches and a constrained LLM composer. The pipeline silently stalled for four days after shipping.

Read post
Build LogEditorial Pipeline
#13
2026-06-136 min read

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.

Read post
Build LogAgentic AI
#14
2026-06-126 min read

One osascript harness, two consumers — how skipping Archon kept the article pipeline stack composable

After the variant-picker shipped, the next call was architectural. Route thesis generation through Archon, or build a project-owned harness and own the primitive. The harness won. What emerged was a two-consumer pattern — thesis generation and voice rewriting off the same base — that Archon would have made awkward.

Read post
Build LogAI Tools
#15
2026-06-126 min read

Three articles cleared every gate. None of them cleared the style guide.

Phase 9 of the article pipeline auto-pipeline shipped on 2026-06-11. Within 24 hours I was manually patching three articles that had cleared every automated check but violated the style guide's em-dash budget on all three. The scrubber had the right rule. It was checking the wrong scope.

Read post
Build LogAI Tools
#16
2026-06-115 min read

Stop retrying the prompt: what the brief ledger taught the image harness

Four sessions into generating hero illustrations, I was still fixing the same structural mistakes on different posts. Each bad render was a lesson. The retry loop wasn't keeping them.

Read post
Build LogVoice Design
#17
2026-06-105 min read

Both voice iterations failed the Cash ISA test. I shipped the original.

Two iterations of the uk-calculator-voice skill (analytical v2.0.0 and warmth-corrected v2.1.0) both failed the same blind A/B on Cash ISA drafts. The original v1.0.0 won both rounds. The ship was v1.1.0: a reset to the passing baseline with the recovery path formalised, not a third iteration attempt.

Read post
Build LogAgentic AI
#18
2026-06-096 min read

Archon was burning quota. The fix was a hook, not a scheduler.

Three Archon runs in flight simultaneously, two of them fired without a deliberate decision. The instinct was to build a smarter scheduler. What worked was a global PreToolUse hook that intercepts archon workflow run and forces a pause before anything spawns.

Read post
Build LogPython
#19
2026-05-318 min read

The classifier is the product: how four branches replaced an inbox

Inbox Hub is five SQLite tables, twelve route handlers, four Shadow DOM components, and a launchd cron. Strip those away and what remains is a four-branch decision tree that runs on every message. Everything else is plumbing around that core.

Read post
Build LogAI Tools
#20
2026-05-287 min read

Ten AI-prose tells, one shell script, no more guessing

The em-dash density in my own published articles was running at four times the normal rate for edited prose. That was a measurable problem. So I made it measurable: codified ten AI-prose tells into STYLE-GUIDE.md and a pre-publish shell audit that catches them mechanically.

Read post
Build LogDevOps
#21
2026-05-286 min read

Two assumptions the pipeline held until it shipped

B8b's first end-to-end Telegram ship-tap exposed two bugs that had been invisible in every prior test. Neither was logic. Both were assumptions the pipeline had been making silently since the day the code was written.

Read post
Build LogAgentic AI
#22
2026-05-286 min read

Why the editorial pipeline's rewrite layer runs on a project-owned harness, not Archon

The Opus rewrite layer inside the editorial pipeline's de-AI-ish stack runs through a project-owned osascript Terminal harness, not a general orchestration framework. That choice was deliberate and narrow. Here's what it cost and what it bought.

Read post
AI ToolsBuild Log
#23
2026-05-218 min read

I built this with Claude Code. The bugs weren't where I expected.

Three days into a page-by-page audit of my own site, I realised the bugs Claude Code had left behind weren't logic errors. They were hypotheses it had inferred from context, presented as facts. The reflex I needed wasn't suspicion. It was verification.

Read post