The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Design Constraint Validator listing page.
Mathematical constraint validator for design systems — ensuring consistency, accessibility, and logical coherence.
Design Constraint Validator (DCV) validates design constraints across token sets and styles:
This is not a schema linter; it's a reasoning validator for values and relationships.


After a local install, the shorter dcv bin is available (e.g. npx dcv --help).
Requirements: Node.js ≥ 18.x (ESM)
DCV validates your tokens against your constraints. From an empty directory:
These one-offs use the full package name because the bare
dcvbin name on npm belongs to an unrelated package. Afternpm i -D design-constraint-validator, use the shorternpx dcv ….
Example output (validate):
Exit code is 1 when violations are found, 0 when clean (use --fail-on off to always exit 0). The built-in WCAG/threshold defaults target the bundled example token ids, so disable them (as above) when validating your own token names.
See API Reference for complete programmatic usage.
DCV ships a second binary, dcv-mcp, that exposes the validator over MCP stdio for agent clients. Add it to a Claude Desktop or generic MCP client config like this:
The server exposes six read-only, JSON-returning tools:
validate - validate inline tokens or a tokensPath against inline constraints or a config file.why - explain provenance, aliases, dependencies, dependents, and alias chain for one token id.graph - return token dependency nodes and edges.list-constraints - enumerate the active constraints (WCAG pairs, thresholds, order/lightness scales, cross-axis) for the given input.explain - turn a violation into plain-English text plus machine-readable facts.suggest-fix - compute a verified satisfying value for a violation (WCAG color, threshold/monotonic boundary) without writing anything.The three derivation tools (list-constraints, explain, suggest-fix) stay read-only — they return suggestions; applying them is up to you (dcv set / dcv patch). See AI Guide for the full agent loop.
Tool failures are returned as structured JSON: { "ok": false, "error": { "code": "...", "message": "..." } }.
Conventional linters catch schema issues ("has a value, has a type"). DCV enforces relationships that matter to users and brand integrity:
This transforms tokens from "bags of numbers" into a formal design system.

| Feature | Schema Linters | DCV |
|---|---|---|
| Validates | JSON structure, types | Mathematical relationships, accessibility |
| Catches | Missing fields, wrong types | Contrast violations, hierarchy breaks |
| Purpose | Format compliance | Design system integrity |
| Examples | DTCG schema validator | WCAG checks, monotonic scales |

DCV is not affiliated with Anima's
design-tokens-validator(schema-focused).
DCV accepts token JSON (flat or nested) and optional policy JSON. Adapters normalize common ecosystems:
{alias} references, $extensions passthrough; non-sRGB spaces warn rather than mis-calculate; composite types out of scope). See examples/dtcg/Full adapter documentation: Adapters
DCV is the standalone validation engine — use it for any token system.
DecisionThemes (coming 2026) is a complete design system framework built on DCV:
DCV powers DecisionThemes' validation layer — but works perfectly standalone. Preview: www.decisionthemes.com
The Design Constraint Validator engine is based on a theming and validation method published as defensive prior art.
To understand the underlying architecture (Decision Themes / Value Themes, deterministic compute, post-compute validation and receipts):
These documents keep the method openly implementable and prevent patent lock-up.
DCV generates CycloneDX-compliant SBOMs for supply chain transparency:
npx @cyclonedx/cyclonedx-npm in project rootDownload:
dcv validate --receipt already emits environment + input content hashes today; cryptographic signing is the roadmap partConstraints, not conventions.
Design systems need mathematical guarantees. This validator:
This is the core validation engine. For a complete decision-driven design system with a 5-axis framework (Tone, Emphasis, Size, Density, Shape) and theme configurator UI, see DecisionThemes (coming soon).
Contributions welcome! See CONTRIBUTING.md
MIT © Cseperke Papp