Build LogDevOps
#221
2026-06-125 min read

No Composer, no autoloader: the newsletter backend cPanel rewarded

The deployment target was a cPanel shared host with FTP access. Composer wants SSH or a committed vendor directory. Neither fits cleanly on shared hosting. The alternative was require_once, six PHP classes, and a 190-line schema that doubles as documentation. Six sprints in, the backend is completely understood.

Read post
Build LogAgentic AI
#222
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 LogDevOps
#223
2026-06-125 min read

Scheduling articles through Telegram taught me that cron is the wrong model

The article pipeline pipeline could draft and voice-fix articles but had no scheduling layer. Adding one took six sprints, not because the cron was hard but because scheduling through Telegram needs to capture intent, not timestamps. The grammar parser, the 2×2 keyboard, and the 48-hour grace policy are the same design decision expressed three different ways.

Read post
Build LogAI Tools
#224
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 LogBBBrain
#225
2026-06-115 min read

Every post-merge the idea park fix was the same fix

Provenance sanitisation, SCRIPT_DIR co-location, BB_CALLER lint — three fixes shipped after the idea park merged. They look like different problems. They’re not. All three are the audit trail recording what it could infer rather than what actually happened.

Read post