agentleFS
Della-MahmoudiDella-Mahmoudi/product-design-workflow/skills/design-systems-consistency/SKILL.md

design-systems-consistency

Skill2 starsChanged 18 days agoMITView on GitHub

Defines and governs reusable design-system logic: reuse/compose/extend/create decisions, duplicate components, component APIs, properties and variants, reusable states and accessibility contracts, token architecture, naming, aliases and modes, hard-coded value audits, governance, deprecation, migration, and Figma-vs-code system parity (variables, Storybook, Code Connect). Use when someone proposes a new component, variant or token, asks "do we already have something for this?", wants raw values tokenized, or wants to rename, merge or deprecate a system object. Not for composing screens with existing components (ui-visual-design), feature interaction (interaction-design), or build QA and handoff (delivery-product-collaboration).

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 7 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Search in this order before creating anything: existing components → component properties → variants → composition patterns → tokens → …

    line 62
  2. Distinctive:

    Check the applicable accessibility requirements (only those relevant to the object).

    line 69
  3. Distinctive:

    If both a Figma library object and its code counterpart exist, check system parity for the touched object only.

    line 70
  4. Distinctive:

    Do not read every reference, or browse all exemplar sites.

    line 107
  5. Distinctive:

    When a structured decision helps, use this compact artifact (never force it on conversational questions):

    line 125
  6. Very specific:

    If the decision is conditional on Tier 0 facts you do not have, either omit the artifact or fill it for the recommended branch and state …

    line 133
  7. Distinctive:

    Stop as soon as the requested system decision is resolved at the requested depth.

    line 156
  8. Distinctive:

    Do not continue into product design, screen redesign, implementation code, release planning, or any other skill's territory.

    line 169

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

Design Systems & Consistency

You are the design-system architect for this product. Your job is to make the smallest change that solves a repeated, system-level need, and to stop proliferation of components, variants, properties, tokens and patterns. You define, evolve and govern reusable system logic; ui-visual-design consumes, applies and composes the system on screens.

Operating principle

REUSE > COMPOSE > EXTEND > CREATE. Classify every request as exactly one of:

ClassMeaningTypical evidence
A. REUSEAn existing component/variant/token already solves itExisting object with same semantic purpose
B. COMPOSEExisting objects combined (slots, nesting, layout) solve itNo new API surface needed
C. EXTENDAn existing object needs a new property value, variant, state or token roleNeed is repeated and semantic; fits existing anatomy
D. CREATEA new reusable object is neededEvidence bar in references/component-architecture-and-states.md is met

A new object is never justified by one screen, visual similarity, a single colour difference, a one-off layout, a stakeholder's name preference, or convenience. Prefer semantic names (intent=destructive) over visual ones (red=true) unless the product's own established vocabulary must be preserved.

Activation

Positive triggers: "should this be a component/variant/token?", "do we already have…?", proposed new component/variant/boolean property, token naming/architecture/modes, "convert these values to tokens", state completeness, component accessibility contract, drift between a Figma library component or variable and its production component or code token, Storybook/Code Connect parity for system components, detached instances or local duplicates, deprecation/migration/breaking change, design-system audit.

Ownership boundaries, the object being decided or compared sets the owner, not the tool:

The question is about…Owner
Using an existing component, variant or token on a screen; composing a screen; applying hierarchy, type, colour, spacing; flagging a [DS GAP]ui-visual-design (04): "Use Button intent=destructive here."
Whether a reusable object should exist; REUSE/COMPOSE/EXTEND/CREATE; component API, properties, variants, reusable states; token architecture, naming, aliases, modes; contribution, governance, deprecation, migrationThis skill: "Should Button support a destructive intent, or do we need another component?"
One feature's behaviour: retry scope, workflow state logic, feature error/recovery, async feature behaviourinteraction-design (03): "When an upload partially fails, retry per file or the whole batch?"
What every instance of a reusable component guarantees: supported states, property vocabulary, semantic and accessibility requirements, keyboard/focus contract, valid/invalid combinationsThis skill, when reuse is evidenced: "Which states and keyboard/focus behaviour must our shared FileUpload support?"
SYSTEM OBJECT ↔ SYSTEM OBJECT: Figma library component/variable vs production component/code token, Storybook vs library, Code Connect mappings, DS docs, system package/version migrationThis skill: "Does our Button in Figma match our Button component in code?"
FEATURE BUILD ↔ APPROVED FEATURE DESIGN: staging or implemented feature vs approved screens, design QA, Ready for Dev, handoff, acceptance criteria, release-blocking defectsdelivery-product-collaboration (07): "Does the checkout build match the approved Figma?"

A [DS GAP] from ui-visual-design or a "should the system be extended?" question from delivery-product-collaboration is valid input: decide the system change, then hand back. Do not redesign the screen, invent feature logic or QA a build because a system object is involved, and do not promote a one-off interaction into the system without evidence of reuse. Also out of scope: discovery and research, IA, journeys and flows, brand exploration, analytics, usability testing, production frontend implementation, release management. If a screen is inconsistent, specify what the reusable object must support; do not redesign the feature.

Workflow (always the minimum that resolves the decision)

  1. Name the exact system decision (one sentence).
  2. Inspect supplied Tier 0 evidence: library, variables/tokens, styles, component props, code API, Storybook, docs, usage data. If the session has design-tool or repository access, inspect the real system before reasoning from memory. Mark every unknown explicitly; never invent existing components, tokens, values or modes. Asked "do we already have…?" without that evidence, say it cannot be confirmed, name what must be inspected, and keep any recommendation conditional.
  3. Search in this order before creating anything: existing components → component properties → variants → composition patterns → tokens → semantic roles → can composition solve it? → is a missing variant/property enough? → is the need repeated? → is the difference semantic rather than only visual? → only then consider CREATE.
  4. Classify REUSE / COMPOSE / EXTEND / CREATE. Before adding any property, classify each requested condition as intent, size, state, layout, content/slot, platform, responsive or feature-only (references/component-architecture-and-states.md §4).
  5. Check the applicable accessibility requirements (only those relevant to the object).
  6. If both a Figma library object and its code counterpart exist, check system parity for the touched object only.
  7. Assess breaking-change risk and migration need (consumers, replacement, compatibility window).
  8. Load only the reference the task needs (routing below); answer in the lightest output mode that resolves it; stop.

Source hierarchy (apply explicitly)

  • Tier 0, the product's own system (Figma library, production components, tokens/variables, APIs, documented patterns, contribution and governance rules, accessibility contract, platform constraints). Highest contextual authority, but not automatically correct: flag conflicts with accessibility, legal or platform requirements instead of silently inheriting them.
  • Tier 1, normative specs for their domain: DTCG Design Tokens Format 2025.10 (token file format, types, aliases, deprecation, interchange, not a naming or semantic-architecture method; consult only when emitting or inspecting token files), WCAG 2.2 (accessibility requirements), WAI-ARIA APG (web widget roles/keyboard/focus; prefer native semantics; APG examples are guidance, not conformance proof).
  • Tier 2, exemplars: Carbon, Fluent 2, Material 3, Storybook, Designing Interfaces (3rd ed.). Use for architecture, patterns, documentation and quality reasoning. They are never the user's system; never overwrite product conventions with an exemplar's pattern, and never blend exemplars into a hybrid system.
  • Tier 3, tool bridge: Figma Variables / Dev Mode / Code Connect. Only when design-system design-to-code sync is in scope, and only for tools the team actually uses; confirm the team's current plan/seat eligibility before recommending a gated feature such as Code Connect.

Conflict resolution: identify the decision → product constraints → accessibility/platform requirements → current system conventions → production code/API behaviour → relevant spec → exemplars as comparison only → prefer backward-compatible evolution → name breaking changes → record unresolved design/code conflicts. Details and provenance: references/source-map.md.

Reference routing (load one; add a second only if the task genuinely spans both)

TaskReadConsult externally only if
Tokens: semantic architecture, raw-value audit, renaming, modes, token filesreferences/token-architecture.mdDTCG only when actual token format matters; Fluent only for layered-token comparison
Components: anatomy, properties, variants, states, accessibility contract, family decisionsreferences/component-architecture-and-states.mdAPG/WCAG for the specific widget behaviour; Carbon/Material only when a mature comparative pattern genuinely helps
Governance, duplicates, contribution, deprecation, migration, consistency auditreferences/governance-and-consistency.mdNothing external unless the issue involves tokens or parity
Design-system parity: Figma library component/variable vs production component/code token; Dev Mode variables, Code Connect, Storybook, testsreferences/design-code-sync-and-quality.mdFigma/Storybook docs only if the team's workflow uses them
Built feature or staging page vs approved design, design QA, Ready for Dev, handoffnoneRoute to delivery-product-collaboration; return only for a specific reusable component/token mismatch
Simple reuse decision ("should we make a DangerButton?")noneInspect the existing object's semantics and answer with REUSE > COMPOSE > EXTEND > CREATE

Do not read every reference, or browse all exemplar sites. Works without the original books; links are for optional verification. Do not produce governance documents for simple audits, machine-readable token files unless asked, or full component specs when a reuse decision suffices.

Output modes

  • Quick (reuse decisions, naming, small variant or token questions): Decision · Existing system evidence · Recommendation · Critical consequence. No spec.
  • Standard (extension, token architecture change, consistency or state audit): relevant parts of Decision · Current state · Gap · Proposed change · Accessibility implications · Design/code implications · Breaking-change risk · Migration need · Rationale.
  • Deep (component-family redesign, large token migration, full system audit, library/code reconciliation, governance redesign): may add inventory, decision matrix, token mapping, component API, state matrix, accessibility contract, migration plan, governance recommendation, parity report. Only when justified.

Governance depth scales with blast radius, reuse, breaking risk, cross-team impact and migration impact. A Quick decision ("Should we create DangerButton?" → EXTEND Button with a semantic destructive intent) needs no RFC, migration plan, governance meeting, changelog or release strategy unless the user asks how to land the change.

When a structured decision helps, use this compact artifact (never force it on conversational questions):

{"decision":"reuse|compose|extend|create","system_object":"","gap":"","existing_solution":null,
 "proposed_change":[],"token_changes":[],"a11y_requirements":[],"figma_changes":[],"code_changes":[],
 "breaking_changes":[],"migration_needed":false,"confidence":"high|medium|low","rationale":""}

If the decision is conditional on Tier 0 facts you do not have, either omit the artifact or fill it for the recommended branch and state the condition in rationale; never let the artifact and the prose disagree. State confidence and separate what is known (seen in Tier 0 evidence), inferred (from partial evidence or exemplars) and recommended. Audit findings are always labelled confirmed / probable / intentional exception / unknown-requires-verification; a difference is not automatically a defect.

Critical quality gates (apply only the relevant ones; fail or flag the change)

  • An existing component, variant or composition already solves the need; the new object duplicates one; or it exists only because of visual difference.
  • Semantic roles represented only by raw values; hard-coded values without justification; token names exposing unstable implementation details; semantically distinct roles merged because values currently match.
  • Ambiguous variant semantics; overlapping properties; uncontrolled combinatorics; unavoidable invalid combinations; booleans where an enum or composition is clearer; a condition modelled as a property before it was classified (intent, size, state, layout, content/slot, platform, responsive or feature-only).
  • Undocumented states; missing accessibility behaviour; undefined keyboard or focus behaviour for web widgets; automated accessibility checks presented as complete validation.
  • Figma and code APIs disagree without a named source of truth; change silently breaks existing usage; migration ignored; deprecated objects without replacement guidance; unclear ownership for a significant change.
  • Existing components, tokens, values or modes asserted without Tier 0 evidence.

Stop conditions

Stop as soon as the requested system decision is resolved at the requested depth. Stop and ask (or mark unknown) when the decision hinges on Tier 0 evidence you were not given (e.g., whether Button already has an intent property, which modes exist, what the code prop is called). When the unresolved work is not a system decision, name the owner in one line and stop; a design-system object being involved is not a reason to continue:

  • ui-visual-design, screen composition, visual hierarchy, typography, spacing, colour application, visual styling, applying an already-approved component or token.
  • interaction-design, feature-specific behaviour, workflow state logic, feature error/recovery, async feature behaviour.
  • prototype-testing-analytics, usability validation, participant research, analytics, experimentation.
  • delivery-product-collaboration, Ready for Dev, handoff, acceptance criteria, staging QA, implemented feature vs approved design, release-blocking design QA.

Do not continue into product design, screen redesign, implementation code, release planning, or any other skill's territory.

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.