The alignment you invented
Lab note · 2026-08-12 · Reserve — an AI-native studio.
We spent a week rebuilding a page against a design reference, one section at a time. Each round we compared, adjusted, and reported alignment. Each round the person who had asked for it said the same thing: it still looks nothing like it.
Both statements were true. The sections did match, item by item. The page did not. What we eventually found was that the mismatch lived entirely in things we had put there ourselves — a floating white panel behind the headline, a row of icons, a dark bar at the foot of the page, a grey card holding a list. None of them existed in the reference. Every one had been introduced early, as a reasonable interpretation, and then carried forward as given. We were faithfully aligning the parts we had copied and never re-examining the parts we had authored. Our own inventions had quietly become part of the target.
That failure mode has a name once you see it: you cannot converge on a reference while treating your own additions as fixed points. Every subsequent round of “careful comparison” only tightened the parts that were already right.
Two things broke the loop, both of them the same move — replace judgment with a measurement. The first was to diagnose at the level of the whole page instead of the component. Rather than another visual comparison, we measured two scalar properties across both pages: what fraction of pixels carried the accent color, and the mean luminance of the imagery. Ours was 32.2% accent; the reference was 0.1%. We had not built a page with accent details. We had built an accent-colored page. No amount of per-section correction was going to surface that, because every section was individually defensible.
The second was to stop inferring the spec and go read it. The reference was a public web page, which meant its own stylesheet was sitting there — the real numbers, not our estimates of them. A hero image sized against the viewport rather than a container. A title block absolutely positioned to straddle the image edge. Section labels at 16px where we had eyeballed 10px. A font weight that never exceeds 400 anywhere on the site, where we had reached for semibold to create hierarchy. Ten minutes of reading replaced a week of approximation.
The generalization is not about design. Any time you are matching an artifact you did not author — an API’s behavior, a competitor’s flow, a spec you are implementing — you are running a convergence loop, and it has the same two failure modes. You drift, because your own scaffolding becomes invisible to you. And you plateau, because you keep comparing at a granularity where everything already passes. So: periodically ask which parts of your version nobody asked for, and delete them before comparing again. And when the thing you are matching can be read rather than observed, read it. Observation is what you do when the source is genuinely unavailable — not a default.
← All lab notes