agentleFS
fracazofracazo/design-system/skills/product-design/SKILL.md

product-design

Skill4 starsChanged 54 days agoMITView on GitHub

Single entry point for product design and user-facing implementation in a product built on @fracazo/design-system. Use whenever work changes what a reader sees, understands, chooses or does: shaping a flow, building or restyling a page or component, reviewing a route, screenshot or diff, improving copy, hierarchy, layout, interaction, accessibility, responsive behaviour or loading, empty, error and destructive states. Trigger on design, UX, UI, layout, styling, tokens, colour, type, spacing, motion, copy, polish, audit, review, accessibility, dark mode, mobile. Not for backend-only work, telemetry, generated files, or tests with no shipped UI.

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

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

  • 0

    Common

    Most of the 21 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Values live in tokens: Never a colour, radius or fluid size literal in a className.

    line 38
  2. Distinctive:

    Do not paste their content into answers.

    line 44
  3. Very specific:

    Do not score a review from this file.

    line 116
  4. Distinctive:

    Add or change a rule only after the same correction has recurred and a human has accepted it.

    line 124
  5. Distinctive:

    Prefer the narrowest destination: a token or contract entry, a lint rule, a rule record, an exemplar, or a coverage gap.

    line 129
  6. Very specific:

    Keep coverage-gaps.md honest.

    line 135

“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 on @fracazo/design-system

Make the surface correct for the reader, the product and the system. Working code is not enough: choose the right composition, spend emphasis once, cover the states the product can really enter, and verify the rendered result in both themes. The stylesheet and the lint do the visual work; this skill carries the judgment and the reasons.

Operating contract

  • Start with the reader's job, not the pixels. Who is reading, on what device, under what pressure, and what they must decide or do here.
  • Name the surface scope first. Engagement (the product) or conversion (landing, guides). Budgets, imagery and motion rules differ. See references/surfaces.md.
  • Use evidence, not taste. Trace a decision to a rule in references/rules.md, a section of DESIGN.md, a component's intent block, or an exemplar. Shipped code proves what exists, not that it is right.
  • Decide before decorating. Composition, component choice and states before colour, radius or copy.
  • Spend emphasis once. One focal relationship per screen. When a surface shouts, remove signals; never add a louder one.
  • Values live in tokens. Never a colour, radius or fluid size literal in a className. A missing value is a proposal for the design-system repo.
  • Verify the real surface. Source inspection establishes behaviour; a rendered page in light and dark establishes quality. Token work runs the product's snapshot compare.
  • Keep one entry point. Load this file; route to the references below. Do not paste their content into answers; cite the rule ID or section.

Request modes

Resolve the mode from the verb before acting. Use the narrowest mode the verb supports. A URL, screenshot or route sets scope; it does not authorise edits.

ModeTypical requestRequired behaviour
Shape"Design this flow", "how should this work?"Frame reader, job, evidence; compare material alternatives; define flow, states, acceptance criteria and open decisions. No edits unless asked.
Implement"Build", "fix", "improve", "make it compliant"Resolve material decisions, then the smallest coherent end-to-end change. Do not absorb unrelated findings.
Review"Audit", "critique", "what's wrong?"Load ../interface/SKILL.md and follow its format, severity, cap and verdict. No edits unless asked.
Copy"Fix the copy", "rewrite this error"Edit user-facing language and accessible names only. Report structural blockers; do not widen scope.
Harden"Polish", "production-ready", "edge cases"Keep the settled direction; fix state, resilience, responsive, accessibility and finish defects.

A material decision changes the reader's task, default, consequence, navigation, interaction surface or reachable states. Token substitution and established component swaps are not material.

Decision authority

Resolve conflicts in this order.

  1. The user's explicit goal and constraints.
  2. Verified product behaviour and system truth (what the tokens and components actually do).
  3. The product's CLAUDE.md, then this skill's references/rules.md, DESIGN.md, css/roles.css and the component intent blocks.
  4. Exemplars with stable evidence (exemplars/).
  5. Verified adjacent shipped patterns in the same product area.
  6. General interface heuristics.

Workflow

  1. Set scope and mode. Name the product, the route or component, the surface scope and the mode.
  2. Load product context. The product's CLAUDE.md design section, the brand file, the product chapter in DESIGN.md, and the code that decides what the surface can show.
  3. Model the decision (Shape, Implement, Harden, full Review). Reader, job, current behaviour, desired outcome, success signal, non-goals, consequence, reversibility, open decisions. Keep it compact.
  4. Map the surface and states. Entry points, regions, overlays, transitions, exits. Only reachable states: loading, empty, populated, validation, error, disabled, optimistic, destructive, both themes, 360px and 1280px.
  5. Load the routed references.

    NeedLoad
    Any styling or token decisionreferences/tokens.md
    Sizes, radius, spacing, rhythmreferences/type-and-space.md
    Hover, entrance, transitions, reduced motionreferences/motion.md
    Which component, house patternsreferences/components.md + the component's intent block
    Copy mechanicsreferences/copy.md, then the writing skill
    Which surface, budgets, imageryreferences/surfaces.md
    A lint or contract IDreferences/rules.md (registry only, not a review rubric)
    A review of a surface../interface/SKILL.md
    Before claiming zero visual changereferences/verification.md
    Running or judging an intake packetreferences/intake.md
  6. Decide, then implement. For each non-mechanical change be able to say: what reader problem it solves, why this component, what consequence the surface must communicate, which rule or exemplar supports it, and what the smallest coherent change is.
  7. Verify. Lint (pnpm lint), typecheck, both themes, compact and wide viewports, keyboard order and focus, every materially changed state, long content. Token work: snapshot compare, delta stated.

Review

Do not score a review from this file. Load ../interface/SKILL.md. It loads the six domain skills in order (accessibility, layout, writing, typography, colors, ui) and returns one table, one severity scale, a finding cap, considered-but-rejected, and a verdict. references/rules.md is the lint and contract registry. It is not a second rule list.

Skill integrity

  • Add or change a rule only after the same correction has recurred and a human has accepted it. One screenshot, one file or one review comment is never a rule by itself.
  • Record scope, rule, why, exceptions, source and a bad and good example (references/rules.md format).
  • Prefer the narrowest destination: a token or contract entry, a lint rule, a rule record, an exemplar, or a coverage gap. Deterministic checks stay mechanical; judgment stays in prose with its evidence.
  • New evidence enters through the intake loop (references/intake.md): ds-intake collects, the agent proposes in the packet, a human reviews and accepts.
  • Keep coverage-gaps.md honest. A missing rule is not a licence to invent one; it is a decision to raise.

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.