Beyond UI
The goal is a UI that a working designer would sign their name to. That never comes from an agent
inventing a gradient hero from memory. It comes from studying what already wins, stealing the
structure, and composing it from libraries that solved the hard parts first.
Two failure modes this skill exists to kill:
- AI slop — centered hero, three feature cards, Inter everywhere, purple-blue gradient, emoji
icons,
transition-all duration-300 on everything, rounded-2xl bg-white/10 backdrop-blur.
- Skipping the scout — writing CSS from scratch because it is faster than looking anything up.
It is not faster. It is how the first failure mode happens.
Non-negotiables
- Install the upstream skills before you work — no bypass. Beyond UI is a composition layer over
the design skills named in
references/SKILLS.md. Run
node scripts/bootstrap-upstream-skills.mjs first (or the manual npx skills add … equivalents it
prints). If something cannot be installed, read its raw SKILL.md from the source URL and record
the miss in .beyond-ui/state.json → skills.missing. Never proceed as though a skill had been
read, and never paraphrase one from memory instead of fetching it.
- Scout before you design. No layout, palette, type scale or animation is chosen before
references/SCOUT.md has been executed and its findings written down. The scout result is an
artefact (.beyond-ui/scout.md), not a vibe.
- Reuse beats invention, every time. If a component, effect or animation exists in
references/LIBRARIES.md or references/COMPONENTS.md, use it. Hand-rolled is the fallback for
the 5% that is genuinely bespoke, and it must match the quality of what it stands in for. The same
applies to 3D: a scene that needs WebGL is built with Three.js / react-three-fiber (or
Threlte/TresJS, or model-viewer for a plain GLB) — via references/THREEJS.md — never with a
hand-rolled canvas, a CSS fake, or a video pretending to be interactive 3D.
- shadcn/ui is the component base. Every button, input, dialog, dropdown, table, form control,
toast, tab, sheet, tooltip and menu comes from shadcn/ui unless a documented reason forbids it
(see
references/SHADCN.md → "When not to use shadcn"). Raw <button>, <input>, <dialog>
and hand-built dropdowns are a defect, not a style choice.
- Motion is mandatory, but never decorative-only. Scroll reveals, state transitions, and
micro-interactions are expected. Animation that does not communicate hierarchy, causality or
state is noise. Every motion decision respects
prefers-reduced-motion.
- No unverified UI claims. "Looks great" is not evidence. A UI change is done when it was
rendered and looked at — screenshot at 3 viewports minimum (see § Verify).
- Do not ship generic copy. Placeholder lorem, "Empower your workflow", "Supercharge your team"
and unnamed customer logos are defects. Write real, specific, product-true copy or use the
project's own domain language.
- Preserve the project's identity. If the project has a brand, palette, type stack or design
system, that wins over your taste. Beyond UI upgrades craft, not identity, unless a redesign was
explicitly requested.
The workflow
0a BOOTSTRAP install the upstream design skills; verify they are present (no bypass)
0b RECON stack, brand, existing design system, motion budget, target audience
1 SCOUT galleries + prompt sources + registries, filtered to this product's domain
2 DIRECTION pick ONE direction, write the design contract (type, colour, spacing, motion, references)
3 COMPOSE shadcn base -> animated registry components -> effects; only then custom code
4 BUILD token-driven Tailwind, real copy, real states (loading/empty/error), responsive
5 CRITIQUE run the anti-slop checklist against the rendered page, fix, re-render
6 VERIFY screenshots at 3 viewports + reduced-motion pass + a11y pass + report
Steps 1 and 2 are the ones agents skip. They are the ones that decide whether the output looks
designed. Budget them: scout is ~15–25% of the work, not a formality.
0a. Bootstrap — mandatory, before anything else
node scripts/bootstrap-upstream-skills.mjs # add --global for user scope, --check to report only
This installs the upstream design skills this skill composes — impeccable, hallmark, ui-ux-pro-max,
taste-skill, Anthropic frontend-design, Addy Osmani frontend-ui-engineering, the Vercel skills
(web-design-guidelines, react-best-practices, composition-patterns, react-view-transitions,
react-native-skills), bencium design, accesslint, the Refactoring-UI port and skill-creator — via
the official npx skills CLI, cloning anything that is not CLI native (and keeping it as reference
material when a repo ships no SKILL.md). references/SKILLS.md holds the full matrix, the manual
commands, the conflict rulings, and the proof required that they were actually followed.
scripts/bootstrap-upstream-skills.sh is the bash equivalent for POSIX shells.
Rules: run it once per project (re-running is idempotent); if a source cannot be installed, fetch its
raw SKILL.md URL and read it instead — a one-line npx skills use <repo>@<skill> | claude also works
for a single skill without installing; record skills.installed / skills.missing in
.beyond-ui/state.json. Proceeding without this step, or claiming compliance with a skill that was
never fetched, is a hard fail.
0b. Recon (≤ 10 tool calls)
Scaffold the run: node scripts/scaffold-state.mjs creates .beyond-ui/state.json (from
assets/state-template.json) and .beyond-ui/scout.md, without overwriting an existing run.
Then read the project before deciding anything: framework and version (Next/Vite/Astro/Svelte/RN),
Tailwind version, existing components/ui (is shadcn already installed?), tokens/theme file, font
loading, image pipeline, package.json animation deps, and the actual product domain. Check whether
shadcn is present before running init — re-initialising a customised system is destructive.
Everything the scout returns is filtered by the recorded stack: a Tailwind v3 snippet in a v4 project
is the most common copy-paste break, and a framer-motion registry in a motion project installs a
second, conflicting animation library.
1. Scout
Execute references/SCOUT.md. It defines the source universe (50+ inspiration galleries, 50+
prompt/template sources, 45+ component and animation libraries) and the protocol for using it:
pick the product's domain and aesthetic keyword set, pull 6–10 concrete references from the
galleries, pull 3–5 structural prompts from the prompt sources, then map every visual element you
intend to build to a library that already ships it.
Output .beyond-ui/scout.md with: references: (URL + what is stolen from it), library map:
(element → library → exact install/registry command), rejected: (what you saw and why it does not
fit). This file is the design's justification; a UI with an empty scout file is unfinished.
2. Direction — the design contract
Write two things, in this order.
The Design Read — one line, before any code: surface, audience, and the visual language you are
reading the brief as. "Reading this as: B2B SaaS landing for technical buyers, with a Linear-style
minimalist language and one kinetic moment in the hero." If the brief is ambiguous on something that
changes the design, ask exactly one question rather than guessing wide.
Then the contract:
- Aesthetic name — one phrase ("Swiss editorial with a warm paper substrate", "dense terminal
brutalism", "soft neumorphic fintech"). Not "modern and clean".
- Type — display + body + mono faces, with the exact loading strategy. Banned as the only choice:
the default system stack, Inter-by-reflex, and any face the project already uses unless it is
genuinely the right answer.
references/DESIGN.md lists the vetted type sources.
- Colour — the actual values (OKLCH preferred), with the neutral ramp, one accent, one signal
colour, and the surface/elevation strategy. No purple-on-dark-gradient default.
- Spacing & rhythm — the scale, the section rhythm, the max content width, the grid.
- Motion — the easing set, the durations, the entrance strategy, the scroll behaviour, and the
reduced-motion fallback. Reference
references/MOTION.md.
- References — the 3+ real sites this direction is derived from.
- Non-goals — what this design deliberately will not do.
This contract is binding for the rest of the build. Deviating mid-build is how a page ends up with
five competing aesthetics.
3. Compose
Order is fixed, and it is the whole point of this skill:
- shadcn/ui first — install the primitives the surface needs (
npx shadcn@latest add …), then
restyle via tokens/CSS variables, never by forking the component into a one-off.
- Animated registries second — Magic UI, Aceternity, animate-ui, React Bits, Kokonut, Cult,
Syntax, Hover.dev, Motion Primitives, Animata; see
references/COMPONENTS.md for commands.
- 3D / WebGL third, when the brief is 3D — read
references/THREEJS.md first: it decides whether
3D is justified, picks the library (three.js → react-three-fiber + drei; Threlte/TresJS for
Svelte/Vue; model-viewer for a plain GLB viewer), and gives the asset pipeline (gltfjsx --transform, Draco + KTX2), the scene patterns, and the performance/accessibility guards.
- Effects fourth — Anime.js v4, GSAP (+ free plugins), Motion, Lenis, shaders, SVG animation,
liquid glass; see
references/LIBRARIES.md and references/EFFECTS.md.
- Custom last — only what is genuinely bespoke, written to the same standard, reusing the
project's tokens and the primitives' patterns (Radix behaviours: focus trap, aria wiring, escape).
4. Build
- Tailwind utilities bound to tokens; no magic hex in JSX. Dark mode is a token swap, not a second
stylesheet.
- Real states: loading (skeletons matching the real geometry), empty (with a real next action),
error, partial, offline, permission-denied. A page with only the happy path is unfinished.
- Responsive by construction: design the 390px layout, then the 768px, then the wide one. Reflow
intentionally — do not let the desktop layout shrink.
- Accessibility is not a polish step: semantic landmarks, one h1, labelled controls, visible focus,
contrast ≥ 4.5:1 in both themes, keyboard-complete flows.
5. Critique
Run references/CRITIQUE.md against the rendered page, not the source. It is a scored
checklist with hard fails (the slop detectors) and quality gates (hierarchy, rhythm, restraint,
detail). Fix every hard fail, then the lowest-scoring gate, then re-render before scoring again.
6. Verify
A UI change is complete when all of these were observed:
| Check |
Pass condition |
| Render |
Screenshots at 390 / 768 / 1440 (and the project's real breakpoints) — visually inspected |
| Reduced motion |
With prefers-reduced-motion: reduce, nothing critical disappears and no layout breaks |
| Keyboard |
Full interactive flow reachable and operable by keyboard, focus visible throughout |
| Console |
No errors/warnings from the new code; no hydration mismatches |
| Perf smoke |
No new long tasks on load; hero animation does not regress LCP; no CLS from late-loading fonts/images |
| 3D (when present) |
Poster is the LCP element; scene paused off-screen; frozen under reduced motion; asset bytes and throttled FPS recorded (references/THREEJS.md) |
| Token discipline |
No raw hex/px outside tokens; dark mode verified |
| Registry integrity |
Every added registry component still updates/compiles; unused ones removed |
Record the artefact paths in .beyond-ui/state.json, then emit the pre-emit critique stamp and report
in ≤ 8 lines: Design Read, direction chosen, files touched, libraries used, checks run with results,
and anything deliberately deferred. An axis below 3 in the stamp means a revision pass is still owed —
the work is not done.
Routing table — read the reference when you reach that step
| Need |
Reference |
Source universe + scout protocol + .beyond-ui/scout.md schema |
references/SCOUT.md |
| Component registries, exact install commands, Tailwind/peer compatibility |
references/COMPONENTS.md |
| shadcn/ui setup, theming, tokens, extension, when not to use it |
references/SHADCN.md |
| Motion: easings, durations, patterns, GSAP/Motion/Anime/Lenis choice |
references/MOTION.md |
| Effects: WebGL, shaders, SVG, liquid glass, grain, text effects |
references/EFFECTS.md |
| 3D scenes: WebGL/Three.js/R3F playbook, libraries, asset pipeline, performance |
references/THREEJS.md |
| Type, colour, spacing, layout, hierarchy craft rules |
references/DESIGN.md |
| Award-winning inspiration galleries (50+) |
references/INSPIRATION.md |
| Template/prompt sources (50+) |
references/PROMPTS.md |
| Library index — install facts, framework support, licence |
references/LIBRARIES.md |
| Upstream design skills this skill composes and defers to |
references/SKILLS.md |
| Anti-slop hard fails + quality gates, scored |
references/CRITIQUE.md |
| Copy, content shape, microcopy, SEO/OG surface |
references/CONTENT.md |
| Accessibility and performance rules constraining motion |
references/A11Y-PERF.md |
| Per-stack recipes (Next, Vite, Astro, Svelte, Vue, React Native) |
references/STACKS.md |
| Bootstrapping the upstream skills (mandatory phase 0) |
scripts/bootstrap-upstream-skills.mjs (.sh for POSIX shells) |
| Scaffolding the run state + scout artefact |
scripts/scaffold-state.mjs |
| The scout artefact to fill in |
assets/scout-template.md |
| The run state to fill in (skills, stack, registries, gates, evidence) |
assets/state-template.json |
| Machine-readable registry + npm facts (versions, commands, verified dates) |
assets/registry-sources.json |
| Worked end-to-end walkthrough |
references/EXAMPLES.md |
Traps
- Scout theatre. Opening three galleries, "getting inspired", and writing the same generic hero.
The scout file must name URLs and say what was taken from each.
- Skipping the bootstrap. Writing a landing page from memory while the upstream skills sit
uninstalled. If
skills.missing is non-empty, read the raw SKILL.md files before building.
- Registry roulette. Installing eight animated components that do not share an aesthetic. The
direction contract decides which two or three registries are in play.
- Version drift. Copying a Tailwind v3 /
framer-motion snippet into a v4 / motion project.
Check the stack first; adapt or skip.
- Motion everywhere. Every element fading up on scroll is its own kind of slop. Motion earns its
place by signalling hierarchy, cause, or state change.
- Glassmorphism as a personality. Blur + translucent borders + gradient blobs is one aesthetic,
not a default — and it needs the
@supports fallback plus a contrast check.
- Designing past the content. A beautiful shell around placeholder text ships as a placeholder.
- Ignoring the existing design system. A parallel set of tokens and components duplicates the
project's and breaks it. Extend, do not fork.
- Accessibility as a final pass. Retrofitted a11y is always worse and always more expensive.
- Copying a reference wholesale. Steal grammar (section order, density rhythm, motion behaviour),
never a full site's identity, copy, imagery or assets.
1---2name: beyond-ui3description: Use when building, redesigning, styling or polishing any user interface - landing pages, marketing or SaaS pages, dashboards, admin panels, web apps, mobile screens, or a single component - where the result should look designed by a senior product designer rather than generated by AI. Use it whenever the user asks for UI work or mentions a landing page, hero, pricing page, dashboard, shadcn, Tailwind, animations or transitions, or "make it look good/professional/modern", even if the skill is not named and the task looks small. It installs the upstream design skills, scouts award-winning galleries, template prompts and animated component registries, then composes from shadcn/ui and those libraries instead of inventing layout, motion and styling from scratch. Trigger phrases include "beyond-ui", "no AI slop", "make it beautiful", "award-winning", "awwwards level", "design a landing page", "build the UI", "redesign this page", "it looks AI generated", "add animations", "polish the UI".4license: MIT5---67# Beyond UI89The goal is a UI that a working designer would sign their name to. That never comes from an agent10inventing a gradient hero from memory. It comes from **studying what already wins, stealing the11structure, and composing it from libraries that solved the hard parts first.**1213Two failure modes this skill exists to kill:14151. **AI slop** — centered hero, three feature cards, Inter everywhere, purple-blue gradient, emoji16 icons, `transition-all duration-300` on everything, `rounded-2xl bg-white/10 backdrop-blur`.172. **Skipping the scout** — writing CSS from scratch because it is faster than looking anything up.18 It is not faster. It is how the first failure mode happens.1920## Non-negotiables21220. **Install the upstream skills before you work — no bypass.** Beyond UI is a composition layer over23 the design skills named in `references/SKILLS.md`. Run24 `node scripts/bootstrap-upstream-skills.mjs` first (or the manual `npx skills add …` equivalents it25 prints). If something cannot be installed, read its raw `SKILL.md` from the source URL and record26 the miss in `.beyond-ui/state.json` → `skills.missing`. Never proceed as though a skill had been27 read, and never paraphrase one from memory instead of fetching it.281. **Scout before you design.** No layout, palette, type scale or animation is chosen before29 `references/SCOUT.md` has been executed and its findings written down. The scout result is an30 artefact (`.beyond-ui/scout.md`), not a vibe.312. **Reuse beats invention, every time.** If a component, effect or animation exists in32 `references/LIBRARIES.md` or `references/COMPONENTS.md`, use it. Hand-rolled is the fallback for33 the 5% that is genuinely bespoke, and it must match the quality of what it stands in for. The same34 applies to 3D: a scene that needs WebGL is built with **Three.js / react-three-fiber** (or35 Threlte/TresJS, or `model-viewer` for a plain GLB) — via `references/THREEJS.md` — never with a36 hand-rolled canvas, a CSS fake, or a video pretending to be interactive 3D.373. **shadcn/ui is the component base.** Every button, input, dialog, dropdown, table, form control,38 toast, tab, sheet, tooltip and menu comes from shadcn/ui unless a documented reason forbids it39 (see `references/SHADCN.md` → "When not to use shadcn"). Raw `<button>`, `<input>`, `<dialog>`40 and hand-built dropdowns are a defect, not a style choice.414. **Motion is mandatory, but never decorative-only.** Scroll reveals, state transitions, and42 micro-interactions are expected. Animation that does not communicate hierarchy, causality or43 state is noise. Every motion decision respects `prefers-reduced-motion`.445. **No unverified UI claims.** "Looks great" is not evidence. A UI change is done when it was45 rendered and looked at — screenshot at 3 viewports minimum (see § Verify).466. **Do not ship generic copy.** Placeholder lorem, "Empower your workflow", "Supercharge your team"47 and unnamed customer logos are defects. Write real, specific, product-true copy or use the48 project's own domain language.497. **Preserve the project's identity.** If the project has a brand, palette, type stack or design50 system, that wins over your taste. Beyond UI upgrades craft, not identity, unless a redesign was51 explicitly requested.5253## The workflow5455```560a BOOTSTRAP install the upstream design skills; verify they are present (no bypass)570b RECON stack, brand, existing design system, motion budget, target audience581 SCOUT galleries + prompt sources + registries, filtered to this product's domain592 DIRECTION pick ONE direction, write the design contract (type, colour, spacing, motion, references)603 COMPOSE shadcn base -> animated registry components -> effects; only then custom code614 BUILD token-driven Tailwind, real copy, real states (loading/empty/error), responsive625 CRITIQUE run the anti-slop checklist against the rendered page, fix, re-render636 VERIFY screenshots at 3 viewports + reduced-motion pass + a11y pass + report64```6566Steps 1 and 2 are the ones agents skip. They are the ones that decide whether the output looks67designed. Budget them: scout is ~15–25% of the work, not a formality.6869### 0a. Bootstrap — mandatory, before anything else7071```bash72node scripts/bootstrap-upstream-skills.mjs # add --global for user scope, --check to report only73```7475This installs the upstream design skills this skill composes — impeccable, hallmark, ui-ux-pro-max,76taste-skill, Anthropic `frontend-design`, Addy Osmani `frontend-ui-engineering`, the Vercel skills77(`web-design-guidelines`, `react-best-practices`, `composition-patterns`, `react-view-transitions`,78`react-native-skills`), bencium design, accesslint, the Refactoring-UI port and `skill-creator` — via79the official `npx skills` CLI, cloning anything that is not CLI native (and keeping it as reference80material when a repo ships no `SKILL.md`). `references/SKILLS.md` holds the full matrix, the manual81commands, the conflict rulings, and the proof required that they were actually followed.8283`scripts/bootstrap-upstream-skills.sh` is the bash equivalent for POSIX shells.8485Rules: run it once per project (re-running is idempotent); if a source cannot be installed, fetch its86raw `SKILL.md` URL and read it instead — a one-line `npx skills use <repo>@<skill> | claude` also works87for a single skill without installing; record `skills.installed` / `skills.missing` in88`.beyond-ui/state.json`. Proceeding without this step, or claiming compliance with a skill that was89never fetched, is a hard fail.9091### 0b. Recon (≤ 10 tool calls)9293Scaffold the run: `node scripts/scaffold-state.mjs` creates `.beyond-ui/state.json` (from94`assets/state-template.json`) and `.beyond-ui/scout.md`, without overwriting an existing run.9596Then read the project before deciding anything: framework and version (Next/Vite/Astro/Svelte/RN),97Tailwind version, existing `components/ui` (is shadcn already installed?), tokens/theme file, font98loading, image pipeline, `package.json` animation deps, and the actual product domain. Check whether99shadcn is present before running `init` — re-initialising a customised system is destructive.100101Everything the scout returns is filtered by the recorded stack: a Tailwind v3 snippet in a v4 project102is the most common copy-paste break, and a `framer-motion` registry in a `motion` project installs a103second, conflicting animation library.104105### 1. Scout106107Execute `references/SCOUT.md`. It defines the source universe (50+ inspiration galleries, 50+108prompt/template sources, 45+ component and animation libraries) and the protocol for using it:109pick the product's domain and aesthetic keyword set, pull 6–10 concrete references from the110galleries, pull 3–5 structural prompts from the prompt sources, then map every visual element you111intend to build to a library that already ships it.112113Output `.beyond-ui/scout.md` with: `references:` (URL + what is stolen from it), `library map:`114(element → library → exact install/registry command), `rejected:` (what you saw and why it does not115fit). This file is the design's justification; a UI with an empty scout file is unfinished.116117### 2. Direction — the design contract118119Write two things, in this order.120121**The Design Read** — one line, before any code: surface, audience, and the visual language you are122reading the brief as. *"Reading this as: B2B SaaS landing for technical buyers, with a Linear-style123minimalist language and one kinetic moment in the hero."* If the brief is ambiguous on something that124changes the design, ask exactly one question rather than guessing wide.125126Then the contract:127128- **Aesthetic name** — one phrase ("Swiss editorial with a warm paper substrate", "dense terminal129 brutalism", "soft neumorphic fintech"). Not "modern and clean".130- **Type** — display + body + mono faces, with the exact loading strategy. Banned as the only choice:131 the default system stack, Inter-by-reflex, and any face the project already uses *unless* it is132 genuinely the right answer. `references/DESIGN.md` lists the vetted type sources.133- **Colour** — the actual values (OKLCH preferred), with the neutral ramp, one accent, one signal134 colour, and the surface/elevation strategy. No purple-on-dark-gradient default.135- **Spacing & rhythm** — the scale, the section rhythm, the max content width, the grid.136- **Motion** — the easing set, the durations, the entrance strategy, the scroll behaviour, and the137 reduced-motion fallback. Reference `references/MOTION.md`.138- **References** — the 3+ real sites this direction is derived from.139- **Non-goals** — what this design deliberately will not do.140141This contract is binding for the rest of the build. Deviating mid-build is how a page ends up with142five competing aesthetics.143144### 3. Compose145146Order is fixed, and it is the whole point of this skill:1471481. **shadcn/ui first** — install the primitives the surface needs (`npx shadcn@latest add …`), then149 restyle via tokens/CSS variables, never by forking the component into a one-off.1502. **Animated registries second** — Magic UI, Aceternity, animate-ui, React Bits, Kokonut, Cult,151 Syntax, Hover.dev, Motion Primitives, Animata; see `references/COMPONENTS.md` for commands.1523. **3D / WebGL third, when the brief is 3D** — read `references/THREEJS.md` first: it decides whether153 3D is justified, picks the library (three.js → react-three-fiber + drei; Threlte/TresJS for154 Svelte/Vue; `model-viewer` for a plain GLB viewer), and gives the asset pipeline (`gltfjsx155 --transform`, Draco + KTX2), the scene patterns, and the performance/accessibility guards.1564. **Effects fourth** — Anime.js v4, GSAP (+ free plugins), Motion, Lenis, shaders, SVG animation,157 liquid glass; see `references/LIBRARIES.md` and `references/EFFECTS.md`.1585. **Custom last** — only what is genuinely bespoke, written to the same standard, reusing the159 project's tokens and the primitives' patterns (Radix behaviours: focus trap, aria wiring, escape).160161### 4. Build162163- Tailwind utilities bound to tokens; no magic hex in JSX. Dark mode is a token swap, not a second164 stylesheet.165- Real states: loading (skeletons matching the real geometry), empty (with a real next action),166 error, partial, offline, permission-denied. A page with only the happy path is unfinished.167- Responsive by construction: design the 390px layout, then the 768px, then the wide one. Reflow168 intentionally — do not let the desktop layout shrink.169- Accessibility is not a polish step: semantic landmarks, one h1, labelled controls, visible focus,170 contrast ≥ 4.5:1 in both themes, keyboard-complete flows.171172### 5. Critique173174Run `references/CRITIQUE.md` against the **rendered** page, not the source. It is a scored175checklist with hard fails (the slop detectors) and quality gates (hierarchy, rhythm, restraint,176detail). Fix every hard fail, then the lowest-scoring gate, then re-render before scoring again.177178### 6. Verify179180A UI change is complete when all of these were observed:181182| Check | Pass condition |183|---|---|184| Render | Screenshots at 390 / 768 / 1440 (and the project's real breakpoints) — visually inspected |185| Reduced motion | With `prefers-reduced-motion: reduce`, nothing critical disappears and no layout breaks |186| Keyboard | Full interactive flow reachable and operable by keyboard, focus visible throughout |187| Console | No errors/warnings from the new code; no hydration mismatches |188| Perf smoke | No new long tasks on load; hero animation does not regress LCP; no CLS from late-loading fonts/images |189| 3D (when present) | Poster is the LCP element; scene paused off-screen; frozen under reduced motion; asset bytes and throttled FPS recorded (`references/THREEJS.md`) |190| Token discipline | No raw hex/`px` outside tokens; dark mode verified |191| Registry integrity | Every added registry component still updates/compiles; unused ones removed |192193Record the artefact paths in `.beyond-ui/state.json`, then emit the pre-emit critique stamp and report194in ≤ 8 lines: Design Read, direction chosen, files touched, libraries used, checks run with results,195and anything deliberately deferred. An axis below 3 in the stamp means a revision pass is still owed —196the work is not done.197198## Routing table — read the reference when you reach that step199200| Need | Reference |201|---|---|202| Source universe + scout protocol + `.beyond-ui/scout.md` schema | `references/SCOUT.md` |203| Component registries, exact install commands, Tailwind/peer compatibility | `references/COMPONENTS.md` |204| shadcn/ui setup, theming, tokens, extension, when not to use it | `references/SHADCN.md` |205| Motion: easings, durations, patterns, GSAP/Motion/Anime/Lenis choice | `references/MOTION.md` |206| Effects: WebGL, shaders, SVG, liquid glass, grain, text effects | `references/EFFECTS.md` |207| 3D scenes: WebGL/Three.js/R3F playbook, libraries, asset pipeline, performance | `references/THREEJS.md` |208| Type, colour, spacing, layout, hierarchy craft rules | `references/DESIGN.md` |209| Award-winning inspiration galleries (50+) | `references/INSPIRATION.md` |210| Template/prompt sources (50+) | `references/PROMPTS.md` |211| Library index — install facts, framework support, licence | `references/LIBRARIES.md` |212| Upstream design skills this skill composes and defers to | `references/SKILLS.md` |213| Anti-slop hard fails + quality gates, scored | `references/CRITIQUE.md` |214| Copy, content shape, microcopy, SEO/OG surface | `references/CONTENT.md` |215| Accessibility and performance rules constraining motion | `references/A11Y-PERF.md` |216| Per-stack recipes (Next, Vite, Astro, Svelte, Vue, React Native) | `references/STACKS.md` |217| Bootstrapping the upstream skills (mandatory phase 0) | `scripts/bootstrap-upstream-skills.mjs` (`.sh` for POSIX shells) |218| Scaffolding the run state + scout artefact | `scripts/scaffold-state.mjs` |219| The scout artefact to fill in | `assets/scout-template.md` |220| The run state to fill in (skills, stack, registries, gates, evidence) | `assets/state-template.json` |221| Machine-readable registry + npm facts (versions, commands, verified dates) | `assets/registry-sources.json` |222| Worked end-to-end walkthrough | `references/EXAMPLES.md` |223224## Traps225226- **Scout theatre.** Opening three galleries, "getting inspired", and writing the same generic hero.227 The scout file must name URLs and say what was taken from each.228- **Skipping the bootstrap.** Writing a landing page from memory while the upstream skills sit229 uninstalled. If `skills.missing` is non-empty, read the raw `SKILL.md` files before building.230- **Registry roulette.** Installing eight animated components that do not share an aesthetic. The231 direction contract decides which two or three registries are in play.232- **Version drift.** Copying a Tailwind v3 / `framer-motion` snippet into a v4 / `motion` project.233 Check the stack first; adapt or skip.234- **Motion everywhere.** Every element fading up on scroll is its own kind of slop. Motion earns its235 place by signalling hierarchy, cause, or state change.236- **Glassmorphism as a personality.** Blur + translucent borders + gradient blobs is one aesthetic,237 not a default — and it needs the `@supports` fallback plus a contrast check.238- **Designing past the content.** A beautiful shell around placeholder text ships as a placeholder.239- **Ignoring the existing design system.** A parallel set of tokens and components duplicates the240 project's and breaks it. Extend, do not fork.241- **Accessibility as a final pass.** Retrofitted a11y is always worse and always more expensive.242- **Copying a reference wholesale.** Steal grammar (section order, density rhythm, motion behaviour),243 never a full site's identity, copy, imagery or assets.