
Design Constraint Validator
io.github.CseperkePapp由 GitHub 帳號 CseperkePapp 發布v2.3.0更新於 Oct 24, 2026
Validate design tokens for accessibility, scales, and design-system constraint consistency.
概覽
一個本機 MCP 伺服器,讓助理依無障礙、比例與門檻限制驗證設計權杖,並解釋驗證結果。
- 可以做什麼
- 驗證設計權杖(內嵌或來自檔案),檢查 WCAG 對比度、門檻、順序與跨軸限制,可輸出彙總表,違規時以非零狀態結束。解釋單一權杖的來源、別名、相依項目與被相依項目及別名鏈。匯出權杖相依圖的節點與邊。列出給定輸入下生效的限制。把違規轉成白話說明及機器可讀事實。為違規計算一個經驗證的滿足值,但不寫入任何內容。
- 適用情境
- 適合在設計系統或權杖集上工作時使用,讓助理檢查對比度、字體與間距層級以及政策門檻,並解釋某個權杖為何不通過。它關注值之間的關係,而不是 JSON 結構本身。
- 執行需求
- 以本機程序透過 stdio 執行,從 npm 套件 design-constraint-validator 安裝;需要 Node.js 18 或更新版本並支援 ESM。未宣告驗證、環境變數或標頭。它會從工作目錄讀取權杖 JSON 與選用的設定檔(例如 dcv.config.json)。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Design Constraint Validator,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Design Constraint Validator (DCV)
Mathematical constraint validator for design systems — ensuring consistency, accessibility, and logical coherence.
[npm version] [npm downloads] [CI] [SBOM] [Supply Chain Security] [License: MIT] [Node]
Design Constraint Validator (DCV) validates design constraints across token sets and styles:
- ✅ Accessibility: WCAG text contrast, perceptual lightness floor/ceilings
- ✅ Order & Monotonicity: increasing typography scales, spacing hierarchies
- ✅ Thresholds & Policies: min/max ranges, cross-axis guards (size × weight × contrast)
- ✅ Graph Intelligence: Hasse/poset graph export; "why" explanations with implicated edges
This is not a schema linter; it's a reasoning validator for values and relationships.
Installation
After a local install, the shorter dcv bin is available (e.g. npx dcv --help).
Requirements: Node.js ≥ 18.x (ESM)
Quick Start
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.
Programmatic API
See API Reference for complete programmatic usage.
Use from AI agents (MCP)
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 inlinetokensor atokensPathagainst inlineconstraintsor a config file.why- explain provenance, aliases, dependencies, dependents, and alias chain for one token id.graph- return token dependencynodesandedges.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": "..." } }.
Documentation
For Everyone
- Getting Started - 5-minute tutorial
- Features & Complete Guide - All features, examples, and FAQ
- Examples - Sample projects and use cases
For Users
- Constraints - All 5 constraint types in detail
- CLI Reference - Complete command documentation
- Configuration - Config file options
- Concepts - Core terminology and defaults
For Developers
- API Reference - Programmatic usage
- Architecture - Internal design
- Adapters - Input/output formats
Additional Resources
- Prior Art / Method - Design rationale (Decision Themes, receipts)
- AI Guide - Using DCV with ChatGPT/Claude/Copilot
- Contributing - Contribution guidelines
- Security - Supply chain security measures
Why Constraints, Not Conventions?
Conventional linters catch schema issues ("has a value, has a type"). DCV enforces relationships that matter to users and brand integrity:
- Legible contrast under all themes and states
- Proper hierarchical spacing/typography (monotonic scales)
- Coherent cross-axis behavior (e.g., weight increases with size where needed)
- Policy conformance (AA/AAA, internal thresholds)
This transforms tokens from "bags of numbers" into a formal design system.
Comparison: Schema Linters vs DCV
DCV is not affiliated with Anima's
design-tokens-validator(schema-focused).
Input Formats
DCV accepts token JSON (flat or nested) and optional policy JSON. Adapters normalize common ecosystems:
- Style Dictionary - See examples/style-dictionary/
- Tokens Studio JSON - See examples/tokens-studio/
- DTCG (Design Tokens Community Group) — reads the 2025.10 stable spec (structured sRGB colors, structured dimensions,
{alias}references,$extensionspassthrough; non-sRGB spaces warn rather than mis-calculate; composite types out of scope). See examples/dtcg/
Full adapter documentation: Adapters
DCV & DecisionThemes
DCV is the standalone validation engine — use it for any token system.
DecisionThemes (coming 2026) is a complete design system framework built on DCV:
- 5-axis decision model (Tone, Emphasis, Size, Density, Shape)
- VT/DT pipeline (Value Themes + Decision Themes → deterministic CSS configs)
- Studio UI + Hub marketplace for sharing Decision Systems
DCV powers DecisionThemes' validation layer — but works perfectly standalone. Preview: www.decisionthemes.com
Method & Prior Art
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.
Security & Supply Chain
SBOM (Software Bill of Materials)
DCV generates CycloneDX-compliant SBOMs for supply chain transparency:
- CI Builds: SBOM artifacts on every CI run (90-day retention)
- Version tags: SBOM artifacts for release tags
- GitHub Releases: SBOM files (JSON + XML) attached when a GitHub Release is created
- Manual: Run
npx @cyclonedx/cyclonedx-npmin project root
Download:
Roadmap
- Plugin API for custom constraints
- VS Code diagnostics (inline explain)
- Cross-axis packs (typography × weight × contrast)
- Signed / attestable receipts —
dcv validate --receiptalready emits environment + input content hashes today; cryptographic signing is the roadmap part - UI graph explorer (node inspector, violations focus)
Philosophy
Constraints, not conventions.
Design systems need mathematical guarantees. This validator:
- Enforces relationships - Typography hierarchies, color progressions
- Validates accessibility - WCAG contrast with alpha compositing
- Explains violations - Provenance tracing shows why rules fail
- Scales with complexity - Incremental validation of 1000s of tokens
Related Projects
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).
Contributing
Contributions welcome! See CONTRIBUTING.md
License
MIT © Cseperke Papp
來源:README.md,提交 be0a35f
工具
0版本歷史
1- v2.3.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分