Journal · 2026-07-19 · 2 min read
Why “make it look like this” doesn't survive an AI coding agent
A screenshot is not a specification. What it takes to turn a design intention into something an agent can be held to — and something you can measure after the render.
You paste a reference, say “like this, but ours”, and the agent produces something confidently adjacent. Spacing drifts, the type scale is reinvented, a radius changes for no reason. Nothing failed loudly. The instruction was never a contract — it was a mood, and a mood cannot be checked.
The two failures underneath
The first is that intention stays implicit: which parts of the reference you wanted, which parts were incidental, and which parts of your own page must not move. The second is that nobody looks afterwards. The diff gets reviewed as code, the rendered result does not get reviewed at all — so a visual regression ships as a green build.
What turns an intention into a contract
- Name the decision, not the screenshot: borrow this, keep that, lock the rest
- Make a human approve each clause before an agent is allowed to act on it
- Version the contract as a file on the branch, so it reviews like code
- Measure the rendered page against every approved clause — and report unknown when a clause could not be measured
That last one is the part people skip. A checker that cannot measure a clause has two options: guess, or say so. Guessing produces a green result that means nothing. RefKit returns unknown, because a pass you cannot trust is worse than no pass at all.
The pattern is the same one I keep arriving at from every direction: the model produces, the human authorizes, and the outcome has to be provable afterwards. Design is simply where that gap is easiest to see.