Build LogPipeline
#11
2026-08-215 min read

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.

Read post→
Build LogAdSense
#12
2026-08-205 min read

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.

Read post→
Build LogCopy
#13
2026-08-206 min read

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.

Read post→
DevOpsSEO
#14
2026-08-206 min 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.

Read post→
Build LogContent Pipeline
#15
2026-08-205 min read

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.

Read post→