design-tokens-sync について
プロジェクト内のデザイントークンを監査・調整するスキルです。ソースファイルとコードの差異やハードコード値を特定し、承認後に下流の定義を更新します。
主な機能
- 01トークン定義と使用箇所の特定
- 02古い値、ハードコード値、未使用・未登録値の報告
- 03承認された正本を基準に調整
- 04CI向け差分チェック用スクリプトの提案
活用シーン
- 01デザインとコード間のトークン整合性監査
- 02コンポーネントのハードコード値をトークン参照に置換
- 03CIへのトークン差分チェック追加
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ onewave-ai/ claude-skills --skill design-tokens-syncインストール後、Claude Code で/design-tokens-syncを入力して読み込まれたか確認します。
詳細
デザイントークンの同期
信頼できる唯一の情報源を、常に信頼できる状態に保ちます。どのデザインシステムも同じように劣化していきます。急いでいるときに16進数のカラーコードがハードコードされ、Figmaではトークンの名前が変更されたのにTailwindではそのままになり、使い捨てのCSSファイルにパレットのコピーがもう1つ作られます。このスキルは差異を見つけ、ユーザーと同期の方向を決めて、整合性を回復します。
ワークフロー
- 信頼できる情報源を特定します。 トークンが定義されている場所をすべて探します。
tokens.json/*.tokens.json(W3C形式)、Figma変数のエクスポート、tailwind.config.*のテーマ、CSSカスタムプロパティ、TSのテーマオブジェクト、SCSS変数ファイルなどです。正規の情報源を名乗るものが複数ある場合は、何かに手を加える前に、どれを優先するか確認します。同期の方向は人が決める必要があります。 - グラフを作成します。 各トークンについて、正規の値、下流で定義されているすべての値、利用されているすべての箇所を調べます。コード内の生の値(hex、px、rem、ms、cubic-bezier)については、それに対応するトークンが存在するかを確認します。
- 差異レポートを作成します。
token-drift-report.mdに、以下の4つの分類で結果を出力します。STALE COPIES-- 正規の値と一致しなくなった下流の定義(両方の値を記載)HARDCODED-- 一致するトークンが存在するコンポーネント内の生の値(完全一致を確認し、次に色については知覚的距離の近い値を確認)ORPHANS-- 定義されているものの、どこからも利用されていないトークンUNTOKENIZED-- トークンがなく、3回以上出現する生の値。名前を付けるべきトークンです。
- 承認後に整合性を回復します。 古いコピーは、正規の情報源から下流の定義を再生成します。ハードコードされた値は、トークン参照に置き換えます。完全一致する値は自動で置き換え、近似値はケースごとに確認してから置き換えます。少し違う青色は、意図的な選択かもしれません。トークン化されていない値については、既存の命名規則に沿った名前を提案し、正規の情報源に追加します。孤立トークンは削除候補として一覧にします。自動では削除しません。
- 防止策を講じます。 安価な検出策として、差異の検出を再実行するスクリプト(
npm run tokens:check)の追加を提案します。新たな古いコピーや、近似値のハードコードが見つかった場合にCIを失敗させ、作業を離れた後も同期状態を保てるようにします。
ルール
- 1回の実行で両方向に同期しないでください。正規の情報源を優先します。コード側の新しい値をデザイナーが採用したい場合など、逆方向に同期する値は、まず正規の情報源を明示的に編集してください。
- 近似値の置換はケースごとに判断し、一括で行わないでください。
#0B1121と#0b1220の違いは、差異かもしれませんし、意図的な選択かもしれません。 - セマンティックレイヤーを維持してください。システムが
color.blue.500 -> color.accent -> button.bgという構造なら、すべてをプリミティブに平坦化するのではなく、適切なレイヤーの参照を修正してください。 - 名前の変更はすべてに反映するか、どこにも反映しないでください。名前が一部だけ変更されたトークンは、元の名前のままよりも厄介です。
- 生成ファイルに配慮してください。
theme.cssがtokens.jsonから生成される場合は、ソースを修正して再生成します。出力ファイルを直接編集しないでください。 - レポートでは健全性を数値化します。リリースごとに改善すべき指標は、トークン適用率(コンポーネント内の生の値に対するトークン化された値の割合)です。
クイックコマンド
- 「トークンを監査して」 -- 手順1〜3を実行し、レポートのみを出力
- 「[source]から同期して」 -- 指定された正規の情報源から、整合性を全面的に回復
- 「何がハードコードされている?」 --
HARDCODEDのみを出力 - 「CIガードを追加して」 -- 手順5のみを実行
コメント
Markdown 対応