Figma Design System Builder
warpdotdev/warp
Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.
Write reference docs for existing design tokens: semantic intent, use/do-not-use, references, used-by, theming contract, misuse list.
$ npx skills add murphytrueman/design-system-ops --skill token-documentation -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install murphytrueman/design-system-ops token-documentation --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/token-documentation .claude/skills/token-documentation && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "token-documentation" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/token-documentation into .claude/skills/token-documentation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "token-documentation", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/murphytrueman/design-system-ops/tree/main/skills/token-documentationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add murphytrueman/design-system-ops --skill token-documentation -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install murphytrueman/design-system-ops token-documentation --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/token-documentation .agents/skills/token-documentation && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "token-documentation" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/token-documentation into .agents/skills/token-documentation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "token-documentation", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add murphytrueman/design-system-ops --skill token-documentation -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install murphytrueman/design-system-ops token-documentation --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/token-documentation .cursor/skills/token-documentation && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "token-documentation" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/token-documentation into .cursor/skills/token-documentation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "token-documentation", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/murphytrueman/design-system-ops.git --path skills/token-documentation--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add murphytrueman/design-system-ops --skill token-documentation -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install murphytrueman/design-system-ops token-documentation --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/token-documentation .gemini/skills/token-documentation && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "token-documentation" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/token-documentation into .gemini/skills/token-documentation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "token-documentation", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install murphytrueman/design-system-ops token-documentationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add murphytrueman/design-system-ops --skill token-documentation -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/token-documentation .github/skills/token-documentation && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "token-documentation" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/token-documentation into .github/skills/token-documentation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "token-documentation", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add murphytrueman/design-system-ops --skill token-documentation -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install murphytrueman/design-system-ops token-documentation --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/token-documentation .opencode/skills/token-documentation && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "token-documentation" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/token-documentation into .opencode/skills/token-documentation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "token-documentation", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
token-documentationWrite reference docs for existing design tokens: semantic intent, use/do-not-use, references, used-by, theming contract, misuse list.
Token Documentation is an agent skill from murphytrueman/design-system-ops. Write reference docs for existing design tokens: semantic intent, use/do-not-use, references, used-by, theming contract, misuse list. Triggers: document our tokens, token reference, what is this token for. Token structure/architecture audit: use token-audit; file validation: schema-validator.
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering Design tokens and Theming and dark mode. The repository describes itself as: Claude Code skills for the work that keeps a design system alive. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f167898. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteGrepGlobBash(cat:*)Bash(find:*)Bash(head:*)Bash(ls:*)Bash(grep:*)Bash(rg:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Token Documentation loads about 4.1k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 2,086 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from murphytrueman/design-system-ops at commit f167898, republished under its MIT licence (© murphytrueman). 2,086 words, ~4,136 tokens.
.claude/skills/token-documentation/SKILL.md (or your agent's skills folder).A skill for writing documentation for design tokens that communicates semantic intent, usage context, and application rules across all three tiers. Output is reference documentation that tells consumers what a token means and how to use it correctly — not just what value it resolves to.
Confirm that every path in this skill's frontmatter references: exists relative to this SKILL.md. If any is missing, stop: the install is incomplete, usually because a flattening installer (for example npx skills install) dropped the repo-root knowledge-notes/ directory. Tell the user to reinstall by a method in 1-INSTALL.md and run verify-install.sh from the install root. Proceed without the references only if the user explicitly says to, and then say in the output that it was produced without the pack's reference material.
Token documentation has a chronic problem: it stops at the value. A token reference that says color.action.primary: #0066CC tells a consumer the resolved colour, but not when to use it, what it communicates to users, which components it belongs on, or what happens when it is misapplied. Teams that rely purely on value-level documentation make naming decisions based on colour proximity rather than semantic intent, and the system drifts.
The goal is documentation that makes the semantic contract legible. A consumer reading these docs should come away understanding not just what a token resolves to, but why it exists and where it belongs.
This skill documents existing tokens. It does not create new tokens, redesign the token architecture, or validate token file structure (use schema-validator for structural validation, token-audit for architectural assessment). If the token set is empty or has not been defined yet, this skill does not apply — help the team establish their token architecture first. If only primitive tokens exist (no semantic tier), note that the documentation value is limited since primitive tokens are largely self-documenting, and suggest establishing a semantic tier before investing in documentation.
If .ds-ops-config.yml exists, follow the configuration-and-recurring knowledge note (../../knowledge-notes/configuration-and-recurring.md) for loading, integration fallbacks and recurring runs. This skill reads:
integrations.style_dictionary — the token tree, parsed automaticallyintegrations.figma — Figma variables to cross-referenceintegrations.documentation — existing token docs to update rather than rewriteStyle Dictionary (4 or 5) or Terrazzo (integrations.style_dictionary.enabled: true, or a config in the repo):
Figma MCP (integrations.figma.enabled: true):
Documentation platform (integrations.documentation.enabled: true):
Ask for or confirm (skip questions already answered by auto-pull):
:root { --token: value; }), SCSS/Sass variables ($token: value;), TypeScript/JavaScript token objects, Tailwind config (theme / extend block), or listed by nameFor CSS custom properties and SCSS variables: infer token hierarchy from naming patterns (e.g. --color-blue-500 → primitive, --color-action-primary → semantic, --button-bg-default → component). For Tailwind configs, the theme block is the token source. For TypeScript/JavaScript token objects: the exported object hierarchy maps directly to token tiers — nested keys are the path (e.g. tokens.color.brand.blue[500] → color.brand.blue.500). Include both the object key path and resolved value in the documentation. For as const objects, the literal types provide exact values without runtime ambiguity.
If the full system is being documented, suggest starting with the semantic tier. Semantic tokens are where intent documentation does the most work. If the system uses component tokens, include those after semantics.
Provenance rule. Names, values and references come from the token files. Intent comes from token descriptions ($description or equivalent), the team's docs, or the user; intent you write from the name alone is marked "proposed". "Used by" and misuse entries follow the rules in Step 2 and Step 4. See "Every figure and fact needs a source" in the output-discipline knowledge note.
Primitive token documentation is lightweight. The goal is to establish what the scale looks like and what it is derived from — not to explain when to use color.blue.400 vs color.blue.500, because that is the semantic tier's job.
Document:
Format per primitive group:
[Token group name]
Scale: [describe the scale — e.g. 50–950 in 50-point increments, or T-shirt sizing]
Source: [where values come from]
Values: [list or reference to the token file]
Usage: Reference via semantic tokens only.Semantic tokens carry the intent contract. This is where most documentation effort belongs.
For each semantic token or semantic token group, document:
Intent: What does this token communicate to users? One sentence. Not what it looks like — what it means.
Example: color.action.primary — Identifies the primary interactive action in a given context. Signals that an element is the most important or most expected next step for the user.
Resolved value: What value does this token produce in the default theme? (And in other themes if theming is supported.)
Tier reference: Which primitive token does this semantic token reference?
Usage context: Where this token belongs — which component surfaces, which states, which user-facing roles.
Usage constraint: Where this token should not be used — specific misuse patterns to avoid.
Component associations: Which components reference this token. Build this by searching component source (styles, token bindings, component token files) for each token's name in the forms the codebase uses (e.g. color.action.primary, --color-action-primary, tokens.color.action.primary). Before writing "no components use this token", confirm the search finds a token you know is used; if it can't, write "not determined" instead.
Format per semantic token:
[token.name]
Intent: [one sentence on what this token communicates]
Resolved value: [value(s) by theme]
References: [primitive token(s)]
Use on: [list of appropriate surfaces or component types]
Do not use on: [specific misuse contexts]
Used by: [component names found referencing this token, or "not determined"]Not every system has a component token tier — many systems bind semantic tokens directly in component code, and that is a valid architecture. If the system does use component tokens, they are the most specific tier and the most commonly under-documented because they feel obvious. "Of course button.background.default is the button's default background" — but what should happen if a product team wants to override it? Which semantic token should they route through? Are there states the documentation has not covered?
If the system does not use component tokens, skip this section entirely. Do not recommend introducing them unless the context calls for it (white-labelling, multi-brand, complex components with many token bindings).
For component tokens, document:
Group component token documentation by component. Do not produce a flat alphabetical list of component tokens — it is unusable.
Format per component group:
[Component name] tokens
[token.name] — [prop or state it controls]
References: [semantic token]
Override guidance: [expected / discouraged / never — with one-sentence reason]If the system supports multiple themes (light/dark, brand variants, platform-specific themes), document how the semantic tokens resolve across themes and what the contract is for adding a new theme.
This documentation is often missing entirely, which means teams learn the theming system by reading the token files rather than by reading a clear contract. The contract should answer:
At the end of the documentation, include a brief misuse reference: the most common incorrect token usages, with the correct alternative for each. Take entries from token-compliance or drift-detection findings, or from the user. Anything else is labelled "anticipated" so it isn't read as an observed problem.
Format:
Common misuse: Using [wrong token] to achieve [visual outcome] ([source] or anticipated)
Why it's wrong: [one sentence — what the wrong token communicates that conflicts with the intended use]
Use instead: [correct token]Five to ten entries is usually enough to cover the most frequent errors.
At the top of the token documentation, include a governance section that answers the question every consumer eventually asks: "Who do I talk to when I need a token that does not exist?"
Ask the user for each field; leave [TBC] for anything they don't know rather than naming an owner or cadence yourself.
Token governance:
This note prevents the common failure mode where token documentation is accurate at publication but becomes stale because no one owns the update process.
The token file is where intent survives. Docs pages drift; a $description travels with the token into Style Dictionary, Terrazzo, Tokens Studio, Figma variable sync and any docs generator. So the machine-readable output of this skill is the source itself, not a parallel file:
$description. Put the use/do-not-use guidance under $extensions with a reverse-domain key the team chooses, for example "com.<org>.usage": { "useOn": [...], "doNotUseOn": [...] }, so tools that don't know it preserve it. Group-level $description covers a scale.comment property.figma_update_variable, so designers read what engineers read.Show the diff and write only after the user confirms. Intent marked "proposed" is written as [proposed] … so nobody mistakes a guess for a decision. A separate JSON reference is a copy that drifts: produce .ai/tokens/token-reference.json only if the user asks for it, and then generate it from the source after the write-back, never by hand.
DTCG alignment (only if the system uses or is migrating to DTCG). One short section: the token types in use and any composite sub-value conventions; for resolvers, each set's purpose and files, each modifier and its contexts, and the resolution order (a diagram if there are more than three sets or contexts); and, if partly migrated, which categories are done and what remains.
Unless integrations.documentation names a platform, write markdown the docs site can ingest:
docs/tokens/
README.md index: tiers explained, governance note (Step 4b), theming contract (Step 3), links
primitives.md per group: scale, source, "reference via semantic tokens only"
semantic.md grouped by function (actions, feedback, text roles, surfaces, spacing roles), the Step 2 format per token
components.md only if the system uses component tokens; grouped by component
quick-reference.md Step 6b
misuse.md Step 4If token docs already exist, update them in place and say what changed; don't leave two sets. The semantic reference is the most-used page: it comes first in the index and its groups are the jobs consumers do, not the token categories.
In addition to the full documentation, produce a one-page quick reference organised by what the consumer is trying to do, not by token category:
Illustrative lines:
color.action.primaryspacing.lgtypography.heading.lgUse the system's real token names, grouped by the jobs consumers actually do (colour, spacing, typography). Publish it alongside the full documentation as a fast-lookup tool.
End with a short chat summary:
$description (or comments) were updated, and .ai/tokens/token-reference.json only if the user asked for it[TBC] governance fields© murphytrueman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/token-documentation of murphytrueman/design-system-ops.
Open the folder on GitHubat commit f167898
Token Documentation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Token Documentation this skillmurphytrueman/design-system-ops | 203 | — | ~4.1k | Automated safety check: Pass | MIT | |
| Figma Design System Builderwarpdotdev/warp | 65k | 2 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| MCP Developmentcoollabsio/coolify | 63k | 1 repos | ~949 | Automated safety check: Pass | MIT | |
| Scalar Design Systemscalar/scalar | 16k | — | ~2.7k | Automated safety check: Pass | MIT | |
| Refactoring UIs0xDk/refactoring-ui-skill | 586 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Liuguang Banlan UIsickn33/agentic-awesome-skills | 47k | 1 repos | ~2.5k | Automated safety check: Pass | MIT |
warpdotdev/warp
Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.
coollabsio/coolify
A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.
scalar/scalar
Scalar's design system — design tokens, theming (@scalar/themes), CSS variables, and the @scalar/components library.
s0xDk/refactoring-ui-skill
Design and improve user interfaces using the concrete rules from Refactoring UI (Wathan & Schoger) — constrained spacing/type/color/shadow scales, visual hierarchy through weight and color rather…
sickn33/agentic-awesome-skills
Implements an interface in one of two named color modes, iridescent white or colorful black, from a parameterized starter that reports measured color intensity.
htmlstreamofficial/preline
Generates light and dark Preline theme CSS from a brand color or mood, previews it, and validates token coverage through bundled local scripts.
murphytrueman/design-system-ops
Write the AGENTS.md that tells coding agents how to use this design system: where things live, sourced rules, how to check work, what not to do; Claude, Cursor or Copilot pointers on request.
murphytrueman/design-system-ops
Write a six-section prose description (purpose, props, anti-patterns, composition, accessibility, examples) for a Figma component's description field so LLMs read it via MCP.
murphytrueman/design-system-ops
Write release notes, a migration guide and a team announcement for a design system change that is already decided, scaled to its impact.
murphytrueman/design-system-ops
Generate machine-readable index files in .ai/index/ (component inventory, uses/usedBy graph, stats) for AI agents.
murphytrueman/design-system-ops
Generate tested jscodeshift/postcss codemods for design system migrations: token renames, prop renames or removals, import paths, component swaps.
murphytrueman/design-system-ops
Audit prop APIs across a component library: naming consistency, boolean/default patterns, type coverage, exported types, breaking changes between versions.
Categories
Write reference docs for existing design tokens: semantic intent, use/do-not-use, references, used-by, theming contract, misuse list. Token Documentation is an agent skill from murphytrueman/design-system-ops. Write reference docs for existing design tokens: semantic intent, use/do-not-use, references, used-by, theming contract, misuse list.
Token Documentation fits situations like: tasks that involve Design tokens; tasks that involve Theming and dark mode.
Run `npx skills add murphytrueman/design-system-ops --skill token-documentation -a claude-code`. Or copy the skill folder (skills/token-documentation in murphytrueman/design-system-ops) into .claude/skills/token-documentation in your project. Claude Code loads it when a task matches its description.
Run `npx skills add murphytrueman/design-system-ops --skill token-documentation -a codex`. Or copy the skill folder (skills/token-documentation in murphytrueman/design-system-ops) into .agents/skills/token-documentation in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add murphytrueman/design-system-ops --skill token-documentation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/token-documentation, .gemini/skills/token-documentation, .github/skills/token-documentation and .opencode/skills/token-documentation in your project.
Going by SKILL.md and its folder, Token Documentation needs the command-line tools its instructions call (npx). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Write, Grep, Glob, Bash(cat:*), Bash(find:*), Bash(head:*), Bash(ls:*), Bash(grep:*), Bash(rg:*).
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Token Documentation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.1k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Token Documentation: Figma Design System Builder (warpdotdev/warp, 65k stars), MCP Development (coollabsio/coolify, 63k stars), Scalar Design System (scalar/scalar, 16k stars) and Refactoring UI (s0xDk/refactoring-ui-skill, 586 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
murphytrueman (a GitHub user) maintains it in murphytrueman/design-system-ops, which has 203 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on September 24, 2026.
Source: murphytrueman/design-system-ops on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.