SEOBuild Log
#191
2026-06-236 min read

Eight cannibalisation pairs, one prefix strip, one PR

A numeric prefix in every calculator slug had created eight cannibalisation pairs — Google couldn't determine which URL was authoritative, so neither ranked with confidence. The fix required one atomic operation across content, routing, and the internal link graph: universal prefix strip, 23 permanent redirects, every MDX cross-link repointed. Not three PRs. One.

Read post→
Build LogiOS
#192
2026-06-235 min read

The 4-bit LLM hallucinated my Halifax statement. A band-based parser fixed it.

bb finance's Phase H spike wired a 4-bit quantised Llama 3.2 1B as the primary PDF extraction route. On real Halifax statements it hallucinated at a destructive rate — page 3 has 34 transactions; the model returned something else. PF-002 disabled the LLM path and replaced it with a deterministic band-based parser that lands 54 of 54.

Read post→
Build LogDVLAW
#193
2026-06-235 min read

The publishing queue ran at 20% success rate. Fixing it took three changes that only work together.

Four autonomous publishing slots expired before the pattern became clear. Sibling cancellation, slot fallback, and a missed-slot alarm are a set — without all three, the queue degrades silently.

Read post→
Build LogDVLAW
#194
2026-06-225 min read

20% in 72 hours: rewriting the slot scheduler's SLA recovery

Twenty percent autonomous success across five scheduled slots in 72 hours. The substitute pool was running but consuming the wrong inventory — draining future windows to cover present failures. Three mechanisms and a first-class slot state machine fixed it.

Read post→
iOSSwift
#195
2026-06-225 min read

Four quest types. None of them read your transactions.

An iOS budget app shipped a gamification layer backed by a hardcoded mock array. Phase C replaced it with QuestGenerator — a pure function that derives up to four quests per day from real transaction history. What changed wasn’t the number of quests. It was whether the quests knew anything about the user.

Read post→