The Lab
Where the code is the deliverable
Everywhere else on this site, code is a means: the pages, the demos, the documents. Here it is the thing itself. Three artifacts, all MIT licensed, all running in the open — because a designer claiming to ship code should hand you some rather than describe the experience of having done so.
Three artifacts
Open any one of them and read it
01
trustlayer.js
The decision logic behind four trust patterns, as tested functions: which verb a confidence score becomes, whether that confidence has earned belief (Brier score, expected calibration error), when to refuse to answer, and what to show while the model thinks.
Read it, run it, break it →02
trustlint
A deterministic linter for the shape of an AI answer — uncited figures, absolutes, hedging used as decoration, and the expensive failure of asserting confidently with nothing to assert from. It also states plainly what it cannot do: judge whether the answer is true.
Paste an answer, audit it →03
This site, torn down
How the thing you are reading is built, measured rather than described: no build step, a 22.8 KB stylesheet, two third-party domains, one enforced type scale — and an honest list of the gaps, including the one this page caught.
See the receipts →Why a lab at all
A principle with no failing state is a preference
The eight patterns in the pattern library came out of production work, and for years they lived where design principles usually live: in slides, in review comments, in my head. Reasonable people agreed with all of them and then shipped the naked confidence score anyway — because a principle you can nod at costs nothing to ignore.
Written as code, the same rules acquire a failing state. decide() reports review-without-reasons as a violation rather than a suggestion. calibrate() returns insufficient-data instead of a flattering number when the sample is thin. trustlint refuses to score truthfulness at all, and says why in its own output.
That is what The Lab is for: taking judgements I keep making in review and giving them somewhere to fail, so they can run without me in the room.