An agent skill · experience-design router

/design

Ask an agent for a landing page and you get the same templated hero, the same three feature cards, the same indigo gradient. Ask for a product screen and half its states are missing, with prototype code passed off as production. design replaces both with a controlled process: name the register — whether the design IS the product (a brand site built to be remembered) or SERVES it (a dashboard trusted on sight) — route to the one job that fits, then produce a distinctive, state-complete artifact with exact tokens. Experience design for websites, web apps, iOS, and Android.

# one skill, two registers — the register sets the bar /design set a visual direction for a studio's landing page — pick a macrostructure, one bold move /design design an onboarding flow for a budgeting app — state-complete, iOS first

runs onClaude CodeCodexCursorAntigravityopencodeGrok BuildHermes

How it routes

Not a fixed pipeline — a router. Enter at whatever job you have: "set a visual direction for this landing page" pulls direction plus its craft leaves; "critique this dashboard" jumps straight to the critique gate; "map this checkout" runs one journey. Every route selects the smallest sufficient reference set — one primary job, at most one surface overlay, only the concerns that matter — and nothing unrelated is loaded.

The skill operates standalone — invoked alone it runs the full loop; given compatible upstream artifacts it builds on them without silently overriding established decisions.

identify the primary jobPick the one design job the request is really about — research, a journey, information architecture, an interaction spec, visual direction, a craft leaf, a prototype, a design system, a critique, or a handoff. → SKILL.md
add at most one surface overlayWebsite, web app, iOS, or Android — the surface picks the register (design IS the product vs design SERVES it) and the platform numbers. Add more than one only when the task explicitly compares platforms.
add only the concerns that matterAccessibility and content design come in as overlays when the request materially involves them — not by default.
read fully, then produceRead each selected reference completely, then emit the design artifact with exact values — tokens, sizes, spacing, timings — and the full state set, not adjectives.
validate & hand offCheck the artifact against the goal, constraints, and edge states; record assumptions and risks; emit a compact handoff when downstream implementation is expected.
The critique route is a scored gate with a binary verdict — a fail routes back to the craft reference that owns the problem. And a visual verdict requires rendered evidence: with no build viewed, the skill says "code-level pass, not an art review" rather than signing off on appearance.

Register first

Before any craft, the skill names the register — per surface, not per project. It's the single decision that sets the bar for everything after, and the audience picks it, not taste. Get it wrong and a dashboard tries to be memorable, or a landing page settles for competent.

design IS the product
distinctiveness is the bar
  • Brand sites, landing pages, portfolios, launch microsites — anything whose job is to be noticed and remembered.
  • Take the aesthetic risk; type can be a character; one signature element carries the boldness.
  • Pick a macrostructure and a committed aesthetic lane, set the premium↔information dial, and spend expressive type on one signature — never the reflexive templated hero.
design SERVES the product
earned familiarity is the bar
  • Dashboards, app shells, settings, dense daily tools — a fluent Linear/Figma user must trust and operate it on sight.
  • Surprise is a cost. This register inverts several defaults: fixed rem over fluid, proven patterns over novelty.
  • Every interactive component gets its full state set; Inter / SF Pro is a legitimate pick, not a tell.

One bold move, then restraint. The shared trait of Linear, Stripe, and Vercel is restraint, not a look — spend boldness in one place per section and keep everything else quiet. Two bold moves compete; zero reads generic.

Before the pixels

Most of the work lands before a single pixel is styled. The upstream jobs — research, journeys, and information architecture — decide what's true, what path a person takes, and where everything lives. Skip them and you get a pretty screen answering the wrong question.

research
"When I'm reviewing my budget mid-month, I want to see what's left — so I can stop before I overspend."
observedinferredassumed
jobs · interviews · surveys · usability · design-DNA — every finding marked by its evidence.
journeys · breadboard
Place  Budget overview
  Add expense  Expense sheet
  [ remaining · this month ]
Place  Expense sheet
  Save  Overview
  edges empty · loading · error · offline
Structure before pixels — every affordance names a destination; edges are required steps.
information architecture
Home
├ Budgets    list + detailExpenses   list + detail
└ Settings
objects  Budget ─< Expense
nav ≤7 · any item < 3 clicks
An OOUX object model, a sitemap, a navigation model — the load-bearing layer beneath every surface.
Every coded artifact carries one labeldisposable design-reference production-candidate — so prototype code is never passed off as production.
A design system is a contract — layered tokens (primitive → semantic → component) plus a DESIGN.md / PRODUCT.md a team and its engineers build against.

The craft, in exact values

When direction is set, the craft leaves carry it — each with precise tokens, not adjectives. Typography, color, layout, motion, interaction states, and depth are separate references the router loads only when the job needs them. A sample of what each one decides:

typography · the scale
Ag39 h1
Ag31 h2
Ag25 h3
Ag20 lead
Ag16 body
ratio 1.25 major third · ≤5 sizes · display caps ≤88px · measure 66ch · 2+1 families
color · OKLCH, owned
accent hue 293 · hover L−0.03 · active L−0.05 · accent ≤5% of the viewport
errorwarningsuccessinfo
hue anchors — err 0–10 · warn 35–45 · succ 140–160 · info 210–230
layout · 12-col grid
one focal point
spacing 4·8·12·16·24·32·48·64·96 · break ~20%, keep one shared edge · never three equal cards
motion · the canonical scale
micro 80–150mspress · hover
UI 150–300msmenu · tooltip · tab
surface 300–500msmodal · drawer
entrance 400–800mshero reveal
exit ≈ 60–75% of enter · ≤3 curves · cubic-bezier(.16,1,.3,1)
interaction · the 8-state model
defaulthoverfocusactivedisabledloadingerrorsuccessempty
every element in eight states — plus empty for every data region; focus designed separately (:focus-visible), border width constant across states.
imagery & depth · elevation
xssmmdlgxl
one light source, light & diffuse — heavy black shadows read dated; on dark, build elevation from lighter surfaces, not shadow.

The non-negotiable laws

These universal invariants govern every reference — the load-bearing ones, condensed.

Pick by job

The SKILL.md is a router — load only the reference your current job needs. A condensed cut of the primary-job table:

I need to…Read
Plan or synthesize UX research — interviews, surveys, usability, design-DNAresearch.md
Map a flow, onboarding, wizard, checkout, or end-to-end journeyjourneys.md
Model objects, sitemap, navigation, naming, or findabilityinformation-architecture.md
Define component behavior and states — forms, feedback, overlays, searchinteraction.md
Set the point of view, or fix a result that reads generic or templatedvisual-direction.md
Build a palette, neutral ramp, accent, dark mode, or check contrastcolor.md
Build or evaluate a prototype, or compare design optionsprototyping.md
Create or extend a design system, tokens, or component contractsdesign-systems.md
Judge or QA a rendered design against its intent — a scored reviewcritique.md
Prepare an implementation handoff to frontendhandoff.md

Full table — plus the surface and concern overlays: SKILL.md.

Complementary, not duplicated: production frontend build (frontend-skill), system architecture and feasibility (architecture-skill), acquisition and SEO (marketing-skill), independent audits and release verification (quality-skill), and product strategy and metrics (product-skill) are separate skills in the digital-product-skill family that this one hands off to.

The critique gate

Critique is its own route — a scored review, not a vibe check, kept strictly separate from fixing. The bar isn't "does the grid align" but "would a design lead at Linear or Apple put their name on this?" It judges against the design's own intent, then returns a binary verdict and a Before/After/Why punch-list — never a patch.

Honesty rule: most shipped interfaces score 20–32 — a 38 means you aren't looking hard enough. And a visual verdict requires rendered evidence: with no build viewed, the skill reports a "code-level pass, not an art review" rather than signing off on appearance.

Reference map

21 references, grouped by facet — primary jobs, surface overlays, and concern overlays. Every one is copy-pasteable rather than abstract; the whole point of the router is that you never read all of them at once.

primary · research & structure4
research.mdjourneys.mdinformation-architecture.mdinteraction.md
primary · visual craft6
visual-direction.mdtypography.mdlayout-composition.mdcolor.mdimagery-depth-decoration.mdmotion.md
primary · systems & delivery4
prototyping.mddesign-systems.mdcritique.mdhandoff.md
surface overlays4
surface-website.mdsurface-webapp.mdsurface-ios.mdsurface-android.md
concern overlays2
accessibility.mdcontent.md
sources1
SOURCES.md— traces every technique to its source

Browse the full set: skills/design/references/.

The handoff

The skill owns experience intent, not production code — so a route that expects downstream work ends in a handoff: a package an engineer who was never in the room can build from. It ships tokens twice (a structured JSON block for tooling and a human design map), a motion plan with exact curves and durations, and a compact handoff.yaml companion for pipeline routing.

# handoff.yaml — an index, not a copy skill: design status: complete objective: "iOS onboarding, state-complete" artifacts_created: - path: onboarding/*, tokens.json assumptions: [...] constraints: [brand, a11y floors] validation: performed: [states, contrast] remaining: [device test] recommended_next: - skill: frontend
frontend
build
Complementary, not duplicated.

The handoff is the seam with the rest of the digital-product-skill family. design hands the approved intent to frontend-skill to implement, and recommends architecture, marketing, quality, or product when the job calls for them — it recommends, never auto-invokes.

The package targets at least Level 4 on a 1–5 maturity ladder (screenshot → annotated → interactive spec → full spec → integrated). When cutting scope, it never cuts error states or accessibility.

Start here

Install once. It's a plain SKILL.md router — no flags, no config, no scripts — so it activates on design language ("design an onboarding flow", "set a visual direction for this app", "critique this dashboard", "spec the states for this form") rather than a fixed command.

# skills.sh ecosystem npx skills add gabros20/design-skill # clone + installer (per-host targets) git clone https://github.com/gabros20/design-skill && cd design-skill ./install.sh codex # or: claude | agents | cursor | antigravity | opencode | grok | hermes | all # use /design set a visual direction for a fintech dashboard — name the register, one bold move /design critique this checkout against its intent — scored, go/no-go verdict

The same install runs on any Agent Skills host. Codex installs to ${CODEX_HOME:-$HOME/.codex}/skills; agents remains a separate cross-agent installation target.

install targets by host
hostinstall targetcommand
Claude Code~/.claude/skills./install.sh claude
Codex${CODEX_HOME:-$HOME/.codex}/skills./install.sh codex
Cross-agent path~/.agents/skills./install.sh agents
Cursor CLI~/.cursor/skills./install.sh cursor
Antigravity (IDE + agy)~/.gemini/…/skills./install.sh antigravity
opencode~/.config/opencode/skills./install.sh opencode
Grok Build~/.grok/skills./install.sh grok
Hermes~/.hermes/skills./install.sh hermes

Prefer npx skills add gabros20/design-skill when you have Node — it maps supported clients itself.

what's in the repo
skills/design/ the skill: SKILL.md (router) + references/ (21 files) docs/ installation · usage · recipes site/ this page — deploys to designskill.vercel.app install.sh installer (claude | codex | cursor | antigravity | opencode | grok | hermes | agents | all) README.md · CHANGELOG.md · LICENSE

More docs: docs/installation.md · docs/usage.md · docs/recipes.md. Part of the digital-product-skill family.