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).
In this repository7 other files it gives its agents.
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
- Distinctive: line 62
Search in this order before creating anything: existing components → component properties → variants → composition patterns → tokens → …
- Distinctive: line 69
Check the applicable accessibility requirements (only those relevant to the object).
- Distinctive: line 70
If both a Figma library object and its code counterpart exist, check system parity for the touched object only.
- Distinctive: line 107
Do not read every reference, or browse all exemplar sites.
- Distinctive: line 125
When a structured decision helps, use this compact artifact (never force it on conversational questions):
- Very specific: line 133
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 …
- Distinctive: line 156
Stop as soon as the requested system decision is resolved at the requested depth.
- Distinctive: line 169
Do not continue into product design, screen redesign, implementation code, release planning, or any other skill's territory.
≈ “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.
Files
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:
| Class | Meaning | Typical evidence |
| A. REUSE | An existing component/variant/token already solves it | Existing object with same semantic purpose |
| B. COMPOSE | Existing objects combined (slots, nesting, layout) solve it | No new API surface needed |
| C. EXTEND | An existing object needs a new property value, variant, state or token role | Need is repeated and semantic; fits existing anatomy |
| D. CREATE | A new reusable object is needed | Evidence 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, migration | This 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 behaviour | interaction-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 combinations | This 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 migration | This 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 defects | delivery-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)
- Name the exact system decision (one sentence).
- 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.
- 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.
- 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). - Check the applicable accessibility requirements (only those relevant to the object).
- If both a Figma library object and its code counterpart exist, check system parity for the touched object only.
- Assess breaking-change risk and migration need (consumers, replacement, compatibility window).
- 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)
| Task | Read | Consult externally only if |
| Tokens: semantic architecture, raw-value audit, renaming, modes, token files | references/token-architecture.md | DTCG only when actual token format matters; Fluent only for layered-token comparison |
| Components: anatomy, properties, variants, states, accessibility contract, family decisions | references/component-architecture-and-states.md | APG/WCAG for the specific widget behaviour; Carbon/Material only when a mature comparative pattern genuinely helps |
| Governance, duplicates, contribution, deprecation, migration, consistency audit | references/governance-and-consistency.md | Nothing 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, tests | references/design-code-sync-and-quality.md | Figma/Storybook docs only if the team's workflow uses them |
| Built feature or staging page vs approved design, design QA, Ready for Dev, handoff | none | Route to delivery-product-collaboration; return only for a specific reusable component/token mismatch |
| Simple reuse decision ("should we make a DangerButton?") | none | Inspect 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.
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
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.

