design — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited design (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Direction first, tokens second, code last. Restraint is the default posture; ONE intentional moment per surface earns the lift.
Direction precedes tokens; tokens precede code. The picked direction is the contract — palette, type, spacing, motion all derive from it, not the other way around. Restraint is the default; reach for decoration only when a named surface goal demands it. Posture rests on references/soul.md (design philosophy) — load when the user asks "why this look" or when the model is tempted to add decoration to compensate for a thin idea.
Balance, not maximalism. ODIN's "don't hold back" (borrowed from the <design> block above) means conviction, not volume. The two failure modes catalogued in the anti-slop charter below are reciprocals — AI-generic timidity (Side A) and decorative overkill (Side B) both come from the same fear of commitment. Balance simplicity and verbosity per surface; restraint as the default, the one intentional moment as the lift, neither timid nor loud.
<design> block — LOAD-BEARINGQuoted verbatim from output-styles/odin.md lines 254–262.
<design>
Modern, elegant UI/UX. Don't hold back.
**Tokens:** MUST use design system tokens, not hardcoded values.
**Density:** 2-3x denser. Spacing: 4/8/12/16/24/32/48/64px. Medium-high density default. Ask preference when ambiguous.
**Paradigms:** Post-minimalism [default] | Neo-brutalism | Glassmorphism | Material 3 | Fluent. Avoid naive minimalism.
**Forbidden:** Purple-blue/purple-pink | `transition: all` | `font-family: system-ui` | Pure purple/red/blue/green | Self-generated palettes | Gradients (unless explicitly requested, NEVER on buttons/titles)
**Gate:** Design excellence >= 95%
</design>Every design surface is brand (marketing, landing, campaign, long-form content, portfolio — design IS the product) or product (app UI, admin, dashboard, tool — design SERVES the product). Identify before designing.
Detection rule. First match wins:
/marketing/* vs. /app/*).AGENTS.md, CLAUDE.md, brand brief).Brand register opens neo-brutalism / glassmorphism / M3 Expressive with Committed / Full palette / Drenched color strategies; product register defaults to Restrained + post-minimalism / Fluent 2. Full matrix in references/paradigms.md §0.
Two-sided ban-list. Each row: ban — WHY in one line. Depth in references/anti-slop.md.
Side A — slop tells (the AI-generic look):
rounded-lg uniform on every element — radius without hierarchy is decoration, not signal.shadow-md uniform across the surface — elevation that conveys nothing.transition: all — animates layout, color, and transform together; jank guaranteed.font-family: system-ui — abdicates the type decision; reads as "did not pick".Side B — overkill compensation (slop's louder cousin):
Color strategy axis (commitment level). Pick the strategy before picking colors. Each tier is deliberate, not a fallback.
The "one accent ≤10%" cap applies only to Restrained. Committed / Full palette / Drenched exceed it on purpose; treat the cap as direction-conditional, not universal.
Six steps. Do not skip the divergence step.
references/diversity.md for the six diversity-engineering techniques (verbalized sampling, actor-critic per candidate, persona injection, temperature, most-unlikely reframing, anti-pattern catalog).(Recommended) and is placed first. Ticking (Recommended) is accepting the default. Never use multiSelect for axis-with-default override semantics — that shape collapses N independent decisions into one ambiguous checklist; reserve multiSelect for additive picks only (feature toggles, optional sub-tasks).| Runtime | Reference |
|---|---|
| Vanilla CSS / static HTML | references/web.md |
| React / Tailwind / shadcn | references/react.md |
| Bubble Tea / Ratatui / Textual | references/tui.md |
| clap / cobra / cmdliner / typer | references/cli.md |
| Tauri / Slint / egui / Iced | references/desktop.md |
| Qt / QML | references/qt.md |
| Cross-platform tokens | references/design-systems.md |
| Motion across runtimes (timing / easing / reduced motion) | references/motion.md |
These references are runtime-agnostic — load them when the task fits the trigger, alongside whatever surface reference is already loaded.
| Reference | Load when… |
|---|---|
references/interaction-design.md | Designing or auditing interactive elements (states, focus rings, dropdowns, modals, popovers, keyboard navigation) — applies across web / React / desktop / Qt. |
references/cognitive-load.md | Auditing a surface for mental-effort overhead (working-memory rule, the eight common violations, the cognitive-load checklist). |
references/personas.md | Running a persona-based design audit (Alex / Jordan / Sam / Riley / Casey, plus project-specific personas derived from PRD / brand brief). |
references/ux-writing.md | Drafting UI labels, error messages, empty states, confirmation dialogs, and any user-facing copy — copy is design. |
references/diversity.md | Generating diverse direction candidates in step 2 (Diverge) of the workflow — six techniques to defeat centroid convergence. |
references/cjk.md | Designing for Chinese / Japanese / Korean content — locale tagging, Pan-CJK fonts, vertical writing / ruby, locale-specific glyphs. Routes into korean.md / japanese.md / chinese.md for per-locale production trends and DS landscape. |
transition: all is forbidden — name the properties (transition: opacity 120ms ease, transform 120ms ease) so layout and paint do not animate together.<nav> / <main> / <article> first; utility classes second. Class soup over weak structure is slop.<design> block above (tokens / density / paradigm / forbidden list).git grep for raw hex, raw px values in component code; should be empty.references/cognitive-load.md checklist (≤1 failure); shipped surfaces have been read against ≥2 of the references/personas.md archetypes.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.