mcpField
D
Design Constraint Validator

Design Constraint Validator

ローカル
github.com/CseperkePapp開発ツール020 週間前に更新

Design Constraint Validator について

Design Constraint Validator は、デザイントークンの値と関係性を検査し、アクセシビリティと一貫性を確認するツールです。デザインシステム開発者向けに、MCP 経由で検証、説明、依存グラフ、読み取り専用の修正案を提供します。

主な機能

  1. 01WCAG テキストコントラストの検査
  2. 02単調スケールと閾値の検証
  3. 03トークンの由来と依存関係の追跡
  4. 04トークン依存グラフの出力
  5. 05違反の説明と修正案の提示

活用シーン

  1. 01テキストと背景のコントラスト確認
  2. 02文字サイズや余白スケールの不整合検出
  3. 03トークンのエイリアスと依存関係の調査
  4. 04AI エージェントのワークフローで違反を確認

MCP 対応

`dcv-mcp` は、検証、トークン説明、グラフ、制約一覧、違反説明、修正案の提示を行う6種類の読み取り専用 JSON ツールを MCP クライアントに公開します。MCP ツールは提案を適用しません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cseperkepapp-design-constraint-validator": {
"command": "npx",
"args": [
"-y",
"design-constraint-validator"
]
}
}
}
起動コマンドnpx -y design-constraint-validator

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmdesign-constraint-validator2.3.0

ツール

6

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
tokensobjectいいえインラインのDTCG形式トークンツリー。tokensPath より優先されます。
breakpointenumいいえ任意の制約ブレークポイント。sm | md | lg
configPathstringいいえJSON DCV設定ファイルのパス。
tokensPathstringいいえサーバーのファイルシステム上にあるトークンJSONファイルのパス。
constraintsobjectいいえdcv.config.json のインライン制約ブロック。configPath より優先されます。
constraints.wcagarrayいいえ
constraints.thresholdsarrayいいえ
constraints.enableBuiltInThresholdbooleanいいえ
constraints.enableBuiltInWcagDefaultsbooleanいいえ
constraintsDirstringいいえ順序制約と軸間制約を格納するディレクトリ。

詳細

Design Constraint Validator(DCV)

デザインシステム向けの数学的制約バリデーター — 一貫性、アクセシビリティ、論理的な整合性を確保します。

npm version npm downloads CI SBOM Supply Chain Security License: MIT Node

**Design Constraint Validator(DCV)**は、トークンセットとスタイル全体でデザイン制約を検証します。

  • ✅ アクセシビリティ: WCAG のテキストコントラスト、知覚的な明度の下限/上限
  • ✅ 順序と単調性: 増加するタイポグラフィスケール、スペーシング階層
  • ✅ しきい値とポリシー: 最小/最大の範囲、軸をまたぐガード(サイズ × ウェイト × コントラスト)
  • ✅ グラフインテリジェンス: Hasse/poset グラフのエクスポート、関連するエッジを示す「理由」の説明

これはスキーマリンターではなく、値と関係性を検証する推論型バリデーターです。

DCV の概要 — 1 つのエンジンと 3 つのエントリーポイント(CLI、ライブラリ API、MCP サーバー)。共有の検証コアでトークンをフラット化し、エンジンを構築し、制約を読み込み、プラグインを実行して、エラー/警告を報告します。

DCV の検証パイプライン — トークンファイル → フラット化と解決 → エンジンの構築 → 制約の読み込み → プラグインの実行 → 結果の報告。CLI、API、MCP はすべて同じフローを使用します。


インストール

# Local (recommended)
npm i -D design-constraint-validator

# One-off run, no install (the bin name `dcv` belongs to an unrelated package)
npx design-constraint-validator --help

ローカルにインストールすると、短い dcv コマンドを利用できます(例:npx dcv --help)。

要件: Node.js ≥ 18.x(ESM)


クイックスタート

DCV はお使いのトークンをお使いの制約に照らして検証します。空のディレクトリから始める場合:

# 1. Your design tokens (DTCG-style "$value")
cat > tokens.json <<'JSON'
{
  "color": {
    "text": { "$value": "#888888" },
    "bg":   { "$value": "#999999" }
  }
}
JSON

# 2. Your constraints — auto-discovered as dcv.config.json in the cwd
cat > dcv.config.json <<'JSON'
{
  "constraints": {
    "enableBuiltInWcagDefaults": false,
    "enableBuiltInThreshold": false,
    "wcag": [
      { "foreground": "color.text", "background": "color.bg", "ratio": 4.5, "description": "Body text on background" }
    ]
  }
}
JSON

# 3. Validate (positional path or --tokens; exits non-zero on violations)
npx design-constraint-validator validate tokens.json --summary table

# Explain one token (the tokenId is required)
npx design-constraint-validator why color.text --tokens tokens.json --format table

# Export the dependency graph
npx design-constraint-validator graph --tokens tokens.json --format mermaid > graph.mmd

これらの単発コマンドでは、npm 上の裸の dcv コマンド名が無関係なパッケージに使用されているため、完全なパッケージ名を指定します。 npm i -D design-constraint-validator の実行後は、短い npx dcv … を使用してください。

出力例(validate):

validate: 1 error(s), 0 warning(s)
ERROR wcag-contrast  color.text|color.bg @ Body text on background — Contrast 1.24:1 < 4.5:1
scope   rules  warnings  errors
------  -----  --------  ------
global  1      0         1

違反が見つかった場合の終了コードは 1、問題がない場合は 0 です(常に 0 で終了するには --fail-on off を使用してください)。組み込みの WCAG/しきい値のデフォルト設定は、同梱されたサンプルトークンの ID を対象としているため、ご自身のトークン名を検証する際は、上記のように無効にしてください。


プログラムからの API 利用

import { validate } from 'design-constraint-validator';

// Synchronous. Point at files, or pass `tokens` / `constraints` inline.
const result = validate({
  tokensPath: './tokens.json',
  configPath: './dcv.config.json', // omit to auto-discover dcv.config.json in the cwd
});

if (!result.ok) {
  for (const v of result.violations) {
    console.log(`[${v.ruleId}] ${v.message}`);
  }
  process.exitCode = 1;
}

プログラムからの完全な利用方法については、**API リファレンス**をご覧ください。


AI エージェントからの使用(MCP)

DCV には、エージェントクライアント向けに MCP stdio 経由でバリデーターを公開する 2 つ目のバイナリ dcv-mcp が含まれています。次のように、Claude Desktop または汎用 MCP クライアントの設定に追加してください。

{
  "mcpServers": {
    "dcv": {
      "command": "npx",
      "args": ["-y", "--package", "design-constraint-validator", "dcv-mcp"]
    }
  }
}

サーバーは、読み取り専用で JSON を返す次の 6 つのツールを公開します。

  • validate - インラインの tokens または tokensPath を、インラインの constraints または設定ファイルに照らして検証します。
  • why - 1 つのトークン ID について、出所、エイリアス、依存関係、被依存関係、エイリアスチェーンを説明します。
  • graph - トークン依存関係の nodes と edges を返します。
  • list-constraints - 指定された入力に対して有効な制約(WCAG のペア、しきい値、順序/明度スケール、クロス軸)を列挙します。
  • explain - 違反を平易な英語の説明と機械可読な事実に変換します。
  • suggest-fix - 違反を満たす値を検証して算出します(WCAG の色、しきい値/単調性の境界)。何も書き込みません。

3 つの導出ツール(list-constraints、explain、suggest-fix)は読み取り専用です。提案を返すだけで、適用するかどうかはユーザーに委ねられます(dcv set / dcv patch)。エージェントの一連の処理については、AI Guide を参照してください。

ツールの失敗は、構造化 JSON として返されます:{ "ok": false, "error": { "code": "...", "message": "..." } }。


ドキュメント

すべてのユーザー向け
ユーザー向け
  • 制約 - 5 種類すべての制約の詳細
  • CLI リファレンス - コマンドの完全なドキュメント
  • 設定 - 設定ファイルのオプション
  • 概念 - 基本用語とデフォルト設定
開発者向け
その他のリソース

なぜ慣例ではなく制約なのか?

従来のリンターが検出するのは スキーマ の問題(「値があるか、型が合っているか」)です。 DCV は、ユーザー体験とブランドの信頼性に関わる 関係性 を検証します。

  • あらゆるテーマや状態で読みやすいコントラスト
  • 適切な階層的間隔/タイポグラフィ(単調なスケール)
  • 一貫したクロス軸の動作(例:必要に応じてサイズに応じてウェイトを増やす)
  • ポリシーへの適合(AA/AAA、内部しきい値)

これにより、トークンは「数値の寄せ集め」から 形式的なデザインシステム へと変わります。

DCV の検証内容 — 5 つのプラグインファミリー:WCAG コントラスト、単調な順序、明度の順序、しきい値、クロス軸ルール。各プラグインは構造化された問題(ルール、レベル、メッセージ、関連トークン、メタデータ)を返します。


比較:スキーマリンターと DCV

特徴スキーマリンターDCV
検証対象JSON の構造、型数学的な関係性、アクセシビリティ
検出する問題フィールドの不足、誤った型コントラスト違反、階層の崩れ
目的フォーマットへの準拠デザインシステムの整合性
例DTCG スキーマバリデーターWCAG チェック、単調スケール

デザインシステムの数学的整合性 — DCV エンジン:3 つの中核的な制約タイプ(アクセシビリティとコントラスト、単調性と明度の順序、しきい値と軸をまたぐルール)、3 つのインターフェイス(CLI、ライブラリ API、MCP サーバー)を備えた 1 つのエンジン、そしてスキーマリンター(フォーマットへの準拠)と DCV(数学的な関係性/デザインシステムの整合性)の違い。

DCV は Anima の design-tokens-validator(スキーマに特化)とは無関係です。


入力形式

DCV はトークン JSON(フラット形式またはネスト形式)と、オプションのポリシー JSONを受け入れます。 アダプターは一般的なエコシステムの形式を標準化します。

  • Style Dictionary - examples/style-dictionary/ を参照
  • Tokens Studio JSON - examples/tokens-studio/ を参照
  • DTCG(Design Tokens Community Group) — 2025.10 安定版仕様を読み込みます(構造化された sRGB カラー、構造化された寸法、{alias} 参照、$extensions のパススルー。sRGB 以外の色空間は誤った計算を行わずに警告を出します。複合型は対象外です)。examples/dtcg/ を参照

アダプターのドキュメント全文:Adapters


DCV と DecisionThemes

DCV はスタンドアロンの検証エンジンです。あらゆるトークンシステムに使用できます。

DecisionThemes(2026 年公開予定)は、DCV を基盤とする完全なデザインシステムフレームワークです。

  • 5 軸の意思決定モデル(Tone、Emphasis、Size、Density、Shape)
  • VT/DT パイプライン(Value Themes + Decision Themes → 決定論的な CSS 設定)
  • 共有可能な Decision Systems のための Studio UI + Hub マーケットプレイス

DCV は DecisionThemes の検証レイヤーを支えますが、スタンドアロンでも問題なく動作します。 プレビュー:www.decisionthemes.com


手法と先行技術

Design Constraint Validator エンジンは、防御的な先行技術として公開されたテーマ設定および検証手法を基盤としています。

基盤となるアーキテクチャ(Decision Themes / Value Themes、決定論的な計算、計算後の検証とレシート)については、以下を参照してください。

これらのドキュメントにより、この手法を誰でも実装できる状態に保ち、特許による独占を防ぎます。


セキュリティとサプライチェーン

SBOM(ソフトウェア部品表)

DCV は、サプライチェーンの透明性を確保するため、CycloneDX 準拠の SBOM を生成します。

  • CI ビルド: CI の実行ごとに SBOM アーティファクトを生成(90 日間保持)
  • バージョンタグ: リリースタグ用の SBOM アーティファクト
  • GitHub Releases: GitHub Release の作成時に SBOM ファイル(JSON + XML)を添付
  • 手動: プロジェクトルートで npx @cyclonedx/cyclonedx-npm を実行

ダウンロード:


ロードマップ

  • カスタム制約用のプラグイン API
  • VS Code の診断機能(インラインで説明)
  • 軸横断パック(タイポグラフィ × ウェイト × コントラスト)
  • 署名付き/証明可能なレシート — dcv validate --receipt は現在すでに環境と入力コンテンツのハッシュを出力します。ロードマップの対象は暗号学的な署名です
  • UI グラフエクスプローラー(ノードインスペクター、違反へのフォーカス)

設計思想

慣習ではなく、制約を。

デザインシステムには数学的な保証が必要です。このバリデーターは、次のことを行います。

  1. 関係性を適用します - タイポグラフィの階層、色の段階的な変化
  2. アクセシビリティを検証します - アルファ合成を考慮した WCAG のコントラスト
  3. 違反の理由を説明します - 出所の追跡により、ルールに違反する理由がわかります
  4. 複雑さに応じて拡張できます - 数千のトークンを段階的に検証します

関連プロジェクト

これはコア検証エンジンです。5 軸のフレームワーク(トーン、強調、サイズ、密度、形状)とテーマ設定 UI を備えた、意思決定主導の完全なデザインシステムについては、DecisionThemes(近日公開)をご覧ください。


コントリビュート

コントリビュートを歓迎します!**CONTRIBUTING.md**をご覧ください。


ライセンス

MIT © Cseperke Papp

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。