ワンクリックで
ss-review
Review UI code for design system compliance, accessibility, and best practices
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Review UI code for design system compliance, accessibility, and best practices
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | ss-review |
| description | Review UI code for design system compliance, accessibility, and best practices |
| argument-hint | [file-path] |
| allowed-tools | Read, Grep, Glob |
/ss-a11y/ss-audit/ss-lintReview the file: $ARGUMENTS
text-foreground, bg-brand, etc.)p-6 not p-[24px])shadow-[var(--shadow-card)])rounded-md, rounded-lg, rounded-2xl)data-slot attributecn() for className mergingReact.ComponentProps<>className prop overridefocus-visible styles on all interactive elementsaria-* attributes where neededprefers-reduced-motionalt text-webkit-overflow-scrolling: touchleading-none + tracking-[-0.02em]leading-snug + tracking-[-0.01em]leading-normal (no custom tracking)tracking-[0.05em] or tracking-wideline-height: 1.5 on display/heading text (too loose)size-* shorthand instead of w-* h-*ms-*/me-* instead of ml-*/mr-* (logical properties)duration-[var(--duration-fast)])The biggest reason a UI reads as "AI-generated" isn't ugly parts — it's mixed parts. Check that each axis below uses ONE value system-wide; flag a mix as a real issue, not a nitpick.
rounded-none panel with rounded-full buttons).currentColor.inner = outer − padding, not the same radius (which bulges).Provide:
The VISUAL gate — render the UI, screenshot it, and score what you actually SEE, not what the code says. Catches the tells that only show up in pixels (dead whitespace, cramping, a hero that doesn't dominate, fonts that didn't load, real rendered color, the squint "does this look AI-made" test) — the things /ss-score can't read from source. Renders empty/loading/error states too, then fixes and re-renders until it passes. Use as the final gate on any screen you can render.
Turn ONE design axis up or down as a coordinated, deterministic transform — "denser", "sharper corners", "more muted", "bolder", "flatter", "livelier". Not a vibe the model reinterprets each time; a defined ramp that moves many tokens together, respects the guardrails (8px grid, a11y floors, single accent, nested-radius), updates the lock, and re-runs the gate. Use this when a human saying "more X" would otherwise get an inconsistent one-off.
Apply a named StyleSeed motion to a component — either one of the 5 personality seeds (Spring/Silk/Snap/Float/Pulse × entrance/exit/hover/press/layout) or a distinctive keyword move from the motion library (toggle-flip, toggle-curtain, reveal-blur, pop-in, shimmer, …). Translates vibe words into framer-motion code from one source of truth.
Score a UI file's design quality 0-100 against StyleSeed's design language — per-category breakdown, the worst offenders, and a prioritized fix list. A quantified version of /ss-review.
Re-style a project to a named aesthetic — swiss, editorial, technical, warm-dtc, minimal-mono, brutalist-lite. A preset is a *coordinate* across the dial axes (radius + density + color + weight + motion) plus a font, accent family, and one signature move — applied coherently as a single identity, written to the lock, and re-gated. This is for mood words ("more editorial") that aren't one axis; for a single axis use /ss-dial.
Build a screen the way the StyleSeed reference demo was built — one command that ENFORCES the full loop (lock the look → build → score → fix to ≥80 → only then show). Use this instead of building UI free-hand; it closes the gap between "knows the rules" and "actually followed them."