Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Author a 3-layer DTCG token system (primitive → semantic → component) with light/dark theming; generate CSS vars + Tailwind colors and lint hardcoded values. Use on design tokens / CSS variables.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Token authoring skill: the 3-layer DTCG model (primitive → semantic → component) with light/dark theming, a TypeScript toolchain (
scripts/tokens.ts— generate / validate / embed, run via ./scripts-run), and a starter template. Selection of which token values fit the product comes grounded fromdesign-intelligence(WCAG-adjusted color sets, typography pairings); this skill turns the selection into a maintained token system.
Toolchain provenance: port of the upstream .cjs trio
(generate-tokens, validate-tokens, embed-tokens) from
nextlevelbuilder/ui-ux-pro-max-skill design-system sub-skill
@ b7e3af80f6e331f6fb456667b82b12cade7c9d35 (MIT, last checked
2026-06-07); the HTML surface of upstream's html-token-validator.py is
folded into validate so there is exactly one token-discipline
linter. Obligations: design-intelligence/ATTRIBUTION.md.
| Layer | Names | References | Example |
|---|---|---|---|
| Primitive | raw scales | literal values only | primitive.color.blue.600 = #2563EB |
| Semantic | meaning | primitives via {primitive.…} | semantic.color.primary = {primitive.color.blue.600} |
| Component | per-widget | semantics via {semantic.…} | component.button.bg = {semantic.color.primary} |
Rules: components never reference primitives directly; dark mode lives
under dark.semantic.* overriding the same semantic names (emitted as a
.dark { … } block); every value is a {"$value": …, "$type": …} pair
(DTCG). Start from
the bundled starter template.
scripts/tokens.ts — skill-relative, any cwd)# tokens.json → CSS variables (primitives + semantic + components + .dark)
./scripts-run <skills-root>/design-tokens/scripts/tokens generate \
--config tokens.json -o assets/design-tokens.css
# tokens.json → Tailwind theme.extend.colors snippet
./scripts-run …/tokens generate --config tokens.json --format tailwind
# token-discipline lint: hardcoded hex/rgb/px/rem outside token files
./scripts-run …/tokens validate --dir src/ [--json]
# embeddable inline CSS for standalone HTML artifacts
./scripts-run …/tokens embed --tokens assets/design-tokens.css --minimal --style
validate --json emits findings with "kind": "token_violation" — the
exact finding kind the UI directive set's polish step auto-converts
against state.ui_audit.design_tokens. Wire it into review/polish runs:
scan the changed files, append the findings to
state.ui_review.findings, and let the polish round fix them
(var(--token) over hardcoded hex — the validation rule the council's
four-operation split assigns to rules/linters, not the corpus).
Set artifact_covered: true on a finding whose value traces to a provided
design artifact. Without it the polish round edits AWAY from the artifact:
polish.ts::partition_artifact_covered drops flagged findings and treats every
unmarked one as actionable, and this path appended token_violation findings
without the flag — so a hex the handover states was converted to a project token
by a loop nobody asked. The flag is per finding, not per run: a hardcoded hex
the artifact never mentioned stays actionable and is still fixed. Marking is not
suppression — the finding stays in the report as informational, so a reader
still sees that the spec carries a value the token system does not.
(AI council 2026-09-09 on blocker: findings-actionability-default, option (b):
one call site, no package-wide default changed. Reopens if a second
artifact-derived finding path reaches the loop without provenance — recurrence
would argue for carrying provenance in the finding TYPE rather than at a third
call site.)
design-intelligence query gives the
WCAG-checked semantic color set + typography pairing for the product.
No brand and no corpus match (a genuinely from-scratch palette) →
derive the accent set in oklch() with shared lightness and chroma,
varied hue (oklch(50% 0.15 250) / … 200 / … 280) — equal L/C
keeps the hues perceptually balanced where random hex codes drift in
saturation; cross-check the result against C1/C5 avoidance before
locking it in.tokens.json from the starter: fill primitives, point
semantics at them, add dark.semantic overrides.tailwind-engineer).var(--token).validate until clean — exit code 0 is the evidence.tokens.json (DTCG, 3 layers + dark.semantic).design-tokens.css (+ Tailwind theme.extend.colors
snippet when the stack is Tailwind).validate report — exit 0 evidence, or the violations list handed to
the polish round as token_violation findings.scripts/tokens.ts is the only shipped script.
tokens.json config path it is given, the
directory it is asked to validate, and the --output path it is asked
to write. Nothing outside the paths named on the command line.generate prints to stdout unless
--output PATH is passed; --output is the flag that makes it mutating,
and it creates only that file's parent directory. validate never writes.tokens.json is the single source.#000/#fff and
runtime-computed values are legitimate; review each.validate intentionally skips #000/#fff(+6-digit forms), values on
lines already using var(--…), comments, token-definition files, and
known external asset hosts — review its output, don't blindly allowlist.brand-guidelines.md → scale generation) is
deferred per council 2026-06-07 (fork D2) — watch note:
agents/settings/contexts/domain-watch/brand-token-pipeline.md.tokens.json the single source; never hand-edit the generated CSS.design-canon.md § Colour references — a11y-contrast + culturally-specific palettes + named-system token models.design-intelligence — grounded value selection.tailwind-engineer — utility-discipline consumer.react-shadcn-ui — shadcn token conventions.docs/guidelines/design-antipatterns.md — when authoring the colour layer, avoid the C5 cream/sand default palette (OKLCH L 0.84–0.97, C < 0.06) and C1 purple/violet primaries unless the brand explicitly defines them; the brand-consistency rule validates emitted tokens against the active brand profile.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
日本語の概要は準備中です。原文の説明を表示しています。
Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.
日本語の概要は準備中です。原文の説明を表示しています。
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
日本語の概要は準備中です。原文の説明を表示しています。
Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.
日本語の概要は準備中です。原文の説明を表示しています。