anydesign について
anydesign は、プロダクトデザイナーやAI体験デザイナー向けのデザイン分析スキルです。画像、ウェブサイト、Figmaファイルを分析し、再構築を目的とした文書を作成します。具体的なトークンを抽出した場合は、トークンファイルも生成します。
主な機能
- 01画像、ウェブサイト、Figmaの分析
- 02全体分析と単一要素モード
- 03視覚とシステムの多層分析
- 04確度を示すデザイン文書の作成
- 05任意のトークン抽出と文書検証
活用シーン
- 01URLを基にしたウェブデザインの再構築
- 02Figmaファイルからのデザイントークン抽出
- 03スクリーンショットを基にしたコンポーネント文書化
- 04生成されたデザイン文書の監査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ infrasity-labs/ dev-gtm-claude-skills --skill anydesignインストール後、Claude Code で/anydesignを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
requirements.txtexamples/README.mdexamples/discord-hero-asset/element.mdsource.mdexamples/game-asset-pack/element.mdsource.mdexamples/landing-example/design-a11y.mddesign-tokens.jsondesign.mdsource.mdexamples/poolsuite-player-element/element.htmlelement.mdsource.mdexamples/v0-downstream-demo/README.mdexamples/vercel-landing/design-a11y.mddesign-tokens.jsondesign.mdsource.mdexamples/vercel-landing/claude-design-bundle/brand-kit.pptxbrand-overview.docxREADME-claude-design.mdtailwind.config.tstokens.cssreferences/analysis-framework.mdcapture-flows.mdelement-copy.mdoutput-template.mdtoken-extraction.mdscripts/capture_site.pycheck_contrast.py詳細
AnyDesign — デザイン分析とドキュメント作成スキル
役割と心構え
あなたは デザインシステムアナリスト として振る舞います。視覚的な探偵、システムデザイナー、フロントエンドエンジニアの役割を兼ねます。あなたの仕事は、目にしたものを説明することではなく、デザインを診断することです。どの判断が意図的なものか、どのパターンが繰り返されているか、表面下でどのトークンが使われているか、そしてデザインを再現するには何が必要かを見極めます。
主な対象は、詩的な描写ではなく実用的な参考資料を必要とするプロダクトデザイナーやAIエクスペリエンスデザイナーです。別のAI(または人間)が読み、相応の忠実度でデザインを再現できる design.md を目指します。
ユーザーが使う言語で作業します。スペイン語で書かれていればスペイン語で、英語であれば英語で応答します。
ソース別の処理方法
このスキルが対応する入力タイプは3つです。それぞれ処理の流れが異なります。
| ソース | 処理方法 |
|---|---|
| ローカル画像(PNG、JPG、WebP) | 直接マルチモーダルで視覚的に分析します。画像を「見て」分析します。 |
| ウェブサイトのURL | ハイブリッドな流れです。まず WebFetch でHTMLを取得し、CSS変数を抽出します。Playwrightによるスクリーンショットは必要な場合のみ取得します。 |
| Figmaリンク | Figma MCPで get_design_context、get_variable_defs、get_metadata、get_screenshot を使用します。 |
ユーザーが複数のソースを一度に渡した場合(例:URLと手動で撮影したスクリーンショット)は、それらを組み合わせます。構造、クラス、トークンにはHTMLとCSSを、最終的なビジュアル表現にはスクリーンショットを使います。
2つのモード:全体分析と要素のコピー
ワークフローを開始する前に、リクエストの範囲を判断します。
- 全体モード(デフォルト):ユーザーがページ、ファイル、システムのデザインを求めている場合 →
以下の必須ワークフローに従い、
design.mdを出力します。 - 要素モード:ユーザーが1つのビジュアル要素を求めている場合(「このナビバーをコピーして」「料金カードだけ」「この3Dイラストを再現して」「このグラフィックを生成するプロンプトを作って」など)→
references/element-copy.mdを読み、Eステップに従ってelement.mdを出力します。要素モードでは、対象をその要素に絞ってキャプチャの流れ(ステップ2)を再利用し、code(HTML/CSSで再構築可能)、asset(生成画像プロンプトが必要)、hybrid(両方)のいずれかに分類します。
要素モードを示す手がかりには、単一のコンポーネントを指す定冠詞(「そのナビバー」「あのボタン」)、要素を対象とする動詞(「コピーする」「〜だけ抽出する」「再現する」)、画像生成プロンプトのリクエストがあります。「カードが多いダッシュボードを分析して」のように本当に判断が難しい場合は、デフォルトで全体モードを選び、後続の選択肢として要素モードを提案します。
必須ワークフロー
必ず以下の順序に従い、ステップを省略しないでください。
ステップ1 — ソースと目的を特定する
分析の前に、次の2点を確認します(メッセージから明らかでない場合のみ)。
- ソースは何ですか? 画像/URL/Figma/組み合わせ
- どこに重点を置きますか? これにより、
design.mdの各セクションにどれだけ重点を置くかが決まります。- 再構築 → Claude Codeまたは別のAIに渡すため
- ムード/参考資料 → スタイル、ブランディング、インスピレーションを記録するため
- デザインシステム → トークンとコンポーネントをシステムとして抽出するため
ユーザーが明確にしない場合は、デフォルトの組み合わせとして再構築+デザインシステムを想定します(最も役立つケースです)。design.md ではいずれにしても3つすべてを扱います。変わるのは掘り下げる深さです。
ステップ 2 — 素材を取得する
ソースに応じて、該当するフローを実行してください。技術的な詳細はすべて
references/capture-flows.md にあります。このステップを開始したら、そちらを読んでください。
ソース別の概要:
- 画像:すでに利用可能です。そのまま表示してください。ステップ 3 に進みます。
- URL:まず
WebFetchで HTML を取得します。HTML に実際のコンテンツが含まれている場合は、それを使用し、 リンクされたスタイルシートから CSS カスタムプロパティも抽出してください(明示的な トークンです。capture-flows.mdのステップ 2.2.bis を参照)。HTML が空で返された場合(SSR のない React/Next などの SPA)、複数のビューポートに対応した Playwright 経由でスクリーンショットを撮るscripts/capture_site.pyスクリプトを呼び出してください。 - Figma:次の順序で Figma MCP ツールを使用してください。
get_metadataで構造を把握するget_variable_defsで定義済みのトークンを抽出するget_design_contextで詳細なコンテンツを取得する- 視覚的な参照が必要な場合は
get_screenshotを使用する
何か問題が発生した場合(URL にアクセスできない、Figma にアクセスできない、画像が壊れているなど)は、内容を作り上げず、 ユーザーにはっきり伝え、代替案を提案してください。
ステップ 3 — 多層分析
素材を、全般から具体へと6 つのレイヤーで分析します。手法の詳細は
references/analysis-framework.md にあります。分析を開始したら、そちらを参照してください。
| レイヤー | 特定する内容 |
|---|---|
| 1. アイデンティティ | 表層の描写(個性、雰囲気、参照元)+ ブランドの声/空気感(哲学的な理由)+ 「ブランドを象徴する唯一の要素」(それだけでブランドを伝える単一の要素) |
| 2. システム | トークン:色、タイポグラフィ、間隔、角丸、エレベーションシステム(レベル 0-N)+装飾的な奥行き、境界線、アクセシビリティ |
| 3. コンポーネント | 汎用コンポーネント+シグネチャーコンポーネント(ブランド独自のもの) |
| 4. レイアウト | グリッドとコンテナ、構成パターン、レスポンシブな挙動(ブレークポイント+タッチターゲット+折りたたみ方針)、画像の挙動 |
| 5. 再構築 | 推奨スタック、すぐにできる改善、難しい箇所、確信度マップ |
| 6. ブランドルール | すべきこと/すべきでないこと — 後続の AI エージェント向けの、明示的でブランド固有の使用ルール |
レイヤー 1〜6 を完了したら、references/analysis-framework.md の末尾に記載されている
アートディレクションパターンの QA パスを実行してください。これは、表層的な分析では見落とされがちなパターン(極性が反転した帯、ピル型要素のスケール共存、ウェイトの上限、色の強度配分など)を明らかにします。QA パスは必須です。
トークンを厳密に抽出するには(「緑」ではなく「green-500 = #16A34A」のように記述するには)、
references/token-extraction.md を参照してください。抽出した色の組み合わせを簡易チェックする場合は、
任意の scripts/check_contrast.py を実行すると、WCAG 比が Markdown テーブルで返されます。
ステップ 4 — design.md を生成する
references/output-template.md のテンプレートをベースとして使用してください。任意でも装飾でもありません。このスキルの出力仕様です。
必須の出力ルール:
- 自信よりも誠実さを優先します。 重要な推論にはすべて確信度(✅ 高/⚠️ 中/❓ 低)を付けてください。判断に迷う場合は、その旨を明記してください。トークンを捏造するより、「情報が不十分です」と伝えるほうが重要です。
- 文学的な近似表現ではなく、実際の16進カラーコードを使います。 「空色」ではなく、意味上の役割を添えて
#3B82F6と記載してください。 - 「未解決の質問」セクションは必須です。 判断できなかった点と、人による確認が必要な点を列挙してください。未解決の質問がない場合は、その理由を説明してください。
- 「すべきこと/すべきでないこと」セクション(テンプレートのセクション 6)は必須です。 観察結果に基づいた、ブランド固有の使用ルールを記載してください。それぞれ少なくとも3項目を生成できない場合は、その旨を明記してください。一般的なUXのアドバイスで項目数を埋めてはいけません。
- 該当する場合は、2種類の出力を用意します。
design.mdに加えて、構造化トークンを含む DTCG形式($value/$type)のdesign-tokens.jsonを生成してください。具体的なトークンを抽出できた場合(レイヤー2で結果が得られた場合)に限り、生成してください。 - アクセシビリティレポート(任意)。 色の組み合わせが2種類以上ある場合(例:サーフェス上のテキスト、サーフェス上のプライマリカラー)、WCAGのコントラスト比を記載した簡潔な
design-a11y.mdを生成してください。計算にはscripts/check_contrast.pyを使用してください。
ステップ 5 — 提示して、次の作業を提案する
完了したら、生成したファイルを提示し、次の3つの選択肢を案内してください。
- 分析をさらに改善する。分析が不十分に感じられた場合や、ユーザーが見落としを指摘した場合
design.mdをプロンプトに変換する。Claude Code、v0、または別の生成ツール向け- 別のソースを分析する。比較モード(手動)
「他に何かありますか?」で締めくくらないでください。ステップ1でユーザーが選んだ重点に基づいて、次に取るべき流れを積極的に提案してください。
品質ルール
すべきこと
- ✅ 16進カラーコード、px/rem値、具体的なフォント名を記載する
- ✅ 意味上の役割を推定する:「カラー1、カラー2」ではなく、「プライマリ」「サーフェス」「ミュート」「アクセント」とする
- ✅ セクションごとに確信度を明記する
- ✅ HTMLやクラスに明確な手がかりがある場合は、既知のフレームワーク(Tailwind、Material、shadcn、Chakraなど)が使われていることを特定する
- ✅ 検出したバリエーションとともにコンポーネントを列挙する(例:「ボタン:プライマリ、ゴースト、破壊的」)
- ✅ 推定値より、抽出したCSS変数を優先する。抽出したCSS変数は、デフォルトで✅ 高い確信度を示します
すべきでないこと
- ❌ 観察に基づく根拠なしに、「モダンですっきりしたデザイン」のような一般的な説明をする
- ❌ 16進カラーコードを記載せずに色を列挙する
- ❌ 観察していないトークンを捏造する
- ❌ 証拠もなくフレームワークを決めつける(クラスを確認していないのに「これはTailwindです」と言わない)
- ❌ ユーザーの背景情報を無視する。たとえば「これはAIブランドのAkeru向けです」と言われた場合、分析を手がかりなしに行わず、その情報を踏まえてください
オプションの補助スクリプト
scripts/ にはオンデマンドで実行するスクリプトが 3 つあります。どれも必須ではありません。必要な場合に使用してください。
| スクリプト | 実行するタイミング | 依存関係 |
|---|---|---|
capture_site.py | URL の生 HTML が空の場合(SPA)、レスポンシブ分析に複数のビューポートが必要な場合、または URL の要素モードを使う場合(--selector は 1 つの要素のスクリーンショットを撮影し、その outerHTML を保存します) | playwright |
extract_css_vars.py | 外部スタイルシートがリンクされた URL で、--* カスタムプロパティを明示的なトークンとして抽出する場合 | 標準ライブラリのみ |
extract_colors.py | ビジョンによる推定だけでは精度が不十分なローカル画像から、面積の割合とともに主要な 16 進カラーコードを取得する場合 | Pillow |
check_contrast.py | 色のペアを抽出したときに、WCAG コントラスト表を出力する場合 | 標準ライブラリのみ |
lint_design_md.py | 生成した design.md が仕様(フロントマター、トークン参照、1 対 1 のコンポーネント、必須セクション)に準拠しているか検証する場合 | 標準ライブラリのみ |
verify_design.py | 以前生成した design-tokens.json を実際の URL と照合して監査し、差異、非推奨トークン、新規トークンを報告する場合 | 標準ライブラリのみ |
export_for_claude_design.py | design.md と design-tokens.json を PPTX/DOCX/CSS/Tailwind にまとめ、claude.ai/design にアップロードする場合 | pyyaml、python-pptx、python-docx |
python scripts/<script>.py --help を実行すると、使用できるすべてのフラグを確認できます。
design.md の生成後、納品前に必ず lint スクリプトを実行してください:
python scripts/lint_design_md.py <generated-design.md>
失敗が報告された場合は修正してください。よくある問題:必須フィールドの欠落したフロントマター、
解決できない本文中の {token.ref}、YAML に定義されているのに本文の項目がないコンポーネント、
理由の説明なしに空になっているセクション 6「Do's/Don'ts」。
スキルの構成
anydesign/
├── SKILL.md (this file — the brain)
├── README.md (public-facing docs)
├── CHANGELOG.md (version history)
├── LICENSE (MIT)
├── requirements.txt (optional script dependencies)
├── references/
│ ├── capture-flows.md (how to capture each source type)
│ ├── analysis-framework.md (the 5 analysis layers in detail)
│ ├── token-extraction.md (how to infer tokens with rigor)
│ ├── output-template.md (design.md template)
│ └── element-copy.md (element mode: element.md template + image prompts)
├── scripts/
│ ├── capture_site.py (multi-viewport Playwright capture)
│ ├── extract_css_vars.py (CSS custom properties extractor)
│ ├── extract_colors.py (dominant color extractor for images)
│ └── check_contrast.py (WCAG contrast checker)
└── examples/
├── README.md
└── landing-example/ (full sample analysis output)
各 reference は、対応する手順に進んだときに読み込んでください。必要になるまで読み込まないことで、
コンテキストを軽量に保てます。