Writing & build logs.
Essays on software development, web builds, and AI tooling. Plus build notes from what I'm actually working on right now.
The bass portal doubled as a scene swap. The hole geometry already owned the reveal.
A bass-driven radial mask opens a hole in a spring panorama to reveal winter behind it. When the track hits its midpoint, the same mask — scaled to frame-covering size — swaps the two scenes without a cut. The reveal mechanism was already running from frame one.
The diff check passed forever. That was the bug.
A test that checked whether verify.py was modified by a wiring PR became trivially true the moment PR #43 squash-merged. Phase X.8 replaced it with replay hashes, pre-registered gates, and hermetic sabotage cycles — tests designed to fail when they should.
Bass as a seasonal portal: routing the kick into a radial alpha mask
The captain-random visualiser stacks two panoramas: spring in front, winter behind. The spring layer carries a radial alpha mask whose radius tracks bass energy. When the kick hits, the mask opens and winter shows through; when the energy decays, spring closes back over it.
One PR, three game systems: why pure generators kept the ledger honest
Shipping streaks, quests, and levels as a single PR forced a specific architecture: pure generators with no side effects, persisted targets decoupled from quest logic, and celebration overlays computed after state transitions. This is the constraint that produced those decisions.
Real quests, broken buttons: how Phase C and N closed bb finance's behaviour loop
Phase C replaced mockQuests with a generator that reads real transaction history. Phase N found that the quest blocks were non-interactive labels and the streak's Check In button opened the wrong screen. Both sprints were necessary. Only together did they close the loop.




