bb financeiOS
#186
2026-06-245 min read

I had the Accounts calendar scoped as one level. Mid-design I deepened it to three.

Phase K shipped a horizontally-scrollable daily-activity strip on the Accounts screen. Phase O was meant to replace it with a calendar — I had a compact, single-level surface already scoped. Mid-design I deepened the ask to full-screen plus day mode, and a back-nav regression in round-2 device QA explains why that was the right call.

Read post
DVLAWPipeline
#187
2026-06-246 min read

Phase B was hitting 20% autonomous success. The slot had never existed in the schema.

Five queue rows tried and rejected in three seconds. Three days of SLA fixes, substitute logic, and alarms, all patching around the same absence. The 20% pipeline success rate wasn't a scheduling problem — there was no schema entity for the thing being scheduled.

Read post
Build LogiOS
#188
2026-06-246 min read

The Accounts screen took four iterations. Each one bought fidelity by spending scope.

Sprint 2 shipped a SwiftUI list with CRUD. Phase K rebuilt it into a module stack with a trend chart and activity strip. Phase O turned the strip into a three-level calendar flow. Round-2 device QA on AnF found the back-nav bug that came with it.

Read post
SEOBuild Log
#189
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
#190
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