I can miss a three-pixel padding mismatch in a screenshot; comparing the computed values gives me a number to check. I measure everything before I let myself look at the screenshot.
Eyeballing a screenshot is a worse check than it feels like in the moment. A three-pixel asymmetry between the left and right padding on a card does not register to a human glance, not because the eye is bad at its job but because three pixels is genuinely near the edge of what a glance resolves, especially on a screen you are not looking at full size, at the end of a long session, on the fourth review of the day. The screenshot looks fine. It is not fine. Nobody catches it until a designer opens dev tools weeks later and asks why one card sits slightly off from its siblings.
Instruments do not get tired and do not average towards "looks fine." Computed padding on every edge of an element, read from the actual rendered DOM rather than the source CSS, tells you the real number, not the number you intended to ship. Contrast ratio between text and its background, checked against the accessibility threshold for the font size in question, is a number, not an impression — a colour pairing can look perfectly legible to me and still fail the ratio a low-vision reader needs, because my own eyesight is not the test that matters.
The order matters as much as the check itself: measure first, look second. If I look at the screenshot before I have the numbers, the numbers become confirmation-seeking rather than discovery — I glance at a padding value already believing it is fine, and I read it as fine even when it is off by four pixels, because I am pattern-matching against my own prior impression rather than reading the number cold. This is not a moral failing, it is just how a tired human brain checks its own work; the fix is not trying harder, it is changing the order so the tired part of the process never gets to go first. Reversing the order, measurements before the human look, means the human look becomes a sanity check on a finding rather than the finding itself.
In practice this means every visual change gets checked against a specific list before anyone looks at a picture: padding and margin symmetry per edge, whether sibling elements diverge from each other when they should match, column and baseline alignment, whether a background extends to cover its content or stops short and leaves a visible gap at the bottom, overflow, touch target size, contrast, and whether spacing values actually match the design tokens they are supposed to reference rather than drifting to some nearby pixel value that happened to look right in the moment. Most of that list is invisible to a glance and completely visible to a script that reads computed styles.
This is not a replacement for human judgement, and it should not be one — a script cannot tell you whether a layout is ugly, only whether it is symmetric, and those are different questions. What it replaces is human judgement being asked to do a job it is bad at: precise measurement under time pressure, at the end of a long review pass, on the fourth surface of the day. Once the numbers are in front of me, my job is the part I am actually good at, which is deciding whether the thing that measures correctly also reads well, feels balanced, and matches the intent behind the design.
I have stopped accepting "looks correct" as a verdict on any visual surface, from an agent or from myself, unless it comes with the measurements behind it. The screenshot is the record. The numbers are the evidence. Looking is the last step, not the first, and doing it in that order is the only way I have found to catch the failures that a glance reliably misses.