ui-score
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.
- License 许可
- MIT
- 最近更新
- 2026-10-22
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- ui-score
- risk
- unknown
- source
- https://github.com/bitjaru/styleseed/tree/main/engine/.claude/skills/ss-score
- license
- MIT
- date_added
- 1782864000000
- description
- 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.
- source_repo
- bitjaru/styleseed
- source_type
- community
- license_source
- https://github.com/bitjaru/styleseed/blob/main/LICENSE
03 SKILL.md 正文
Design Score
When to Use
Use this skill when you need 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.
/ss-review tells you what's wrong. /ss-score tells you how good it is
overall and what to fix first — a single number plus a category breakdown, so
you can track UI quality like you track test coverage.
When NOT to use
- For a quick pass/fail before committing → use
/ss-lint - For a full prose audit with fixes → use
/ss-review - For non-UI files (logic, config) — scoring is meaningless
What to score
Score the file (or each file in a directory) on six weighted categories that map to the design language. Total = 100.
| Category | Weight | Reads from |
|---|---|---|
| Color discipline | 18 | DESIGN-LANGUAGE §1, §18, §72 + VISUAL-CRAFT §C4 |
| Hierarchy & typography | 18 | §2, §3, §4, §16 + Font Size table + VISUAL-CRAFT §C2 |
| Layout & rhythm | 14 | §13, §14, §15, §61 + VISUAL-CRAFT §C1 |
| Cards & elevation | 12 | §7, §8, §12, §1 + VISUAL-CRAFT §C3 |
| States & a11y | 18 | §11, §70, §71, §72 + VISUAL-CRAFT §C3 |
| Motion & interaction | 8 | §24, §59 + engine/motion |
| Coherence | 12 | VISUAL-CRAFT §C0 (one choice per axis) |
How to score each category
For each category, start at full marks and subtract for violations you find by reading the code. Be specific and evidence-based — cite the line.
Color discipline (20) — deduct for: any #000/text-black (−4 each, cap −8);
more than one accent hue used decoratively (−5); emoji used as UI icons (multi-color,
breaks single accent) (−5); a normal/OK/"보통" state shown in a status color instead of
neutral grey (−4); status color on most/every row (no severity hierarchy) (−4);
decorative hues (gold stars, rainbow category dots) instead of accent/grey (−3);
hardcoded hex where a semantic token exists (−2 each, cap −6); status conveyed by color
alone (−4).
Hierarchy & typography (20) — deduct for: number/unit not ~2:1 (−4); font
sizes off the Font Size table / text-[var(--…)] for size (−5); everything the
same weight, no clear primary (−5); cramped or wrong line-height on body (−3).
Layout & rhythm (15) — deduct for: content on bare background, not in cards
(−6); px-4/px-8/mx-4 instead of px-6/mx-6 (−3); same section type
repeated in a row (−4); no space-y-6 rhythm (−3).
Cards & elevation (15) — deduct for: 1px borders doing separation work that tone+shadow should (−4); shadows over ~8% opacity / visibly heavy (−4); no card/background tone separation (−5).
States & a11y (20) — deduct for: missing empty/loading/error state on a data
surface (−5 each, cap −10); contrast below 4.5:1 body / 3:1 large (−6); touch
target < 44px (−4); no visible focus / outline:none (−5); icon-only control
without aria-label (−3).
Motion & interaction (8) — deduct for: random/ad-hoc fades instead of a named
seed/keyword (−3); motion that delays content or blocks an action (−4); no
prefers-reduced-motion handling on custom motion (−3); scroll-linked/parallax
(forbidden, §59) (−5).
Coherence (12) — the "one choice per axis" laws (VISUAL-CRAFT §C0). Deduct for
each axis that is mixed rather than unified across the file: mixed radius
personalities, e.g. sharp panel + pill buttons (−5); two+ competing accent hues used
for emphasis (−4); mixed shadow languages / light directions (−3); mixed icon
families, fill modes, or stroke weights (−3); same radius on a nested element instead
of inner = outer − padding (−2); inconsistent control heights for buttons/inputs
(−2). This is the category that most predicts "looks AI-generated" — weight evidence
of system-wide consistency, not per-component prettiness.
Clamp each category at 0. Sum to a total.
Output format
## Design Score: 70 / 100 (src/app/Dashboard.tsx)
████████████████░░░░░░ C-
Color discipline 13/18 ▓▓▓░ #000 headings (l.12,40); orange+blue+green accents (l.28-34)
Hierarchy & typography 15/18 ▓▓▓▓ number/unit 1:1 on hero (l.18)
Layout & rhythm 11/14 ▓▓▓░ two identical KPI rows (l.22-31)
Cards & elevation 8/12 ▓▓░░ 1px borders doing separation (l.22)
States & a11y 11/18 ▓▓░░ no empty/loading state; focus ring missing (l.55)
Motion & interaction 6/8 ▓▓▓░ default fade, not a named seed
Coherence 6/12 ▓▓░░ sharp cards (l.22) + pill buttons (l.48); 3 accent hues (§C0)
### Fix first (highest score gain)
1. Add empty + loading states to the orders list → +7 states (§71)
2. Unify radius (pick soft 8-12px) + collapse to one accent → +9 coherence+color (§C0, §2)
3. Drop the 1px borders, use tone + ≤8% shadow → +4 cards (§7)
Re-score after: ~92 / 100.
Use letter bands: 90+ A · 80-89 B · 70-79 C · 60-69 D · <60 F.
Gate mode (use this as the Quality Gate before showing the user UI)
The Quality Gate (CLAUDE.md / AGENTS.md) is /ss-score run as a loop, not a one-off:
- Score the just-generated UI.
- If < 80, apply the "fix first" list (use
/ss-reviewto make the edits), then re-score. - Repeat up to ~3×, or until ≥ 80.
- Present the UI with the final score and a one-line "fixed: …".
The pass bar is a floor, not a ceiling — get to ≥ 80 and stop; don't chase 100. The point is that no first-draft, obviously-incoherent UI reaches the user. Especially never ship below 80 with a rainbow status list, emoji icons, two accents, or missing states — those are the exact tells the gate exists to catch.
Rules
- Read the file — score from real evidence (line numbers), never guess.
- Order the "fix first" list by score gain, not by severity alone — the goal is the fastest path to a better number.
- For a directory, print a one-line score per file, then the lowest-scoring file's full breakdown.
- Don't auto-edit in plain scoring.
/ss-scoremeasures;/ss-reviewand/ss-motionfix. In Gate mode (above) you do fix-and-re-score until the floor is met. - As a gate, ≥ 80 is a floor before showing the user — but don't over-polish: chasing 95→100 to delay shipping is worse than shipping a clean 85.
Limitations
- Use this skill only when the task clearly matches its upstream source and local project context.
- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.
- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.
04 同仓库更多 Skills
testing-best-practices
Laravel test design and review. Use when selecting coverage, naming or structuring tests, choosing assertions or test data, isolating dependencies, testing HTTP or security boundaries, improving suite performance, or reviewing test value. Use framework guidance or search-docs for Pest and PHPUnit syntax.
tailwindcss-development
Always invoke when the user's message includes 'tailwind' in any form. Also invoke for: building responsive grid layouts (multi-column card grids, product grids), flex/grid page structures (dashboards with sidebars, fixed topbars, mobile-toggle navs), styling UI components (cards, tables, navbars, pricing sections, forms, inputs, badges), adding dark mode variants, fixing spacing or typography, and Tailwind v3/v4 work. The core use case: writing or fixing Tailwind utility classes in HTML templates (Blade, JSX, Vue). Skip for backend PHP logic, database queries, API routes, JavaScript with no HTML/CSS component, CSS file audits, build tool configuration, and vanilla CSS.
laravel-best-practices
Apply this skill whenever writing, reviewing, or refactoring Laravel PHP code. This includes creating or modifying controllers, models, migrations, form requests, policies, jobs, scheduled commands, service classes, and Eloquent queries. Triggers for N+1 and query performance issues, caching strategies, authorization and security patterns, validation, error handling, queue and job configuration, route definitions, and architectural decisions. Also use for Laravel code reviews and refactoring existing Laravel code to follow best practices. Covers any task involving Laravel backend PHP code patterns.
infer-conventions
Use this skill to analyze how a Laravel application is actually written and record its conventions as shared rules. Trigger when the user wants to detect, infer, document, or standardize project conventions or coding style, set up or grow `.ai/rules`, resolve mixed or conflicting patterns (e.g. "are we using Form Requests or inline validation?"), or onboard agents and teammates to "how we do things here". Covers: a systematic sweep of ~49 Laravel convention dimensions (validation, models, architecture, testing, frontend, database, console), open-ended house-pattern discovery, conflict reporting, and recording rules scoped to the right paths via the Boost `record-rule` MCP tool. Only run this skill when the user explicitly asks for it; never start a sweep as part of another task. Do not use for one-off code review, enforcing formatting a linter already handles, or editing `.ai/rules` files by hand.
inertia-react-development
Develops Inertia.js v2 React client-side applications. Activates when creating React pages, forms, or navigation; using <Link>, <Form>, useForm, or router; working with deferred props, prefetching, or polling; or when user mentions React with Inertia, React pages, React forms, or React navigation.
deploying-to-cloud
Deploys and manages Laravel applications on Laravel Cloud using the `cloud` CLI. Use when the user wants to deploy an app, ship to Cloud, create or manage applications, environments, databases, caches, object storage, queues, domains, instances, background processes, secrets, compute, scheduled tasks, or Laravel Cloud infrastructure; or check billing, usage, or spend. Triggers on deployment, shipping, Cloud management, environment setup, database provisioning, billing or usage queries, the `cloud` CLI, and Laravel Cloud deployment troubleshooting.