Builds and maintains the design system a product is assembled from — tokens for color, type, spacing and elevation, component contracts, and the rules that keep them coherent as the product grows. Use this when starting a new interface, when screens have drifted apart visually, when the same component exists three times in slightly different forms, or when a token or component needs adding without breaking what exists.
npx skills add https://github.com/cbrock84/headcount --skill design-system
A design system is a set of constraints that makes consistency the cheap path. If the system is
harder to follow than to ignore, it will be ignored.
Define the primitives before any component. Every visual decision references a token; nothing
hard-codes a value.
surface, surface-raised, text-primary,text-muted, border, accent, danger. A token named blue-500 cannot be re-themed.
that and nobody can tell them apart.
most common source of "it looks off but I can't say why."
Every token needs a light and dark value defined together. Adding dark mode later means auditing
every surface.
A component in the system carries: the states it supports (default, hover, focus, active, disabled,
loading, error, empty), the props that vary it, and what it will *not* do. The last one matters
most — a component that accepts arbitrary overrides is a styling function, not a component.
Every interactive component needs a visible focus state and a target big enough to hit. This is not
a polish item; it is whether people can use it.
local.
inside the system. Deprecate, announce, then remove.
Report tokens added or changed, components affected, anything now inconsistent with the system, and
what needs migrating.
Take cbrock84/design-system from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.