Writing & build logs.
Essays on software development, web builds, and AI tooling. Plus build notes from what I'm actually working on right now.
The day-three mortgage draft cleared verification. The cluster had already shipped on day two.
On day three of a fourteen-day content run, the cron produced a mortgage rate-spike draft that cleared sentence-level verification. The same cluster had shipped the morning before. Sentence verification and cluster novelty are different problems — one belongs at the verification layer, the other doesn't.
The thirteen-session visitor who reshaped three pages
GA4 turned up essentially one Upwork-referral visitor with more than thirteen returning sessions. Seven minutes on /work/, no action taken. The sample size was one. The behaviour was deliberate enough to act on anyway. Three site changes followed in a single sprint.
Mortgage scored 20 and nothing shipped: the cron's zero-drafts firing is the verifier-corrective gate working
On Day 4 of 14, the cron ranked 150 clusters, placed mortgage first at calculator score 20, fetched the candidates, and produced zero drafts. That was correct. The verifier-corrective gate suppresses the draft when the ground is stale — silence is cheaper than shipping a duplicate pillar and retracting it.
Telemetry surfaced six invisible YMYL pages. The operator-side fixes didn't move them. Internal linking did.
After ga-telemetry and gsc-telemetry made six stranded YMYL pages visible, Phase 1.6's first move was operator-side: sitemap canonical fixes, IndexNow, twelve Request-Indexing nudges. The technical audit cleared every blocker. The pages stayed unknown. Internal linking — crawl-weight transfer from body prose — was the diagnosis the data forced.
The og:image that wasn't there: blank WhatsApp previews and a pre-ship check no CI runs
Sharing a captainrandom.co.uk album link on WhatsApp returned a blank white card. The site had structured data, a navigation spec authored by 16 parallel agents, and data-driven course stubs. It had no default og:image. The gap was invisible until a real phone surfaced it.




