Agent skill

Design To Code Check

by murphytrueman in murphytrueman/design-system-ops

Compares a component or screen's design spec with its code and logs each gap as a build error or spec gap.

MITAuto-check passedFrontend & Design

Install Design To Code Check

skills CLI
$ npx skills add murphytrueman/design-system-ops --skill design-to-code-check -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install murphytrueman/design-system-ops design-to-code-check --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/design-to-code-check .claude/skills/design-to-code-check && rm -rf skills-src

Use ~/.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/

Facts

Skill name
design-to-code-check
GitHub stars
203
Token cost
~4k tokens
SKILL.md length
2,151 words
Files
1
Skills in repo
36
Repo updated
First seen
Licence
MIT

At a glance

Compares a component or screen's design spec with its code and logs each gap as a build error or spec gap.

  • Works in 4 steps: Gather the comparison materials → Run the check across all dimensions → Classify each discrepancy → …
  • Handover review
  • SKILL.md covers Before you begin: verify…, Context, Configuration and Auto-pull integrations, plus 7 more sections
  • Calls npx

What it does

Design To Code Check is an agent skill from murphytrueman/design-system-ops. Compares a component or screen's design spec with its code and logs each gap as a build error or spec gap. Use it for design QA, handover review or sign-off: whenever someone asks if a build matches its design or spec, even one component with the spec pasted in. System-wide drift: drift-detection.

Its SKILL.md is about 4k 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 to code and GitOps. The repository describes itself as: Claude Code skills for the work that keeps a design system alive. The licence is MIT.

When your agent uses it

  • Handover review
  • Sign-off: whenever someone asks if a build matches its design
  • Even one component with the spec pasted in

Example prompts

  • “Use the design-to-code-check skill to compare a component or screen's design spec with its code and logs each gap as a build error or spec gap”
  • “/design-to-code-check”

Requirements

  • Node.js
  • Pre-approved tools (allowed-tools): Read, Write, Grep, Glob, Bash(cat:*), Bash(find:*), Bash(head:*), Bash(ls:*), Bash(grep:*), Bash(rg:*)

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Gather the comparison materials
  2. Run the check across all dimensions
  3. Classify each discrepancy
  4. Produce the report

What it can do on your machine

Read from SKILL.md and the folder at commit f167898. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Grep
    • Glob
    • Bash(cat:*)
    • Bash(find:*)
    • Bash(head:*)
    • Bash(ls:*)
    • Bash(grep:*)
    • Bash(rg:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Design To Code Check loads about 4k tokens when it runs. Until then it costs about 80 tokens; SKILL.md has 2,151 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~80
When it runs · the whole SKILL.md, loaded when a task matches
~4k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from murphytrueman/design-system-ops at commit f167898, republished under its MIT licence (© murphytrueman). 2,151 words, ~3,988 tokens.

Download SKILL.mdSave it as .claude/skills/design-to-code-check/SKILL.md (or your agent's skills folder).
name
design-to-code-check
description
Compares a component or screen's design spec with its code and logs each gap as a build error or spec gap. Use it for design QA, handover review or sign-off: whenever someone asks if a build matches its design or spec, even one component with the spec pasted in. System-wide drift: drift-detection.
allowed-tools
Read, Write, Grep, Glob, Bash(cat:*), Bash(find:*), Bash(head:*), Bash(ls:*), Bash(grep:*), Bash(rg:*)
references
../../knowledge-notes/design-to-code-contract.md, ../../knowledge-notes/output-discipline.md

Design-to-code check

A skill for reviewing the alignment between a design specification and its code implementation, producing a structured discrepancy report catalogued by dimension and severity.

Before you begin: verify references

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.

Context

Design-to-code alignment reviews catch two different categories of problem. The first is implementation error — the developer built something different from what was specified, either by mistake or because the specification was unclear. The second is specification ambiguity — the design did not define behaviour completely enough for the developer to implement it correctly, and the developer made a reasonable guess that turned out to be wrong.

Both categories matter, but they require different responses. An implementation error needs to be corrected in the code. A specification ambiguity needs to be corrected in the design and documented, so the same guess does not get made again.

This skill produces a report that distinguishes between the two.


Configuration

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:

  • severity.* — discrepancy severity overrides, especially specification_gap and missing_interaction_state
  • system.framework and system.styling — pre-select framework-specific checking guidance
  • integrations.figma — the design specification (see below)
  • integrations.chromatic — visual regression data as a supplementary signal
  • integrations.github — the component source
  • gates.design_to_code — if running as part of component-to-release, determines which findings block release

Auto-pull integrations

Figma MCP (integrations.figma.enabled: true, or a Figma link in the request):

  • Official Figma MCP: get_design_context on the component's node for its properties, variants, layout and styles, and get_variable_defs for the variables that node binds, which is how the spec names its tokens. Both are selection- or node-scoped, so ask for the node link if the file key alone is given.
  • Figma Console MCP: figma_get_component_for_development for the dev-ready spec, figma_capture_screenshot for the rendered reference.
  • Record the node id with every value taken from Figma; it goes in the log as evidence.

Chromatic (integrations.chromatic.enabled: true):

  • Pull the latest visual snapshots for the component being checked
  • Use visual diffs between the Chromatic baseline and the current implementation as a supplementary signal for Dimensions 1–3 (spacing, colour, typography): it surfaces differences the manual review should confirm, never marks a dimension as matching

GitHub (integrations.github.enabled: true):

  • If the component implementation is in the configured repo, pull the component source files directly
  • Identify the component's last update date and recent changes to contextualise findings

Step 1: Gather the comparison materials

Ask for or confirm (skip questions already answered by auto-pull):

  • The design reference: Figma file link, exported specs, or described specification (skip if pulled from Figma MCP)
  • The implementation reference: component in code (React, Vue, Twig, etc.), a link to a running implementation, or a description of what was built. Note the styling approach — CSS custom properties, SCSS variables, Tailwind utility classes, or CSS-in-JS — as this affects how token references are identified during the check.
  • The component or screen being reviewed
  • Whether this is a first-pass review or a follow-up check after a previous round of corrections
  • Any known areas of concern the review should pay particular attention to

If both design and implementation are available directly, proceed to the check. If only one is available, note in the report which side of the comparison is inferred rather than directly inspected — dimensions that depend on the inferred side are reported as "not checked", not ✅.

Step 1b: Design specification checklist

Before running the check, verify the design specification is complete enough to check against. Incomplete specs are the root cause of Type II (specification gap) findings — catching them upfront reduces noise in the report.

Design specification completeness checklist:

  • All interactive states are defined (default, hover, active, focus, disabled, error, loading)
  • Spacing values are specified using token names, not pixel values
  • Colour values are specified using token names, not hex values
  • Typography is specified using type scale tokens
  • Responsive behaviour is defined for at least two breakpoints
  • Focus indicator style is specified
  • Content overflow behaviour is defined (truncation, wrapping, scrolling)
  • Touch target sizes are specified for mobile breakpoints

If the specification fails this checklist: Note the missing items and proceed with the check. Missing specification items will appear as Type II findings in the report — but flagging them upfront sets the right expectation: these are design gaps, not implementation errors.

Step 2: Run the check across all dimensions

Review alignment across five dimensions. For each dimension, the goal is not to produce a list of every difference — minor sub-pixel differences in a rounding pass are not discrepancies worth reporting. The goal is to identify differences that affect visual consistency, user experience, or system integrity.

Dimension 1: Spacing and layout

Check:

  • Padding and margin values: do they match design specifications, and are they using the correct spacing tokens?
  • Element alignment: horizontal and vertical alignment of components within their containers
  • Gap between elements in flex or grid layouts
  • Component sizing: width and height where specified, or proportional behaviour where not fixed
  • Responsive behaviour: does the implementation respond to breakpoints as specified?

Where the spec names a token (or the system has one for the value), a raw value in the implementation is a discrepancy even when the number matches: it won't theme or track the scale. Log it against the property the spec covers. Sweeping the whole component for raw values regardless of spec is token-compliance's job, with its per-styling-approach rules for what counts as a token reference (SCSS variables, var(), Tailwind utilities versus arbitrary values, Emotion helpers); apply the same rules here and don't widen the check beyond the spec'd properties.

Dimension 2: Colour and visual treatment

Check:

  • Background colours, border colours, text colours: are they referencing the correct design tokens?
  • Shadow and elevation: correct values, correct token references
  • Border radius: correct values, consistent with the design system's radius scale
  • Opacity: correct values and applied to the correct element
  • Gradient or background treatments if present

Flag raw colour values on the properties the spec covers, as in Dimension 1.

Dimension 3: Typography

Check:

  • Font family: correct typeface applied
  • Font size: correct size, using the correct type token
  • Font weight: correct weight at each text role
  • Line height: correct leading, using the correct token or documented value
  • Letter spacing: correct tracking where specified
  • Text alignment: left, centre, right, or justified as designed
  • Text truncation or overflow handling: does the implementation handle long strings as designed?
Dimension 4: Interactive states

Check:

  • Default state: visual treatment matches design
  • Hover state: correct treatment applied on hover
  • Active/pressed state: correct treatment on click or touch
  • Focus state: visible, compliant focus indicator applied (this is also an accessibility check)
  • Disabled state: correct reduced-prominence treatment
  • Loading state: if designed, correctly implemented
  • Error state: if applicable, correctly applied and correctly associated with the relevant element
  • Empty state: if applicable, correctly implemented

Interactive states are the most commonly under-implemented dimension. Flag any state that was designed but is not present in the implementation.

How states are checked from source. A state exists in the implementation when the source has a rule for it: :hover, :focus-visible (or :focus), :active, :disabled or [disabled]/[aria-disabled="true"], [aria-busy="true"] or a loading prop branch, [aria-invalid="true"] or an error prop branch, an empty-state branch in the template. Read those selectors and branches and compare their values with the spec. A designed state with no rule or branch is "not implemented". What those rules render (the actual hover colour on screen, the focus ring's visibility over a background) can only be confirmed in a running build or Storybook; if none was used, report the values as compared from source and the rendering as "not checked", not ✅.

Show full SKILL.md (828 more words)Show less
Dimension 5: Responsive and adaptive behaviour

Check:

  • Breakpoint transitions: does the layout change at the designed breakpoints?
  • Component behaviour at narrow viewports: does anything break, overflow, or truncate unexpectedly?
  • Touch target sizing: are interactive elements at least 24×24 CSS px (WCAG 2.5.8, AA)? 44×44 CSS px is the AAA bar (2.5.5). Platform guidance is 44pt on iOS and 48dp on Android — use whichever the spec or team adopts, and say which.
  • Content reflow: does text reflow correctly at all breakpoints?

From source: read the media and container queries and the responsive prop branches. Rendering at each breakpoint needs a running build; without one, mark the rendering "not checked".

Step 3: Classify each discrepancy

For each discrepancy found, classify it:

Type I: Implementation error The specification was clear. The implementation does not match it. Correct in code.

Type II: Specification gap The design did not define this case. The implementation made a reasonable assumption. Update the design specification to document the intended behaviour, then align the implementation.

Type III: System inconsistency The design itself diverges from the design system (uses a non-system colour, a spacing value not on the scale, etc.). The issue is in the design file, not the implementation.

Type IV: Accepted divergence A known, intentional difference — typically a technical constraint the design did not account for. Should be documented if it is not already.

Step 3b: Hand-offs (only on request)

  • Prop API contract (missing, undocumented, or mis-defaulted props): run component-api-validator rather than checking it here.
  • AI description drift (six-section description no longer matches the build): run ai-component-description to regenerate or validate it.

Step 4: Produce the report


Design-to-code check report

Open with a headline sentence that tells the reader the overall state and where to focus.

Component/screen: [name] Design reference: [Figma link or description] Implementation reference: [link or description] Review date: [date] Review round: [first pass / follow-up]


Summary

One paragraph. What is the overall alignment? Are discrepancies concentrated in a particular dimension? Is the work concentrated in a few fixes, or does it need significant rework?


Discrepancy log
IDDimensionTypeSeverityElementDesign spec (evidence)Implementation (evidence)Action
DC-01[dimension][I–IV]🔴 Critical / 🟠 High / 🟡 Medium / ⚪ Low[specific element][what the design says, with the Figma node id or the spec line][what was implemented, with file:line][who does what]

Every row carries both pieces of evidence. A discrepancy with no file and line on the implementation side, or no node id or spec line on the design side, isn't logged; it goes under "Not inspected" with what would be needed to check it.

Severity guidance:

  • 🔴 Critical: accessibility regression — focus that isn't visible (outline removed with nothing replacing it), insufficient colour contrast, or a component that can't be reached or operated by keyboard
  • A focus style the spec never defined, where the browser's default focus ring still shows, is a 🟠 High Type II spec gap rather than a regression: focus is visible, it just isn't designed. Check the CSS for outline: none / outline: 0 before calling it Critical
  • 🟠 High: visible to end users, affects perceived quality or usability
  • 🟡 Medium: system inconsistency (hardcoded value, wrong token), visible under close inspection
  • ⚪ Low: minor difference without user-facing impact

Summary by dimension

One line per dimension: ✅ PASS (compared, no discrepancies, with the evidence named), ⚠️ WARN (Medium or Low discrepancies only), ❌ FAIL (any Critical or High discrepancy), or not checked (one side was inferred or unavailable — say which). Helps the team understand where the work is concentrated.


Specification gaps identified

List any Type II findings separately. These require action from the designer, not the developer, and should be tracked as design tasks rather than development bugs.


Scope

  • Inspected: [design source (Figma node, export, description) and implementation files or running build actually compared]
  • Not inspected: [states, breakpoints, or variants not available on one side]
  • How "none found" was checked: [for any ✅ dimension, what was compared — e.g. computed styles against Figma values for each state]
  • Assumptions: [e.g. the Figma frame is the current approved spec]

If any of these discrepancies are deliberate (a known constraint or an agreed divergence), tell me and I'll log them as Type IV in future runs.


Quality checks

  • Discrepancies include both what the design specifies and what was implemented — not just "colour is wrong"
  • Type I (error) and Type II (spec gap) findings are clearly distinguished — they need different owners
  • Interactive states are checked thoroughly, not just the default state
  • Token compliance is checked as part of the colour and spacing dimensions — not just visual correctness
  • Accessibility regressions (invisible focus, insufficient contrast, no keyboard access) are always Critical; an undesigned focus style with the browser default still visible is High
  • The report is specific enough to act on without a follow-up conversation
  • Every logged discrepancy has a file and line on the implementation side and a node id or spec line on the design side
  • States and breakpoints are compared from their selectors and branches in source; rendering is marked "not checked" unless a build or Storybook was used

© murphytrueman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/design-to-code-check of murphytrueman/design-system-ops.

Open the folder on GitHubat commit f167898

Compare with similar skills

Design To Code Check 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.

Design To Code Check compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Design To Code Check this skillmurphytrueman/design-system-ops203—~4kAutomated safety check: PassMIT
Figma use_figma Plugin API Ruleswarpdotdev/warp65k4 repos~4.4kAutomated safety check: PassAGPL-3.0
Figma Design to Codewarpdotdev/warp65k4 repos~2.9kAutomated safety check: PassAGPL-3.0
Scalar Design Systemscalar/scalar16k—~2.7kAutomated safety check: PassMIT
Figma Design System Rules Generatorwarpdotdev/warp65k3 repos~4.6kAutomated safety check: PassAGPL-3.0
Figma Code Connect Componentswarpdotdev/warp65k2 repos~4.2kAutomated safety check: PassAGPL-3.0

Similar skills

  • Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.

    65k GitHub starsUsed in 4 repos~4.4k tokens
    Frontend & DesignAuto-check passed
  • Figma Design to Code

    warpdotdev/warp

    Turns a Figma frame or component into production code that matches the design, using the Figma MCP server and the project's own design system.

    65k GitHub starsUsed in 4 repos~2.9k tokens
    Frontend & DesignAuto-check passed
  • Scalar's design system — design tokens, theming (@scalar/themes), CSS variables, and the @scalar/components library.

    16k GitHub stars~2.7k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Creates project-specific design system rules from your codebase so coding agents implement Figma designs with your components, naming and tokens.

    65k GitHub starsUsed in 3 repos~4.6k tokens
    Frontend & DesignAuto-check passed
  • Maps published Figma components to their code implementations with Code Connect, using the Figma MCP suggestion and mapping tools.

    65k GitHub starsUsed in 2 repos~4.2k tokens
    Frontend & DesignAuto-check passed
  • Design To Code

    MigoXLab/coderio

    Pixel-perfect Figma to React conversion using coderio. An agent skill from MigoXLab/coderio.

    114 GitHub starsUsed in 2 repos~1.2k tokens
    Frontend & DesignAuto-check passed

More from murphytrueman/design-system-ops

All 36 skills in this repo
  • Agent Instructions

    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.

    203 GitHub stars~2.3k tokensUpdated 13 days ago
    Auto-check passed
  • AI Component Description

    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.

    203 GitHub stars~4.7k tokensUpdated 13 days ago
    Auto-check passed
  • Change Communication

    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.

    203 GitHub stars~3.4k tokensUpdated 13 days ago
    Auto-check passed
  • Codebase Index

    murphytrueman/design-system-ops

    Generate machine-readable index files in .ai/index/ (component inventory, uses/usedBy graph, stats) for AI agents.

    203 GitHub stars~4.7k tokensUpdated 13 days ago
    Auto-check passed
  • Codemod Generator

    murphytrueman/design-system-ops

    Generate tested jscodeshift/postcss codemods for design system migrations: token renames, prop renames or removals, import paths, component swaps.

    203 GitHub stars~4.9k tokensUpdated 13 days ago
    Auto-check passed
  • Component API Validator

    murphytrueman/design-system-ops

    Audit prop APIs across a component library: naming consistency, boolean/default patterns, type coverage, exported types, breaking changes between versions.

    203 GitHub stars~4.3k tokensUpdated 13 days ago
    Auto-check passed

Questions about Design To Code Check

What does Design To Code Check do?

Compares a component or screen's design spec with its code and logs each gap as a build error or spec gap. Design To Code Check is an agent skill from murphytrueman/design-system-ops. Compares a component or screen's design spec with its code and logs each gap as a build error or spec gap.

When should I use Design To Code Check?

Design To Code Check fits situations like: handover review; sign-off: whenever someone asks if a build matches its design; even one component with the spec pasted in.

How do I install Design To Code Check in Claude Code?

Run `npx skills add murphytrueman/design-system-ops --skill design-to-code-check -a claude-code`. Or copy the skill folder (skills/design-to-code-check in murphytrueman/design-system-ops) into .claude/skills/design-to-code-check in your project. Claude Code loads it when a task matches its description.

How do I install Design To Code Check in Codex?

Run `npx skills add murphytrueman/design-system-ops --skill design-to-code-check -a codex`. Or copy the skill folder (skills/design-to-code-check in murphytrueman/design-system-ops) into .agents/skills/design-to-code-check in your project. Codex loads it when a task matches its description.

Can I use Design To Code Check in Cursor, Gemini CLI or GitHub Copilot?

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 design-to-code-check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/design-to-code-check, .gemini/skills/design-to-code-check, .github/skills/design-to-code-check and .opencode/skills/design-to-code-check in your project.

What does Design To Code Check need to run?

Going by SKILL.md and its folder, Design To Code Check 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:*).

Does Design To Code Check access the network?

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.

Is Design To Code Check safe to install?

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.

What licence does Design To Code Check use?

Design To Code Check is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Design To Code Check use?

About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Design To Code Check?

Skills that share tags, products or a category with Design To Code Check: Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars), Figma Design to Code (warpdotdev/warp, 65k stars), Scalar Design System (scalar/scalar, 16k stars) and Figma Design System Rules Generator (warpdotdev/warp, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Design To Code Check?

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.