Review pattern
A zero-data state that doesn't say what "zero" means
A "0 projects" list rendered as a bare box is indistinguishable from a loading or broken state. Adding an explicit heading, one explanatory sentence, and a create action removes the ambiguity.


What was actually checked
Viewport 1024×700 · Chromium (Chrome for Testing) 153.0.8010.12
hasHeading: false · hasExplanationNode: false · hasCallToAction: false · explanatory text length: 0
hasHeading: true · hasExplanationNode: true · hasCallToAction: true · explanatory text length: 162 characters
Reproduction
node review-pattern-evidence/02-empty-projects-scope/capture.mjs (Node + playwright-core; loads the fixtures below over file:// and screenshots both states)Fixture: review-pattern-evidence v1, scenario 02, captured 2026-09-17
What this doesn't prove
- Synthetic, hand-built HTML/CSS fixture — not a capture of the live UIProof product or any real customer UI.
- Assertion is limited to static DOM content (node presence + text length) in a single rendered snapshot; it does not evaluate real loading states, real API failures, or i18n.
- No network, no server, no auth, no email, no persistence is exercised or claimed. The "0 projects" count is hard-coded markup, not queried data.
Provenance: Hand-authored standalone HTML/CSS fixture, executed once via a disposable Playwright-managed Chromium; not derived from a real customer UI. Editorially approved by Controller review on 2026-09-17.
Read more in the visual release review guide, or use the release-review checklist on your own release.