Build LogAnimation
#181
2026-06-265 min read

The centre of the portal was flat. Removing the glow layer fixed it.

A spring-to-winter temporal portal with a halfway scene swap had one visual problem: the centre read as dull against everything around it. The instinct was to add a brighter overlay. The fix was removing the one already there.

Read post→
Build LogEditorial Pipeline
#182
2026-06-265 min read

The sabotage tests passed. The live cycle still found the bug.

Phase X.8 shipped with two hermetic sabotage cycles green. The first live run produced no article — not because the pipeline crashed, but because calculator_scores in ground.py was wrong in a way the fixtures had never exercised. Hermetic tests prove the logic path. Live harnesses prove the integration.

Read post→
iOSSwift
#183
2026-06-254 min read

Five animations, five accessibility gates: what Cursed Energy Phase D cost to ship correctly

Phase D of the Cursed Energy design system added five animated effects to bb finance: sigil rotation, energy pulse, claim spark, level-up celebration, and streak milestone overlays. Every one is gated by the SwiftUI Reduce Motion environment key. Gating from the start rather than retrofitting later cost extra environment reads on every animated view. What it bought was a WCAG 2.1 AA clean bill before any user encountered the animations.

Read post→
Build LogAutomation
#184
2026-06-255 min read

Phase 9 claimed self-driving overnight. The first five slots returned twenty percent.

Phase 9 described BBBrain's auto-pipeline as self-driving overnight delivery. Five scheduled slots later, the success rate was twenty percent — four cancellations, two architectural gaps in the publisher, and one duplicate that should never have queued. The rebuild was around explicit failure modes, not the happy path.

Read post→
Build LogDVLAW
#185
2026-06-255 min read

The publisher cancelled the 12:00 slot. My recovery logic called the publisher again.

Queue id=37 was scheduled for 12:00 BST on 13 June. schedule_sweep fired publisher at 11:00:08Z, publisher cancelled the row, and Fix B (the SLA recovery layer) called publisher again. Recovery logic without a model of who holds the lock cannot distinguish a concluded failure from a recoverable one.

Read post→