Visual verification is usually vibes: run the app, click around, decide it looks right, screenshot it for the record. The screenshot proves the app rendered once, in one person's environment, on one data set they happened to have. It is evidence about a moment, not about the system. Direct exists to make the evidence deterministic.
the screenshot problem
A screen's correctness depends on three things: the code, the data, and the environment (theme, viewport, fonts, time). Ordinary screenshots sample all three at once and freeze none. Reviewing a UI change against production data means reviewing against data that changes; reviewing against developer state means reviewing a state nobody else has.
The question Direct answers: how do you get every interesting screen of a product into a state a test can check? The answer is to make the screen a function of a URL and a declared world.
what a composition is
A Direct composition is a deterministic dev-only arrangement of a product's screens. Each composition declares its world as strict JSON: the exact data the screens render with, the fixed inputs, the seeded values. Every screen in the composition is reachable at a stable URL; driving a browser to the URL reproduces the screen exactly, because the world it renders is data, not ambient state.
The strict-JSON rule is the load-bearing part: the world is data with a schema, parsed and bounded like every other foreign value. A composition cannot smuggle a live service, a clock, or "whatever was in the database"; if the screen needs it, it goes in the JSON, where it can be reviewed, diffed, and versioned with the code it exercises.
how the checks run
Verification drives a real browser to the composition URLs and asserts on the rendered artifact: geometry bounds, contrast, focus order, overflow, and console cleanliness, at phone and desktop sizes. Because the world is fixed, the assertions are stable: the same page produces the same layout, so a check that passes today passes until the code or the declared world changes.
Soundfish and PeopleBlade keep preview compositions on this pattern; Jungle's design-system verification runs the same checks across the shared gallery. The suites catch the classes that matter for UI correctness: content overflowing its container at narrow widths, focus rings lost against themed backgrounds, elements that only exist in one data state the developer happened to have open.