authoring-design-system — SKILL.md
Variant: standard · When to use: producing (or amending) a design-system document from a product's direction, to a quality bar a designer/engineer can build a consistent, accessible UI from.
Overview
This skill is the how-to of writing a usable, consistent, accessible design-system document — the reusable visual + interaction language a product's UI draws on (principles, design tokens, a component catalog, patterns, layout + internationalization conventions, accessibility standards, voice, and lifecycle/governance). It supplies the producer's judgment, not the section list. It assumes two collaborators: a design-system template tool that supplies the section structure, and a deep-research capability to ground tokens and components in established practice. The producer is handed the product direction (and any user-flows) and must elaborate it — never emit generic boilerplate. The bar to clear: a designer can build a consistent UI and an engineer can implement it from the document, the catalog covers every component the product's screens need, and the system is accessible. The document is the vocabulary later wireframes and hi-fi draw on — it precedes them.
The artifact is textual markdown — tokens as values + DTCG-shaped tables (hex/HSL/Oklch), type-scale + component spec tables. Not a rendered Figma file, not a compiled token package. The method is medium-independent; the artifact today is text.
When to activate
- Authoring a new design-system document from a product's direction / PRD.
- Expanding a thin token set or component list into a full design system (foundations + catalog + patterns + accessibility + voice + governance).
- Amending an existing design system for a change (a new/changed token or component) — as a scoped, versioned delta (see Step 7).
- Filling a design-system template with researched, decision-complete content.
Do NOT activate when:
- Reviewing or grading a finished design system → use
reviewing-design-system (it asserts the same bar this skill produces to).
- Defining per-screen layout / where components are placed → that is
authoring-wireframes, which references the design system this skill produces.
- Producing the high-fidelity coded prototype → that is
authoring-hi-fi, a downstream consumer.
- Shipping a coded component library (CSS/React) → this is the document (tokens + specs + rules), not the implementation.
- Authoring a different document type → use that type's skill.
Inputs
Read every document the plan hands you — your depends_on set (the upstream documents discovery determined inform this one) — and trace this document's content back to them. The recommended input set that yields a production-grade design system: the product-direction / PRD (personas, purpose, surface area) and, where available, the user-flows (they signal which screens — and therefore which components — exist). On an amend, you are also handed the existing design-system document + the scoped change. This recommended set is guidance, not a hard precondition — be self-contained: produce from whatever context you actually receive; when an expected informing document is absent, proceed on what you have and surface the gap as an explicit assumption, never fabricate. Use a research capability where one is available (deep-research) to make the document comprehensive, not merely to fill the template.
Workflow
Step 1: Take the structure from the template tool — don't invent an outline
Get the section structure from your design-system template tool (comprehensive variant). Do not restate or re-derive a section list here; this skill supplies the method that fills those sections well. If no template is available, obtain a comprehensive structure (request/forge one, or fall back to the canonical set: principles → tokens → component catalog → patterns → layout & i18n conventions → accessibility → voice → lifecycle/governance), then proceed.
Step 2: Load the product direction + surface area; identify the archetype
Read the product direction / PRD and any user-flows. Identify the product archetype (thin CLI/utility vs. content app vs. full interactive UI product) — it sizes the whole system, including which optional angles apply (i18n, multi-brand, governance). Where brand/visual direction is thin, make choices explicit (a stated Assumption or Open Question), never silently generic. Audience is an owner decision — record the target user + domain-literacy as a Decision; surface an assumed audience as an Open Question, never bake it in silently.
Step 3: Research to ground tokens, components, accessibility, and conventions
Use a deep-research pass to ground tokens, the component set, patterns, the accessibility target, the token format, and the i18n/governance conventions in established practice rather than invent them. If no research capability is available, do NOT fabricate — state the chosen conventions as explicitly-flagged assumptions against the canonical defaults.
Step 4: Apply the per-section method
Fill the template's sections to this method (depth for each lives in references/):
- Principles — 3–6 opinionated, actionable beliefs a reviewer could settle a disagreement with, each naming its tradeoff. Not platitudes.
- Design tokens — name every design decision as a token in three tiers: primitive/reference (raw value) → semantic/system (named by intent, references a primitive) → component (references a semantic). Name by intent, not appearance (
color.action.primary, not color.blue.500) — the semantic layer is what components reference and what makes the system consistent + themeable. Express tokens in the W3C DTCG format (typed $value, aliasing) — this is required at any size, not just large systems (references/tokens-dtcg.md). Cover:
- Color — primitive ramps + semantic role tokens (text / action / feedback / surface / border / focus); a recorded contrast ratio for every text + UI pairing (ties to accessibility). Use modern color spaces (Oklch / Display-P3 with sRGB fallback) where the product benefits; sRGB is a fine default.
- Typography — a role × size type scale (display / headline / title / body / label) as a size / line-height / weight table, on a stated ratio; body line-height ≈ 1.4–1.6.
- Spacing & density — one base unit on a 4/8px grid + a multiplicative scale; state a density stance for data-dense surfaces.
- Elevation — a small named level set (resting → raised → overlay), each a shadow/surface, role-mapped.
- Motion — duration + easing tokens composed into named transitions; include a reduced-motion stance.
- Iconography — a stated icon grid/keylines, stroke weight, size set, and one style; document the rules even when assets are external.
- Theming — light/dark and (where the product needs it) multi-brand are implemented by re-pointing the semantic aliases at per-theme/brand primitives over one fixed semantic/component tier — never forked components.
- Component catalog — see Step 5 for sizing; spec each component with the same six parts: purpose, anatomy (parts + the tokens each uses), states (default/hover/active/focus/disabled/loading/error as applicable), variants (type + size), usage do/don't, accessibility (role, keyboard, focus, contrast, state conveyance). Keep one API vocabulary across the catalog (the same variation axis named the same everywhere —
variant/size/state, not type here and mode there; shared values compose dimensionally).
- Patterns — name the recurring multi-component scenarios the flows need (form validation, empty state, destructive-confirm, …), the components/tokens each composes, and the rules.
- Layout & internationalization conventions — breakpoints + grid (columns/gutter/margins) + min hit-target + focus order; and internationalization/RTL where the product is/will be localized: text-expansion headroom (flexible containers), logical CSS properties, RTL/bidi mirroring, locale font stacks, locale formatting. A stated single-locale tool may scope i18n out explicitly.
- Accessibility standards — numeric + checkable, to WCAG 2.2 AA (see Step 6).
- Voice & content — voice + a tone spectrum (formal↔playful) with the high-stakes rule (clarity over brand voice in errors/destructive moments); terminology (one term per concept); component copy rules (button = verb-first; error = cause + fix; empty = guide-to-action).
- Lifecycle & governance — omittable for a single-maintainer + single-consumer + non-versioned-external system; required above that threshold, and then document: versioning (semver) + changelog, deprecation + migration policy, contribution model, ownership, adoption/getting-started, and the recorded audience (
references/governance.md).
Step 5: Size the component catalog — the hard floor plus the standard set
The catalog must cover both: (a) the surface-area hard floor — every component the product's flows/screens actually use, each specced in full (non-negotiable); and (b) the common standard set sized to the archetype (a thin tool: a handful; a full UI product: the broad set). Where a needed component can't be fully specced from the available direction, surface it as an Open Question — don't invent its behavior.
Step 6: Make accessibility numeric (WCAG 2.2 AA)
State WCAG 2.2 AA as the target and every threshold as a number (references/accessibility-wcag22.md): text contrast ≥ 4.5:1 (large/UI ≥ 3:1); a visible focus indicator (SC 2.4.7, AA) that is not obscured when focused (SC 2.4.11, AA), and — adopting the stricter AAA Focus Appearance (SC 2.4.13) as a house rule — ≥ 2px + 3:1 vs unfocused + adjacent; target size 24×24 (+ spacing exception); full keyboard operability; reduced-motion; no color-only meaning; per-component role/name/state conveyance. Bake a11y into the token specs (contrast, focus) and every component's accessibility part — not a later pass.
Step 7: Amend mode — edit an existing system as a versioned delta
When handed an existing design system + a scoped change, amend, don't regenerate (references/amend.md). Scope the change to the token(s)/component(s) it touches and its ripple (every component referencing a changed token; every consumer of a renamed component; every theme alias affected). Make the minimal in-place edit — untouched tokens/components stay byte-for-byte. Version the delta: bump the system's semver (MAJOR breaking — rename/remove/retype; MINOR additive; PATCH fix) + a Keep-a-Changelog entry (Added/Changed/Deprecated/Removed/Fixed). For a breaking change, deprecate-then-migrate (deprecate in a minor → migration note → remove in a major), never silent removal. The alias layer is your friend — re-point a semantic alias rather than editing every component to shrink the blast radius.
Step 8: Self-check against the bar before handing off
Confirm all hold (the same bar reviewing-design-system asserts): principles stated; tokens defined + DTCG + intent-named + components reference semantic tokens (never raw values); foundations cover grid/density/iconography/modern-color where the archetype needs them; every component fully specced (six parts) + one API vocabulary; catalog covers the hard floor + the archetype standard set; patterns present; layout + i18n addressed (or i18n explicitly scoped out); accessibility numeric to WCAG 2.2 AA; voice + copy rules present; lifecycle/governance present (or legitimately omitted below the threshold); grounded-not-boilerplate; on an amend, the delta is scoped + versioned + deprecation-safe. Thin-direction gate: if the surface area can't be inferred even approximately, surface a blocker, don't invent a catalog.
Rules
Hard rules (never violate):
- Compose, don't duplicate. Take the section structure from the template tool; this skill supplies the method that fills it.
- Name tokens by intent; express in DTCG. Semantic tokens named for meaning (
color.feedback.danger), components reference semantic tokens never raw values; tokens in the W3C DTCG format (typed + aliased) at any size — no values-table exception.
- Theming is alias-swap. Light/dark + multi-brand re-point semantic aliases over one fixed tier — never forked components.
- Every component is fully specced + one API vocabulary. Anatomy + states + variants + usage + accessibility, and the same variation axis named the same across the catalog.
- Cover the surface-area floor. Every component a real screen uses is in the catalog, fully specced.
- Accessibility is numeric, to WCAG 2.2 AA. Contrast; focus — visible + not-obscured (AA) plus the AAA Focus Appearance ≥2px/3:1 adopted as a house rule; target-size 24px; keyboard; reduced-motion; no color-only. "Accessible" without numbers is not a standard.
- i18n: address or scope out explicitly. For a localized product, cover text-expansion + logical properties + RTL; a single-locale tool states the scope-out — never silently omit.
- Governance: omit below the threshold, require above it. Single-maintainer + single-consumer + non-versioned-external may omit the lifecycle/governance section; otherwise it is required.
- Amend = edit-not-redraw + versioned delta. On a change, make the minimal scoped edit, version it (semver + changelog), deprecate-then-migrate breaking changes; never regenerate or revamp untouched parts.
- Never fabricate. Don't invent a palette, contrast figure, or convention to look grounded. Unknown → an explicitly-flagged assumption.
- Textual medium. Values + spec tables (markdown), not a rendered design file.
- Buildable or not done. Don't hand off a system a designer/engineer can't build a consistent, accessible UI from.
Preferences (override-able):
- "Comprehensive" sets ambition; stay proportional — completeness of decisions, not row count. A thin product collapses sections + trims the standard set + may scope out i18n/multi-brand and omit governance (the hard floor + DTCG + numeric a11y still hold).
- Keep principles to 3–6 crisp bullets; prefer conventional token tiers / type-scale roles.
- Prefer re-pointing a semantic alias over a breaking token change where it preserves compatibility.
Gotchas
- Value-named or non-DTCG tokens.
color.blue.500 referenced by a button, or a flat hex list with no DTCG structure, kills theming + interoperability — name semantically, express in DTCG, even on a small system.
- Half-specced components. Variants but no states (or no accessibility) reads complete but can't be built consistently — all six parts, every component.
- API drift.
type vs variant vs mode across components erodes the system — one vocabulary.
- Catalog from the standard set only. Skipping a component a real screen uses leaves a coverage hole — walk the flows first.
- Aspirational accessibility. No WCAG 2.2 target / no numbers = not a standard.
- i18n as an afterthought. Fixed-width text + physical CSS properties break translation — bake flexible containers + logical properties into foundations.
- Regenerating on a change. Rewriting the whole system for a one-token change (instead of a scoped versioned delta) is the amend anti-pattern — edit-not-redraw.
- Generic fill. Tokens/components true of any product = you elaborated the template, not the product.
Anti-patterns
- "I'll write the outline myself." Duplicates the template tool — take the structure; supply method + bar.
- "DTCG is only for big systems." It's required at any size — a small system still gets typed/aliased tokens.
- "Accessibility is a later pass." Contrast, focus, keyboard live in the token + component specs — bake them in to WCAG 2.2.
- "The standard set is the catalog." It's half — the other half is every component the product's screens use.
- "It's a small change, I'll regenerate the system." Amend as a scoped versioned delta; never revamp untouched parts.
- "The direction is thin, so I'll invent a full catalog." Surface the missing surface area as a blocker/open-question.
Output
A design-system document meeting the Step 8 bar (principles; DTCG intent-named tokens consistently applied; full foundations incl. iconography/grid/density/modern-color; every component fully specced + one API vocabulary; catalog covering the floor + standard set; patterns; layout + i18n; numeric WCAG 2.2 AA accessibility; voice + copy rules; lifecycle/governance where required; grounded-not-boilerplate; on an amend, a scoped versioned delta). The abstract consumer is downstream wireframing + hi-fi (which reference its components/tokens), UI engineering (which builds from it), and a reviewer (which asserts the same bar). Expressed textually (markdown); precedes wireframes/hi-fi one-directionally.
Related
- A design-system template tool (content/template gateway) — supplies the section structure this skill fills.
- A deep-research capability — grounds tokens, components, patterns, the accessibility target, the DTCG format, and i18n/governance conventions.
reviewing-design-system — asserts the same bar; author + reviewer share one bar so they don't drift.
authoring-wireframes + authoring-hi-fi — downstream consumers: screens place this document's components and reference its tokens.
- The upstream product-direction / PRD (and optionally user-flows) — the input this skill elaborates; never a blank page.
Progressive disclosure
references/tokens-dtcg.md — the DTCG token format (tiers, typed $value, aliasing, theming/multi-brand, modern color spaces).
references/accessibility-wcag22.md — the WCAG 2.2 AA numeric thresholds + per-component a11y.
references/i18n-rtl.md — internationalization/RTL conventions (text-expansion, logical properties, locale typography).
references/governance.md — lifecycle & governance policy (versioning, deprecation/migration, contribution, ownership, adoption, audience) + the omit-below-threshold rule.
references/amend.md — amend mode (scope the ripple, edit-not-redraw, versioned delta, deprecate-then-migrate).
references/sources.md — research provenance for the method + the token/component conventions + the accessibility thresholds.
Body budget
description ≤ 1,024 chars (agentskills.io cap).
- Body ≤ ~500 lines / 5,000 tokens.
- Heavy content lives in
references/, loaded on demand.
1---2name: authoring-design-system3description: Use when authoring a design-system document — the reusable visual + interaction language a product's UI draws on: principles, design tokens (color, typography, spacing, elevation, motion, iconography) in the W3C DTCG format, a component catalog, patterns, layout + internationalization conventions, WCAG 2.2 AA accessibility, voice, and lifecycle/governance. Guides the METHOD, not the outline: grounding tokens/components in established practice, naming tokens by intent in a primitive/semantic/component tiering, theming via alias-swap (light/dark + multi-brand), sizing the catalog to the archetype, specifying each component with anatomy + states + variants + usage + accessibility, and amending an existing system as a scoped, versioned delta. Composes with a design-system template tool + deep-research. Targets a textual markdown artifact, not rendered swatches. Not for reviewing a design system, not per-screen layout (wireframing), not a coded component library.4---56# `authoring-design-system` — SKILL.md78> **Variant:** standard · **When to use:** producing (or amending) a design-system document from a product's direction, to a quality bar a designer/engineer can build a consistent, accessible UI from.910## Overview1112This skill is the *how-to* of writing a usable, consistent, accessible design-system document — the reusable visual + interaction language a product's UI draws on (principles, design tokens, a component catalog, patterns, layout + internationalization conventions, accessibility standards, voice, and lifecycle/governance). It supplies the producer's **judgment**, not the section list. It assumes two collaborators: a **design-system template tool** that supplies the section *structure*, and a **deep-research capability** to ground tokens and components in established practice. The producer is handed the **product direction (and any user-flows)** and must **elaborate** it — never emit generic boilerplate. The bar to clear: a designer can build a consistent UI and an engineer can implement it from the document, the catalog covers every component the product's screens need, and the system is accessible. The document is the *vocabulary* later wireframes and hi-fi draw on — it precedes them.1314The artifact is **textual markdown** — tokens as values + DTCG-shaped tables (hex/HSL/Oklch), type-scale + component spec tables. Not a rendered Figma file, not a compiled token package. The method is medium-independent; the artifact today is text.1516## When to activate1718- Authoring a new design-system document from a product's direction / PRD.19- Expanding a thin token set or component list into a full design system (foundations + catalog + patterns + accessibility + voice + governance).20- **Amending an existing design system** for a change (a new/changed token or component) — as a scoped, versioned delta (see Step 7).21- Filling a design-system template with researched, decision-complete content.2223**Do NOT activate when:**2425- Reviewing or grading a finished design system → use `reviewing-design-system` (it asserts the same bar this skill produces to).26- Defining per-screen layout / where components are placed → that is `authoring-wireframes`, which *references* the design system this skill produces.27- Producing the high-fidelity coded prototype → that is `authoring-hi-fi`, a downstream consumer.28- Shipping a coded component library (CSS/React) → this is the *document* (tokens + specs + rules), not the implementation.29- Authoring a different document type → use that type's skill.3031## Inputs3233Read **every document the plan hands you** — your `depends_on` set (the upstream documents discovery determined inform this one) — and trace this document's content back to them. The **recommended input set** that yields a production-grade design system: the **product-direction / PRD** (personas, purpose, surface area) and, where available, the **user-flows** (they signal which screens — and therefore which components — exist). On an **amend**, you are also handed the **existing design-system document** + the scoped change. This recommended set is **guidance, not a hard precondition** — be **self-contained**: produce from *whatever* context you actually receive; when an expected informing document is absent, proceed on what you have and surface the gap as an explicit assumption, never fabricate. **Use a research capability where one is available** (deep-research) to make the document comprehensive, not merely to fill the template.3435## Workflow3637### Step 1: Take the structure from the template tool — don't invent an outline3839Get the section structure from your design-system template tool (comprehensive variant). Do **not** restate or re-derive a section list here; this skill supplies the method that *fills* those sections well. If no template is available, obtain a comprehensive structure (request/forge one, or fall back to the canonical set: principles → tokens → component catalog → patterns → layout & i18n conventions → accessibility → voice → lifecycle/governance), then proceed.4041### Step 2: Load the product direction + surface area; identify the archetype4243Read the product direction / PRD and any **user-flows**. **Identify the product archetype** (thin CLI/utility vs. content app vs. full interactive UI product) — it sizes the whole system, including which optional angles apply (i18n, multi-brand, governance). Where brand/visual direction is thin, make choices **explicit** (a stated Assumption or Open Question), never silently generic. **Audience is an owner decision** — record the target user + domain-literacy as a Decision; surface an assumed audience as an Open Question, never bake it in silently.4445### Step 3: Research to ground tokens, components, accessibility, and conventions4647Use a deep-research pass to ground tokens, the component set, patterns, the accessibility target, the token *format*, and the i18n/governance conventions in **established practice** rather than invent them. **If no research capability is available, do NOT fabricate** — state the chosen conventions as explicitly-flagged assumptions against the canonical defaults.4849### Step 4: Apply the per-section method5051Fill the template's sections to this method (depth for each lives in `references/`):5253- **Principles** — 3–6 **opinionated, actionable** beliefs a reviewer could settle a disagreement with, each naming its tradeoff. Not platitudes.54- **Design tokens** — name every design decision as a token in **three tiers**: *primitive/reference* (raw value) → *semantic/system* (named by **intent**, references a primitive) → *component* (references a semantic). Name by **intent, not appearance** (`color.action.primary`, not `color.blue.500`) — the semantic layer is what components reference and what makes the system consistent + themeable. **Express tokens in the W3C DTCG format** (typed `$value`, aliasing) — this is **required at any size**, not just large systems (`references/tokens-dtcg.md`). Cover:55 - **Color** — primitive ramps + semantic role tokens (text / action / feedback / surface / border / focus); a recorded contrast ratio for every text + UI pairing (ties to accessibility). Use **modern color spaces** (Oklch / Display-P3 with sRGB fallback) where the product benefits; sRGB is a fine default.56 - **Typography** — a role × size **type scale** (display / headline / title / body / label) as a size / line-height / weight table, on a stated ratio; body line-height ≈ 1.4–1.6.57 - **Spacing & density** — one base unit on a 4/8px grid + a multiplicative scale; state a **density** stance for data-dense surfaces.58 - **Elevation** — a small named level set (resting → raised → overlay), each a shadow/surface, role-mapped.59 - **Motion** — duration + easing tokens composed into named transitions; include a **reduced-motion** stance.60 - **Iconography** — a stated icon grid/keylines, stroke weight, size set, and one style; document the rules even when assets are external.61 - **Theming** — light/dark and (where the product needs it) **multi-brand** are implemented by **re-pointing the semantic aliases** at per-theme/brand primitives over one fixed semantic/component tier — never forked components.62- **Component catalog** — see Step 5 for sizing; spec **each** component with the same six parts: purpose, **anatomy** (parts + the tokens each uses), **states** (default/hover/active/focus/disabled/loading/error as applicable), **variants** (type + size), **usage do/don't**, **accessibility** (role, keyboard, focus, contrast, state conveyance). Keep **one API vocabulary** across the catalog (the same variation axis named the same everywhere — `variant`/`size`/`state`, not `type` here and `mode` there; shared values compose dimensionally).63- **Patterns** — name the recurring multi-component scenarios the flows need (form validation, empty state, destructive-confirm, …), the components/tokens each composes, and the rules.64- **Layout & internationalization conventions** — breakpoints + grid (columns/gutter/margins) + min hit-target + focus order; and **internationalization/RTL** where the product is/will be localized: text-expansion headroom (flexible containers), logical CSS properties, RTL/bidi mirroring, locale font stacks, locale formatting. A stated single-locale tool may scope i18n out **explicitly**.65- **Accessibility standards** — numeric + checkable, to **WCAG 2.2 AA** (see Step 6).66- **Voice & content** — voice + a **tone spectrum** (formal↔playful) with the high-stakes rule (clarity over brand voice in errors/destructive moments); terminology (one term per concept); component copy rules (button = verb-first; **error = cause + fix**; **empty = guide-to-action**).67- **Lifecycle & governance** — **omittable** for a single-maintainer + single-consumer + non-versioned-external system; **required** above that threshold, and then document: versioning (semver) + changelog, deprecation + migration policy, contribution model, ownership, adoption/getting-started, and the recorded audience (`references/governance.md`).6869### Step 5: Size the component catalog — the hard floor plus the standard set7071The catalog must cover **both**: **(a) the surface-area hard floor** — every component the product's flows/screens actually use, each specced in full (non-negotiable); and **(b) the common standard set** sized to the archetype (a thin tool: a handful; a full UI product: the broad set). Where a needed component can't be fully specced from the available direction, surface it as an Open Question — don't invent its behavior.7273### Step 6: Make accessibility numeric (WCAG 2.2 AA)7475State **WCAG 2.2 AA** as the target and every threshold as a number (`references/accessibility-wcag22.md`): text contrast ≥ **4.5:1** (large/UI ≥ **3:1**); a **visible** focus indicator (SC 2.4.7, AA) that is **not obscured** when focused (SC 2.4.11, AA), and — adopting the stricter **AAA Focus Appearance** (SC 2.4.13) as a house rule — ≥ **2px** + **3:1** vs unfocused + adjacent; target size **24×24** (+ spacing exception); full keyboard operability; reduced-motion; no color-only meaning; per-component role/name/state conveyance. Bake a11y **into** the token specs (contrast, focus) and every component's accessibility part — not a later pass.7677### Step 7: Amend mode — edit an existing system as a versioned delta7879When handed an existing design system + a scoped change, **amend, don't regenerate** (`references/amend.md`). Scope the change to the token(s)/component(s) it touches **and its ripple** (every component referencing a changed token; every consumer of a renamed component; every theme alias affected). Make the **minimal in-place edit** — untouched tokens/components stay byte-for-byte. **Version the delta**: bump the system's semver (MAJOR breaking — rename/remove/retype; MINOR additive; PATCH fix) + a Keep-a-Changelog entry (Added/Changed/Deprecated/Removed/Fixed). For a breaking change, **deprecate-then-migrate** (deprecate in a minor → migration note → remove in a major), never silent removal. The alias layer is your friend — re-point a semantic alias rather than editing every component to shrink the blast radius.8081### Step 8: Self-check against the bar before handing off8283Confirm all hold (the same bar `reviewing-design-system` asserts): principles stated; tokens defined + DTCG + intent-named + components reference semantic tokens (never raw values); foundations cover grid/density/iconography/modern-color where the archetype needs them; every component fully specced (six parts) + one API vocabulary; catalog covers the hard floor + the archetype standard set; patterns present; layout + i18n addressed (or i18n explicitly scoped out); accessibility numeric to WCAG 2.2 AA; voice + copy rules present; lifecycle/governance present (or legitimately omitted below the threshold); grounded-not-boilerplate; on an amend, the delta is scoped + versioned + deprecation-safe. **Thin-direction gate:** if the surface area can't be inferred even approximately, surface a **blocker**, don't invent a catalog.8485## Rules8687**Hard rules (never violate):**8889- **Compose, don't duplicate.** Take the section structure from the template tool; this skill supplies the method that fills it.90- **Name tokens by intent; express in DTCG.** Semantic tokens named for meaning (`color.feedback.danger`), components reference semantic tokens never raw values; tokens in the W3C DTCG format (typed + aliased) **at any size** — no values-table exception.91- **Theming is alias-swap.** Light/dark + multi-brand re-point semantic aliases over one fixed tier — never forked components.92- **Every component is fully specced + one API vocabulary.** Anatomy + states + variants + usage + accessibility, and the same variation axis named the same across the catalog.93- **Cover the surface-area floor.** Every component a real screen uses is in the catalog, fully specced.94- **Accessibility is numeric, to WCAG 2.2 AA.** Contrast; focus — visible + not-obscured (AA) plus the AAA Focus Appearance ≥2px/3:1 adopted as a house rule; target-size 24px; keyboard; reduced-motion; no color-only. "Accessible" without numbers is not a standard.95- **i18n: address or scope out explicitly.** For a localized product, cover text-expansion + logical properties + RTL; a single-locale tool states the scope-out — never silently omit.96- **Governance: omit below the threshold, require above it.** Single-maintainer + single-consumer + non-versioned-external may omit the lifecycle/governance section; otherwise it is required.97- **Amend = edit-not-redraw + versioned delta.** On a change, make the minimal scoped edit, version it (semver + changelog), deprecate-then-migrate breaking changes; never regenerate or revamp untouched parts.98- **Never fabricate.** Don't invent a palette, contrast figure, or convention to look grounded. Unknown → an explicitly-flagged assumption.99- **Textual medium.** Values + spec tables (markdown), not a rendered design file.100- **Buildable or not done.** Don't hand off a system a designer/engineer can't build a consistent, accessible UI from.101102**Preferences (override-able):**103104- "Comprehensive" sets *ambition*; stay **proportional** — completeness of decisions, not row count. A thin product collapses sections + trims the standard set + may scope out i18n/multi-brand and omit governance (the hard floor + DTCG + numeric a11y still hold).105- Keep principles to 3–6 crisp bullets; prefer conventional token tiers / type-scale roles.106- Prefer re-pointing a semantic alias over a breaking token change where it preserves compatibility.107108## Gotchas109110- **Value-named or non-DTCG tokens.** `color.blue.500` referenced by a button, or a flat hex list with no DTCG structure, kills theming + interoperability — name semantically, express in DTCG, even on a small system.111- **Half-specced components.** Variants but no states (or no accessibility) reads complete but can't be built consistently — all six parts, every component.112- **API drift.** `type` vs `variant` vs `mode` across components erodes the system — one vocabulary.113- **Catalog from the standard set only.** Skipping a component a real screen uses leaves a coverage hole — walk the flows first.114- **Aspirational accessibility.** No WCAG 2.2 target / no numbers = not a standard.115- **i18n as an afterthought.** Fixed-width text + physical CSS properties break translation — bake flexible containers + logical properties into foundations.116- **Regenerating on a change.** Rewriting the whole system for a one-token change (instead of a scoped versioned delta) is the amend anti-pattern — edit-not-redraw.117- **Generic fill.** Tokens/components true of any product = you elaborated the *template*, not the *product*.118119## Anti-patterns120121- **"I'll write the outline myself."** Duplicates the template tool — take the structure; supply method + bar.122- **"DTCG is only for big systems."** It's required at any size — a small system still gets typed/aliased tokens.123- **"Accessibility is a later pass."** Contrast, focus, keyboard live in the token + component specs — bake them in to WCAG 2.2.124- **"The standard set is the catalog."** It's half — the other half is every component the product's screens use.125- **"It's a small change, I'll regenerate the system."** Amend as a scoped versioned delta; never revamp untouched parts.126- **"The direction is thin, so I'll invent a full catalog."** Surface the missing surface area as a blocker/open-question.127128## Output129130A **design-system document** meeting the **Step 8 bar** (principles; DTCG intent-named tokens consistently applied; full foundations incl. iconography/grid/density/modern-color; every component fully specced + one API vocabulary; catalog covering the floor + standard set; patterns; layout + i18n; numeric WCAG 2.2 AA accessibility; voice + copy rules; lifecycle/governance where required; grounded-not-boilerplate; on an amend, a scoped versioned delta). The **abstract consumer** is downstream wireframing + hi-fi (which reference its components/tokens), UI engineering (which builds from it), and a reviewer (which asserts the same bar). Expressed textually (markdown); **precedes** wireframes/hi-fi one-directionally.131132## Related133134- A **design-system template tool** (content/template gateway) — supplies the section structure this skill fills.135- A **deep-research capability** — grounds tokens, components, patterns, the accessibility target, the DTCG format, and i18n/governance conventions.136- `reviewing-design-system` — asserts the same bar; author + reviewer share one bar so they don't drift.137- `authoring-wireframes` + `authoring-hi-fi` — **downstream** consumers: screens place this document's components and reference its tokens.138- The upstream **product-direction / PRD** (and optionally **user-flows**) — the input this skill elaborates; never a blank page.139140## Progressive disclosure141142- `references/tokens-dtcg.md` — the DTCG token format (tiers, typed `$value`, aliasing, theming/multi-brand, modern color spaces).143- `references/accessibility-wcag22.md` — the WCAG 2.2 AA numeric thresholds + per-component a11y.144- `references/i18n-rtl.md` — internationalization/RTL conventions (text-expansion, logical properties, locale typography).145- `references/governance.md` — lifecycle & governance policy (versioning, deprecation/migration, contribution, ownership, adoption, audience) + the omit-below-threshold rule.146- `references/amend.md` — amend mode (scope the ripple, edit-not-redraw, versioned delta, deprecate-then-migrate).147- `references/sources.md` — research provenance for the method + the token/component conventions + the accessibility thresholds.148149## Body budget150151- `description` ≤ 1,024 chars (agentskills.io cap).152- Body ≤ ~500 lines / 5,000 tokens.153- Heavy content lives in `references/`, loaded on demand.