agentleFS
Evan-Kim2028Evan-Kim2028/agent-skills/skills/frontend/product-design/SKILL.md

product-design

Skill1 starsChanged 3 months agoMITView on GitHub

Routing hub for product UI/UX craft — density, hierarchy, mobile chrome, design-system fidelity, interaction quality, explore-before-build, and product chart judgment. Use when polishing app surfaces (card, chat, trade, filters, HUDs), sticky/mobile UX, empty/loading/error states, "works but feels off", motion/micro-interaction review, or when the right craft skill is unclear. Routes to product-ui-craft, mobile-product-ux, design-system, web-quality, ui-explore, mockup-implement, tufte, emil-design-eng, make-interfaces-feel-better, 12-principles-of-animation, flutter-pro-ux-review (Flutter apps), then browser-verify. Prefer frontend-design for full FE implementation pipelines (perf, SPA structure) when the ask is build-the-feature not craft. Do not use for marketing landings (marketing), pure QA/e2e (quality-check), or data pipelines (data).

26 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use ux-audit and i18n.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • shmehroSkill

    ux-audit

    Perform a heuristic UX audit on a UI screen, flow, or component description

    Also in 3 projects that use this

  • lbednerSkill

    i18n

    Use when a code or template change introduces a new translation message key, in either the framework CLI (aegis/i18n/locales/) or a generated project's CLI (the app/i18n/locales/ template tree). Covers adding the real English string, stubbing the same key into every other locale for parity, and the separate translation PR that later replaces placeholders with reviewed native text.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 7 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 21 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    ui-explore: if the look is still open (principle 9: live data, all shipped surfaces)

    line 93
  2. Distinctive:

    tufte: if product charts

    line 97
  3. Distinctive:

    If the user says “build the page” → frontend-design.

    line 118
  4. Distinctive:

    If they say “make the trade HUD feel right on mobile” → this hub.

    line 119
  5. Distinctive:

    If they say “prove sticky doesn’t break” → quality-check / browser-verify.

    line 120
  6. Distinctive:

    If web, mobile-web, and native ship the same product surface, they share one data contract (same fields, same empty/error meaning).

    line 176
  7. Distinctive:

    Do not install competing aesthetic mega-skills (“UI/UX Pro Max” style) alongside this hub — they fight your design system.

    line 204

“Common” is measured: kept by at least 6 in 10 of the 21 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Product design — UI/UX routing hub

Craft and product judgment first. This hub is for how product surfaces feel and behave — not marketing heroes, not backend, not “prove CI green.”

Route first → open one specialist → do the work. Load at most 1–3 specialists.

product-design (this hub)
    → design-system | product-ui-craft | mobile-product-ux | web-quality
    → ui-explore | mockup-implement | tufte
    → emil-design-eng | make-interfaces-feel-better | 12-principles-of-animation (motion/feel review)
    → flutter-pro-ux-review (Flutter app production polish audit)
    → quality-check / browser-verify (prove pixels)

When to use this hub

SignalExample
Polish / craft“Spacing is off”, “feels cheap”, density, hierarchy
Mobile product chromeSticky bars, sheets, safe areas, one-thumb
Product statesEmpty, loading, error, selected — missing or awkward
System fidelityWrong tokens, inventing fonts/colors, off-brand
Interaction UXFocus traps, form friction, touch targets (not full e2e suite)
Explore optionsA/B product chrome before committing production
Product chartsKPI tiles, series charts that must stay honest (tufte)
Motion / feel review"Animation feels janky", micro-interaction polish, "works but feels off" on transitions

Primary ownership (vs frontend-design)

These specialists belong here first (product UX). frontend-design only pulls them in as steps inside a full implement pipeline:

Primary under product-designWhy
design-systemProduct visual law
product-ui-craftDensity / hierarchy craft
mobile-product-uxMobile product chrome
web-qualityInteraction UX / a11y craft
ui-exploreExplore before build
mockup-implementFidelity after sign-off (craft path)
tufteProduct chart judgment

frontend-design owns primarily: react-performance, SPA/feature structure, “build the page” orchestration.

Routing table

Your taskSkillLoad when
Tokens, components, brand locks, DESIGN.mddesign-systemProject law; agents inventing aesthetics
Spacing, type hierarchy, density, radii, motion restraintproduct-ui-craftDesktop/app chrome polish
Sticky bars, bottom sheets, safe areas, gesturesmobile-product-uxPhone/tablet product surfaces
A11y, focus, forms, touch targets, motion prefsweb-qualityInteraction/a11y craft (not full ship QA)
HTML A/B or throwaway UI/logic prototypesui-exploreDesign not signed off yet
Port signed-off mockup with fidelitymockup-implementWinner chosen; match don’t freestyle
Quantitative charts / dashboardstufteViz craft (+ design-system chart tokens)
Blog SVG chart text/spacing / clip / densitymobile-blog-chart-visualPhone floors + plot share; no subtitles under title (install from this pack)
Product ECharts (card/portfolio) mobile clip / tiny axesmobile-app-echarts-visualgrid/axisLabel floors, adaptive height, dual viewport
UI polish, component craft, perceived performanceemil-design-engOptional install — Emil Kowalski design-engineering pass on invisible details
Micro-interaction / "feels better" reviewmake-interfaces-feel-betterOptional install — Jakub Krehel detail checklist (radius, optical align, shadows)
Animation audit vs. 12 principles12-principles-of-animationOptional install — Disney's 12 principles adapted for web, file:line findings
Flutter production UX polish (dead taps, null, haptics, keyboard, motion)flutter-pro-ux-reviewFlutter/pubspec.yaml apps — complements official Flutter architecture skills
Prove sticky/viewport/a11y in browserbrowser-verifyAfter craft — or quality-check for full QA path
Multi-surface lab (web + mobile-web + native) on live backend datathis hub (principle 9) then ui-exploreDo not rewrite prod chrome
Full feature build (perf, SPA, implement pipeline)frontend-designBroader FE engineering hub
Unclear multi-step craftstart hereDefault for product UX

Multi-step craft pipeline

  1. design-system — lock tokens / kit / bans
  2. ui-explore if the look is still open (principle 9: live data, all shipped surfaces)
  3. mockup-implement once signed off
  4. product-ui-craft (+ mobile-product-ux if touch/sticky)
  5. web-quality for forms/focus/targets
  6. tufte if product charts
  7. emil-design-eng / make-interfaces-feel-better / 12-principles-of-animation if motion/feel is the specific complaint (optional installs)
  8. browser-verify or quality-check before claiming done
explore (ui-explore)
  → mockup-implement
  → product-ui-craft (+ mobile-product-ux)
  → web-quality
  → emil-design-eng / make-interfaces-feel-better / 12-principles-of-animation (motion/feel)
  → browser-verify / quality-check

product-design vs frontend-design vs quality-check

HubJob
product-design (this)Product UX craft, mobile chrome, density, system fidelity, explore
frontend-designFull FE implement path (also routes to craft specialists + react-performance)
quality-checkProve / regression / TDD / ship — not invent craft

If the user says “build the page” → frontend-design.
If they say “make the trade HUD feel right on mobile” → this hub.
If they say “prove sticky doesn’t break” → quality-check / browser-verify.

Shared product UX principles

Each has a falsifiable Test:.

1. Project design system beats generic “pretty”

DESIGN.md, tokens, kit components win over neo-brutalism packs and random Inter/purple defaults.

Test: Would a design-system owner accept this without a rebrand fight?

2. Product surfaces optimize for scan, density, trust

Tables, chat, trade HUDs, filters ≠ marketing heroes. Prefer clear hierarchy and restrained motion.

Test: Can a user find the primary action and current state in under 2 seconds?

3. States are part of the design

Loading, empty, error, success, disabled, selected — not “polish later.”

Test: Is every async path designed, or only the happy path?

4. Mobile is a first viewport

Sticky, sheets, safe areas, and thumb reach are designed — not shrunk desktop.

Test: Does 390-class width need a special layout, or did we only check desktop?

5. Touch and focus are product quality

Targets, focus rings, form labels, motion prefs — web-quality. Automated axe alone is not craft.

Test: Keyboard-only and thumb-only paths both complete the primary job?

6. Charts carry product truth

Quantitative UI uses tufte (honest encoding) + design-system chart shells — not decorative sparklines that lie.

Test: Does the chart answer a product question without chartjunk?

7. Explore before freestyle production

Unsigned visuals → ui-explore. Signed → mockup-implement. Don’t invent production chrome mid-port.

Test: Is there a named source design, or are we improvising?

8. Prove the craft in a browser when pixels matter

Sticky, overflow, gesture, density → browser-verify (or quality-check for full QA).

Test: Have you opened the real viewport, or only reasoned about CSS?

9. Three surfaces, one contract, live data

If web, mobile-web, and native ship the same product surface, they share one data contract (same fields, same empty/error meaning). Explore on live backend data — or a recorded snapshot of it — not empty fixtures that hide density. ui-explore is throwaway; do not rewrite production chrome to “try a look.”

Test: would a reviewer see real row density and the same number on every shipped surface? If one surface is a fixture and another is live, the lab is lying.

Sources (attribution)

Full pack table: ATTRIBUTION.md.

SpecialistLineage (summary)
product-ui-craftImpeccable / make-interfaces-feel-better craft principles — original synthesis
mobile-product-uxiOS HIG / Material density practice — original synthesis
design-systemProject DESIGN.md law; Anthropic constraint-before-code idea
web-qualityVercel Web Interface Guidelines + WCAG practical AA
ui-exploreUnreasonable effectiveness of HTML + throwaway prototype branches
mockup-implementDesign-to-code fidelity lineage
tufteEdward Tufte — optional install; we route only
emil-design-engEmil Kowalski / animations.dev design-engineering — optional install; we route only
make-interfaces-feel-betterJakub Krehel / interfaces.dev — optional install; we route only (condensed lineage already folded into product-ui-craft above)
12-principles-of-animationRaphael Salaja — Disney's 12 principles adapted for web — optional install; we route only
flutter-pro-ux-reviewMulti-expert Flutter polish synthesis (Kamran-style micro-details + Bizzotto completeness + motion voices) — bundled under skills/flutter/
browser-verifyPlaywright + condensed Addy Osmani DevTools MCP lineage

Do not install competing aesthetic mega-skills (“UI/UX Pro Max” style) alongside this hub — they fight your design system. Prefer design-system + craft.

Anti-patterns

  • Marketing landing maximalism on data/product chrome
  • Inventing fonts/colors when a design system exists
  • Desktop-only for mobile-critical product flows
  • Happy-path-only UI (no empty/error)
  • “Looks fine in my head” without viewport proof
  • Rewriting production chrome during an explore pass
  • Exploring a data surface on empty fixtures while prod is dense
  • Using quality-check when you still need craft decisions
  • Using this hub for pure React perf / code-split (frontend-design → react-performance)

When not to use this hub

TaskUse instead
Full FE feature implement + perffrontend-design
TDD / e2e / regression / ship checklistquality-check
Offers, ads, viral, landing narrativemarketing
Lakehouse / DuckDB / pipelinesdata
No UI—

Done criteria

  • Routed to the right craft specialist(s)
  • Design-system constraints respected
  • Loading/empty/error considered for new async UI
  • Mobile considered if the surface is touch-reachable
  • Charts used tufte when quantitative
  • Browser proof when sticky/gesture/density risk is non-trivial
  • Multi-surface: same contract; explore used live (or recorded-live) data

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.