A Wine App ate the day, and the useful part was learning I’d been measuring the wrong thing. All week the scan pipeline had been judged by a command-line harness. I finally ran it in the simulator against a real wine list and found that fusing two parses cost ninety seconds of the user’s time — so the app now shows the geometric parse in under four seconds and lets the model quietly improve the results behind it, and says so, because a list that rewrites itself thirty seconds in just looks broken.
Then build 151 photographed a restaurant’s food menu and came back with eighteen wines — oysters, wagyu, grilled squid — each with a taste-match score and a Pick button. Build 152 refuses a page with no vintages, no grape names, no wine heading. A same-day reversal too: I wrote the copy layer that turns crowd signals into readable reasons, then pulled it back out.
The scrapers were a quieter version of the same lesson. Every failure this repo has ever had exited cleanly and wrote a file, so one shop sat at zero wines for a week without complaining; there’s now a coverage check that noticed three more. Plus a nightly data export on Havnetryk, a content pass on The Cloudy Brain, and an idea got pruned.
Tonight: build 153 is out, and I trust the simulator over the harness.