figma-generate-component-doc について
収集したFigmaコンポーネントデータを構造化Markdownドキュメントに変換するスキルです。Figmaからのデータ収集と決定論的なNode変換器を組み合わせ、同じJSONから同じ文書を生成します。
主な機能
- 01コンポーネントとバリアントのデータ収集
- 02Node変換器によるMarkdown生成
- 03トークン、タイポグラフィ、アクセシビリティの記載
- 04コードとの整合性とYAML frontmatterの追加
- 05同じJSONからの再現可能な出力
活用シーン
- 01Figmaコンポーネントのドキュメント作成
- 02バリアント、トークン、タイポグラフィの確認
- 03実装情報とデザイン・コードの整合性の追加
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ southleft/ figma-console-mcp-skills --skill figma-generate-component-docインストール後、Claude Code で/figma-generate-component-docを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/doc-template.mdscripts/collect-component-data.jsgenerate-doc.mjs詳細
figma-generate-component-doc — Figma コンポーネント → Markdown ドキュメント
1 つのコンポーネントまたはコンポーネントセットについて、概要、構造ツリー、デザイントークン、バリアント/状態のマトリクス、タイポグラフィ、アクセシビリティ、コンテンツガイドライン、および(任意で)デザインとコードの整合性、YAML フロントマターを含む完全なドキュメントページを作成します。このスキルは use_figma を介してファイルから構造化データを収集し、その後、決定論的な Node コンバーター(scripts/generate-doc.mjs)が Markdown を出力します。同じ収集済み JSON からは常に同一の Markdown が生成されます。文章をもとにドキュメントを手作業で作成しないでください。
スキルの範囲
use_figmaのルール — まず公式のfigma-useスキルを読み込んでください。これは Figma Plugin API の完全なリファレンスです。このスクリプトが前提とする重要事項:トップレベルのawait+returnを使ったプレーンな JS(IIFE やfigma.closePlugin()は使わない。console.logの内容は返されません)、各スクリプトの先頭で入力値をconstとして直接記述すること、色は 0~1 の範囲で指定すること、テキスト操作の前にフォントを読み込むこと、await figma.getNodeByIdAsync(...)を使うこと、そしてアトミックエラー(スクリプトが失敗すると変更は一切適用されません。エラーを読み、修正して再試行してください)。- 収集スクリプトはどこでも実行できます(
use_figma)。コンバーターは Node で、ターミナルから実行します(node scripts/generate-doc.mjs ...)。figma-export-tokensと同じ役割分担です。Node を実行できない場合、ドキュメントは作成できません。手作業で作成するのではなく、その旨を伝えてください。 - Markdown セクションの構成と
cleanVariantNameのルール → references/doc-template.md。コンバーターにはこのファイルのすべてのルールが実装されています。手作業で組み立てる際のチェックリストではなく、仕様として扱ってください。 - 注釈を個別の仕様として読み書きする場合 →
figma-annotationsスキルを使ってください。 - トークンシステム全体をエクスポートする場合(1 つのコンポーネントのトークンだけではない場合)→
figma-export-tokensを使ってください。
ワークフロー
- 対象を特定します。 現在の選択範囲、またはユーザーが指定した URL/ID から、コンポーネントまたはコンポーネントセットのノード ID を取得します。バリアントを含むコンポーネントセットを使うと、最も充実したドキュメントを作成できます。収集スクリプトで
NODE_IDを設定してください。また、ファイル URL(figma:リンク/フロントマター用)も控えてください。 - データを収集して JSON に保存します。
scripts/collect-component-data.jsをuse_figmaから実行します(skillNames: "figma-generate-component-doc")。構造ツリー、バリアントごとの色(バインドされたトークン ID と名前を含む)、タイポグラフィ(フォントファミリー、数値のウェイトと名前、サイズ、行の高さ、文字間隔)、スペーシングトークン、コンポーネントのプロパティ定義(バリアント/ブール値/テキストプロパティ)、説明、注釈(カテゴリ名を含む)が返されます。返された JSON はファイルに保存してください(例:collected.json)。 - Markdown を生成します(決定論的)。 ターミナルで Node コンバーターを実行します。
ソースジェネレーターのセクション構成をそのまま適用します。概要(説明から抽出した「使用する場面」および「使用しない場面」を含む)、コンポーネント構造、バリアント(マトリクス+アイコンのマッピング+設定可能なプロパティ)、トークン仕様(色とスペーシングの表)、タイポグラフィ、コンテンツガイドライン、アクセシビリティ、デザイン注釈、さらにnode scripts/generate-doc.mjs collected.json [--code-info codeInfo.json] [--out docs/components/Button.md] [--frontmatter] [--file-url <figma-url>]--code-infoを指定した場合は実装、デザインとコードの整合性、変更履歴が含まれます。cleanVariantNameは自動的に適用されます(Type=Image, Size=12→Image / 12)。同じ入力なら、同一の出力になります。 - コードとの整合性を追加する場合は任意です。 実装/整合性/
[View Source]および[Storybook]リンクを追加するには、コンポーネントのソースを読み、codeInfo.json(props、importStatement、sourceFiles、baseComponent、changelog など)を作成してから、--code-info codeInfo.jsonを指定します。 - フロントマターの追加は任意です。
--frontmatterを指定すると、YAML フロントマター(title、status、version、tags、figma URL、lastUpdated)が先頭に追加されます。 - 確認して納品します。 出力された Markdown を読み、問題がないか確認してから、書き込むか返します。パスと、1 行の概要(バリアント数、トークン数)を報告してください。
補足
- フォントの読み込み: Figma にテキストを書き込むステップ(たとえば、ドキュメントをキャンバスに書き戻す処理)を追加する場合は、最初に
await figma.loadFontAsync(...)を実行してください。純粋なドキュメント生成では読み取りのみを行います。 - collect スクリプトでは、深い階層でペイロードが大きくなりすぎないよう
MAX_DEPTHを使用しています。構造が途中で切れている場合にのみ、値を増やしてください。 - トークン名は
boundVariablesから取得します。バインドされた変数がない色や間隔は、トークンテーブルでは—と表示されます(トークンに置き換えるハードコード値です)。 - コンバーターは依存関係なしで動作します(Node 18 以降、ESM)。JSON が見つからないか、不正な形式の場合は、明確なメッセージを表示してゼロ以外のステータスで終了します。
- これらの collect ツールには Figma Desktop アプリが必要です(Plugin API はブラウザーでは利用できません)。
コメント
Markdown 対応