"A scoring rule expressed as a browser lambda cannot be stored, served, or audited."
The version that worked
The composite lived in the frontend. Fetch the gauge rows, score each indicator, average within categories, apply weights, render the number. Recomputed on every page load, from data the page already had.
It was correct. It was fast. It had no bugs anybody found. By every test normally applied to a feature, it was fine — and it is worth sitting with that, because this is not a story about a defect. It is a story about a piece of correct code being in the wrong place, which is a much harder thing to notice.
The two consequences
The module's own docstring names them, and both are about reach rather than correctness.
It could not be read by anything else. Not the command line. Not a delegation brief. Not the assistant surface. The headline figure of the entire product existed only inside a rendering pass — which meant that the assistant docked beside the dashboard, looking at the same page, could not see the number the human was looking at.
It left no trace. Computed fresh each load, stored nowhere. So the one question a position summary invites — where has this needle been? — had no answer at all. Not an approximate answer, not an expensive one. None.
Why this is the closing lesson's setup
This quest's frame has appeared twice already: a measurement that cannot state its own limits is not a measurement, it is a claim. The date that did not say whose calendar. The percentile that did not say how long its window was.
Here it arrives in its final form, one level up. A number computed where nothing can inspect it cannot state its limits to anyone but the person looking at the screen. Every honesty mechanism this product built — the window on the row, the reference flag, the oldest input, the source string carrying its assumption — presupposes that something other than a browser can receive them. Auditability is not a separate concern from honesty. It is the delivery mechanism for it.
The frontend already had the rows. It was the natural place to write the scoring, and it worked on the first try. Nothing about it felt wrong while I was writing it, and no reviewer looking at that diff would have flagged a correct function in a sensible file. What surfaced it was not a code smell — it was a question nobody could answer: where has this needle been? The defect was invisible from inside the code and obvious the moment somebody asked the code something it could not hear.