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 fix for three AdSense rejections wasn't more calculators — it was honesty
A third 'low value content' rejection arrived on 1 August, days after a full remediation round had been submitted for review. A 15-agent root-cause analysis found what the July integrity sweep had already pointed at: fabricated trust signals, undated stale rate articles, and 38 pillar pages with zero visual content. The fix wasn't volume.
The portfolio had a shop floor. It just didn't have a till.
GA4 revealed one desktop visitor with 13+ sessions, seven minutes on /work/, and nowhere to act. A week later: hero band as shopfront, /work/ as the aisle, hire strip as the till. The retail frame isn't a metaphor — it's a diagnostic tool.
Two weeks of silent cron failures. One Saturday-morning digest read.
Nightly GSC and GA data pulls had been silently killed by launchd TCC every night since 20 June. No alert, no log noise anywhere I was watching. Fourteen nights of missing numbers, surfaced by the telemetry digest during a routine Saturday-morning review.
Technically clean, still unindexed: six pages that needed a crawl path before Google would find them
PR #153 was an ultracode review of six pages stuck at 'URL is unknown to Google' — five legal surfaces plus the stamp-duty calculator. Every technical check came back clean. The fix wasn't a technical one: it was body-prose internal links from six already-indexed articles, giving Google a crawl path to pages it had no reason to visit.
The YMYL pages weren't thin — they were stranded: zero inbound links, unnamed reviewers, and a TypeScript config enforcing nothing
Phase Q's three-lens assessment didn't flag content depth on UK Calculators' four money pages. It flagged link equity: forty-eight articles, zero internal links to the calculator set. Then reviewer attribution. Then a TypeScript config with strict: true declared and ignoreBuildErrors: true also set — which meant strict mode had never been a gate.




