ICN Visual Review Checklist
Use this list before any visual explainer ships — public website figure, doc figure, Astro/SVG component, deck slide intended for outside audiences. Doctrine is in the ICN Visual Explainer Bible. This file is the gate.
A visual that fails any item is not shippable. Document the failure on the brief; do not ship around it.
1. Source grounding
- The brief lists source anchors in the file paths under bible §2.
- Every claim made by the visual is supported by one of those anchors.
- Where the visual contradicts a higher-priority anchor, the visual has been revised — not the anchor.
- Anchors have been re-checked against
mainwithin the last 30 days, or sooner if a phase transition occurred.
2. Truth label
- The visual carries one of the seven labels from bible §3:
implemented / current UI,repo-grounded public explainer,repo-grounded architecture explainer,illustrative direction,future-state / roadmap,historical,do not use. - The label appears in the brief, in the visible figure caption / chip / alt text wherever the asset lands, and in the filename if applicable.
- If the visual sits between two labels, it carries the less optimistic one.
3. Vocabulary
- No prohibited terms in bible §5: no
wallet, nobalance, nopayment, nocurrency, notoken, nocoin, notransactionfor ICN-native primitives. - Preferred vocabulary used where applicable:
identity,standing,mandate,obligation,allocation,settlement,unit,position,receipt,provenance. - No crypto / web3 / token framing.
- External systems (bank transfer, ACH, currency) named only when the visual is specifically describing the external system.
4. Accessibility floor
- Meaning carried by structure + label + icon silhouette, not color alone. Verified by grayscale pass.
- WCAG 2.2 AA contrast met for text and meaningful graphics (4.5:1 body, 3:1 large text / UI). Both themes.
- Silhouette-distinct at 16 px for any icon-bearing element.
- Alt text or
aria-labeldescribes the claim, not the chrome. - No auto-playing motion; reduced-motion preference honored; motion never the sole carrier of state.
- Tap targets ≥ 44×44 CSS px where the visual depicts a real interactive surface.
- First reading layer requires no expert vocabulary; jargon links to a glossary entry.
- Asset weight reasonable for 2 Mbps on a low-end device.
5. Substrate honesty
- No production-readiness claim across the substrate.
- No formal NYCN pilot claim. NYCN is the intended first cooperative partner.
- No live multi-coop federation claim. The federation primitives exist; live federation does not.
- No complete mobile / member app claim. The unified member surface is illustrative direction.
- Action-card runtime depicted as three of five currently emitted source paths if all five are shown — or labeled
future-state / roadmap. - K3s deployment depicted as homelab-class, not production multi-tenant.
- Numbers (LOC, tests, crates, phases) match `STATE.md` / `PHASE_PROGRESS.md`.
6. Kernel / app boundary
- No kernel-side concept depicted importing a domain semantic (trust score, member status, governance rule) — that violates the meaning firewall.
- Where the visual depicts policy → constraints, it shows the boundary at which domain semantics convert to generic
ConstraintSet/PolicyDecision. - App-side concepts are not depicted inside the kernel box.
7. Scope / package boundary
- No NYCN-specific copy, vocabulary, fixtures, branding, or partner reference in a generic ICN asset.
- No Summit-specific copy or branding in a generic ICN asset.
- No real cooperative names, real members, real partners.
- Fictional entities and members read as examples (see bible §8).
8. Visual grammar
- The visual extends or references an existing primitive (
ClosureLoop,ScopeModel,ProvenanceTrail,MemberSurface) where applicable, rather than inventing a parallel grammar. - Iconography drawn from the canonical symbol family in `website/src/data/icons.ts` and `Icon.astro`. No parallel icon systems.
- Layout obeys the design language: civic, calm, legible, mobile-first.
- No anti-patterns from `ICN_VISUAL_SYSTEM.md` §7 (corporate SaaS sludge, crypto-bro futurism, network-globe nonsense, bureaucratic deadness, custodial-finance framing).
9. Generated-image rules (where applicable)
- If any input was generated by an image model, the asset is treated as a sketch only.
- The sketch is not load-bearing. It is not on the public website. It is not in canonical docs. It is not in a deck shown outside the project.
- If the visual ships, it has been rebuilt as Astro / SVG / source asset per bible §12.
- Every glyph of generated text has been verified against its source (bible §11.1). Hallucinated endpoints, garbled UI labels, invented numbers, plausible-but-wrong schema fields have been removed or replaced with verified strings in the source build.
- No fake UIs with plausible-looking real data.
- No fixture data that could plausibly be read as real member personal data.
10. Production-source rule
- If the visual is load-bearing — homepage, doc front-matter, public-facing diagram, deck hero, in-product surface — it ships as a source asset (Astro/SVG component or hand-authored SVG using design tokens).
- PNG-only is not used for load-bearing visuals.
Sign-off
A visual is ready to ship when this checklist is fully checked and recorded against the brief.
A failing item is documented on the brief. Where the failure is structural (visual cannot reach the floor), the asset moves to do-not-use and a follow-up brief is opened.