Ten web pages, built four ways, each measured against the designer's Figma frame.
Every number below is what Fig emits — coverage (how much of the design is
accounted for) and parity (how much of it lands within tolerance) — plus the
hard parity_trustworthy gate. No self-assessment, no vibes.
Every page × every arm. cov = coverage
(match_score), par = parity within point-tolerance. The bar tracks coverage.
match_score is accounted nodes over all distinct nodes — design + app. It penalises both missing design elements and app-only extras, so you can't game it by adding junk.
Coverage says a node is present; parity says it's within tolerance of where the design put it. A page can be 100% covered and still fail parity — that's the signal your agent needs.
parity_trustworthy is true only when the schema is valid, the visual gate passes, everything's within tolerance, and there are zero warnings. It's the one thing the loop stops on.