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 Pipeline Conflated failed-* with Successful Publishes. Skipped Hit 7.
Ten cron cycles from 30 June to 13 July produced one ready draft and zero auto-publishes while every log showed a clean exit. The mechanism: draft.py treated failed-* index entries identically to successful publishes — permanently consumed. Skipped climbed from 2 to 7 before the root cause surfaced.
AdSense called it low value content. The fix was structural: hub pages, media formats, rate article honesty.
Google rejected the UK Calculators AdSense application on content grounds, not ads configuration. Three structural problems drove the verdict, and fixing all three took three weeks before the re-review went in.
Good copy is a reader-side audit. My site failed it twice.
Two copy bugs in the same two-week window. The NAPA SEASON body prose gave Suno the authorship. The /contact/ timelines note read as a pre-rejection to anyone with urgent work. Both made complete sense when I wrote them. Neither survived a cold read.
I wrote gsc-telemetry with no pip dependencies. It found six invisible pages in four days.
Building ga-telemetry and gsc-telemetry as stdlib-only Python skills removed the friction that keeps monitoring tools from running reliably. The daily digest surfaced six pages showing “URL is unknown to Google” four days after deployment. The ultracode audit found no technical blockers. The fix was a crawl path, not a configuration error.
Ten cron cycles, one ready draft — draft.py had no concept of retry
From 30 June to 13 July, ten cron cycles ran clean and the skipped counter climbed from 2 to 7. The root cause: draft.py treated any index entry — including failed-* — as permanent completion. Shipped and failed needed opposite treatment and got the same.




