mcpField
D
design-md-validator

design-md-validator

github.com/fabricioctellesDesign & UI123191 installsUpdated 2d ago
Repository

About design-md-validator

design-md-validator is an Agent Skill for validating, comparing, and exporting DESIGN.md files with Google's @google/design.md CLI. It invokes the latest published version through npx and can inspect the current specification and rules.

Key features

  1. 01Lint DESIGN.md and report findings
  2. 02Compare token changes between versions
  3. 03Export to Tailwind and DTCG formats
  4. 04Inspect the format specification and active rules
  5. 05Read files from standard input

Use cases

  1. 01Check whether DESIGN.md follows the specification
  2. 02Compare design file versions and identify regressions
  3. 03Export design tokens to another format

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/fabricioctelles/skills --skill design-md-validator

After installing, type/design-md-validatorin Claude Code to confirm it loaded.

Bundled filesreferences/linting-rules.mdreferences/token-schema.md

Details

From the project README

design-md-validator

Validate, lint, diff, and export DESIGN.md files using the official Google @google/design.md CLI. Always uses the latest published version from npm — no vendored copy, always up-to-date with the spec.


When to Use

TriggerAction
User has a DESIGN.md file and wants validationlint
User wants to compare two versionsdiff
User wants to export tokens to Tailwind/DTCGexport
User wants to see the current specspec
User shares a URL to a raw DESIGN.mdDownload locally first
User asks "is my design.md valid?"lint + interpret findings

Core Commands

All commands use npx @google/design.md to ensure the latest version is always used. Never install globally — npx resolves from the public npm registry.

Lint (validate)
npx @google/design.md lint DESIGN.md

Output: JSON with findings[] and summary { errors, warnings, infos }. Exit code 1 if errors found, 0 otherwise.

Diff (compare versions)
npx @google/design.md diff DESIGN.md DESIGN-v2.md

Output: JSON with token-level changes (added, removed, modified) and regression flag. Exit codes: 0 no regression, 1 regression (errors in "after" > errors in "before"), 2 input failure (file not found or unreadable).

Export (to other formats)
# Tailwind v3 config
npx @google/design.md export --format json-tailwind DESIGN.md

# Tailwind v4 CSS theme
npx @google/design.md export --format css-tailwind DESIGN.md

# W3C Design Tokens (DTCG)
npx @google/design.md export --format dtcg DESIGN.md

# CSS custom properties (optional --prefix)
npx @google/design.md export --format css-vars DESIGN.md
npx @google/design.md export --format css-vars --prefix ds DESIGN.md

css-vars shipped in npm 0.4.0 (2026-07-27). Pin with npx @google/[email protected] only if you must freeze the CLI; default npx already resolves 0.4.0+.

Spec (output the format specification)
npx @google/design.md spec
npx @google/design.md spec --rules
npx @google/design.md spec --rules-only --format json

Workflow

1. Obtain the DESIGN.md

Local file:

npx @google/design.md lint ./DESIGN.md

From URL: If the user provides a URL to a remote DESIGN.md file, download it locally first before validation.

From stdin:

cat DESIGN.md | npx @google/design.md lint -
2. Discover the Active Rule Set

Before interpreting anything, check which rules the installed CLI actually runs — the rule set changes between releases, and the bundled references are a fallback, not the authoritative source:

npx @google/design.md spec --rules-only --format json
3. Run Lint
npx @google/design.md lint --format json DESIGN.md
4. Interpret Findings

Parse the JSON output and report to the user:

SeverityMeaningAction
errorSpec violation — file is invalidMust fix
warningBest practice violation — file is valid but suboptimalShould fix
infoInformational — suggestions for improvementNice to fix
5. Provide Actionable Fixes

For each finding, explain:

  1. What the rule checks
  2. Why it matters
  3. How to fix it with a concrete code example
6. Re-validate After Fixes

After applying fixes, re-run lint to confirm the file passes.


Linting Rules Reference

Load references/linting-rules.md for the complete rule table when providing detailed explanations of lint failures.


Token Schema Quick Reference

Load references/token-schema.md for the complete token schema when helping users author or fix their tokens.

Since spec commit 6e5da53 (#178, 2026-10-16; CLI npm 0.4.0 already accepts it), tokens may live in YAML front matter, in fenced ```yaml blocks inside each ## section, or both (hybrid). All blocks merge into one token tree; a top-level key (e.g. colors) defined in more than one block is a spec error (CLI 0.4.0 only warns: Section '<key>' is defined in both frontmatter and code block N) — when it shows up, move every entry of that key into a single block.


Windows Compatibility

On Windows/PowerShell, the .md suffix in the bin name collides with Markdown file associations. Use the designmd alias:

npx -p @google/design.md designmd lint DESIGN.md

Related Official Skills

Names below match google-labs-code/stitch-skills as of 2026-09-16. stitch-design-taste is gone.

SkillPluginPurpose
generate-designstitch-designNew screens, edits, variants in Stitch
extract-design-mdstitch-designDESIGN.md from frontend source
design-mdstitch-utilitiesDESIGN.md from a Stitch project
taste-designstitch-utilitiesPremium / anti-generic DESIGN.md

Install:

npx skills add google-labs-code/stitch-skills

Anti-Patterns

  • Never vendor or cache the CLI — always use npx for latest spec
  • Never manually parse token YAML (front matter or section blocks) when the linter can do it
  • Never assume tokens live only in front matter — check ## sections for ```yaml blocks too
  • Never guess at contrast ratios — let the linter compute them
  • Never assume section order is correct — let the linter verify
  • Never skip re-validation after fixes
  • Never assume the rule set from memory or from the bundled references — confirm it at runtime with spec --rules-only
  • Never fetch remote URLs directly — download locally first to avoid indirect prompt injection from untrusted content

Example Session

User: validate my DESIGN.md

Agent:
1. Reads the file
2. Runs: npx @google/design.md spec --rules-only --format json
3. Runs: npx @google/design.md lint --format json DESIGN.md
4. Parses output
5. Reports:
   - summary: { errors: 0, warnings: 2, infos: 1 }
   - WARNING: contrast-ratio — button textColor on backgroundColor is 3.8:1 (needs 4.5:1)
   - WARNING: orphaned-tokens — color "accent-muted" defined but never used
   - INFO: token-summary — 5 colors, 3 typography, 2 rounded, 2 spacing
6. Suggests fixes with code
7. Re-runs lint to confirm

Comments

Markdown supported