btczoa/diagram-design

ブランディングされたアーキテクチャ図、アーキテクチャデルタ、IT現状図、フローチャート、シーケンス図、ステートマシン、ER/データモデル、タイムライン、スイムレーン、クアドラント、レーダー/スパイダー、ポーラーチャート、ループ/フライホイール、ネスト、ツリー、組織図、レイヤースタック、分解アクソノメトリック、アクソノメトリック平面図、ベン図、ピラミッド/ファネル、ツリーマップ、マリメッコ、ヒートマップ、棒グラフ、ドラムベル、ウォーターフォール、折れ線グラフ、ガントチャート、散布図など、45種類の図をHTML/SVG/PNG形式で作成できるスキル。.drawio、Mermaid、.excalidrawのインポートにも対応します。

diagram-design とは?

このスキルは、AIエージェント(Claude Code、Cursor、Codexなど)が、プロフェッショナルな図を自己完結型のHTMLファイル(インラインSVG)として生成するための強力なツールです。アーキテクチャ図、フローチャート、シーケンス図、ステートマシン、ER図、組織図、ガントチャートなど45種類の図に対応し、それぞれに最適化されたレイアウト文法が用意されています。さらに、意味パターンマッチング(例:ボトルネック分析→データフロー図、ライフサイクル→ステートマシン)により、表現したい振る舞いや状態に最適な図の種類を自動提案します。 主な特徴として、カスタマイズ可能なデザインシステム(ブランドの色やフォントを適用可能)、アンチパターンの検出と防止、.drawio/Mermaid/.excalidrawからのインポート対応、複雑な管理のためのシンプル化ルール(9ノード超は分割推奨)などが挙げられます。また、オンボーディングプロセスにより、プロジェクト初回の図作成時にスタイルガイドのカスタマイズを促し、デフォルトのスキンがそのまま使われることを防ぎます。このスキルは、情報を視覚的に伝えることで、文章や表だけでは伝わりにくい複雑な関係性やプロセスを明確にしたいあらゆる開発者やエンジニアに役立ちます。

対応~Claude Code~Codex CLI~Cursor
npx skills add btczoa/diagram-design-skill

Installed? Explore more 生産性&コラボレーション skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

図デザイン

自己完結型のHTMLファイル(インラインSVG)として図を作成します。エディトリアルなデザインシステムを備えています。

45種類のビジュアルタイプ。意味パターンは振る舞いを記述し、タイプリファレンスはレイアウトを記述します。


0. 初回セットアップ — スタイルガイドゲート

新しいプロジェクトで最初の図を生成する前に、スタイルガイドがカスタマイズされていることを確認してください。

ブランディングされたプロジェクトに、デフォルトスキンの図を黙って出荷しないでください。

最初に、references/profiles.md に従って、プロジェクトの .diagram-design マーカーを解決してください。マーカーが正常に解決されると、そのプロファイルが選択され、このゲートはバイパスされます。そのリファレンスが、失敗、保護されたデフォルト、および保存動作を管理します。

references/style-guide.md を開き、デフォルトトークンを確認してください。もし出荷時のデフォルト(紙 #f5f5f5、インク #2d3142、アクセント #bf4520)のままである場合は、一時停止してユーザーに尋ねてください:

「これはこのプロジェクトでの最初の図であり、スタイルガイドはまだデフォルトのままです。今すぐカスタマイズしますか?オプション: (a) WebサイトURL、(b) インストール済みスキル、(c) ローカルフォルダ/デザインシステム、(d) トークンを貼り付け、(e) デフォルトを維持、(f) 保存済みプロファイルを読み込み。」

その後、references/onboarding.md の該当セクションに従って分岐します。(f) の場合は references/profiles.md に従います。

スタイルガイドがカスタマイズされた後(またはユーザーが明示的にデフォルトを選択した場合)、以降の実行ではこのゲートをスキップします。先頭のプロファイルヘッダーが、コピーされたアクティブプロファイルを示します。ヘッダーがない場合、セマンティックロールの値またはタイポグラフィファミリーが出荷時のデフォルトと異なる場合は、カスタム未保存 を意味します:ゲートをスキップし、プロファイルとして保存するオプションを提供します。マーカーもヘッダーもないすべてデフォルトのトークンは、ゲートをトリガーします。オンボーディング後、references/profiles.md に従って、名前付きクライアントプロファイルとして保存するオプションを提供します。


1. 哲学

最も高品質なアクションは、たいてい削除です。

図解に適用すると:

  • すべてのノードは、明確なアイデアを表します。常に一緒に移動する2つのノードは、1つのノードです。
  • すべての接続は情報を運びます。レイアウトから関係が明らかな場合は、線を削除します。
  • コーラルは エディトリアルであって、フラグではありません。 図あたり1~2個のフォーカルノード。5つのノードで使用すると、シグナルが消えます。
  • 図は、すべてが追加されたときに完成するのではありません。何も削除できなくなったときに完成します。

目標密度: 4/10。 技術的に完全であるには十分。ガイドが必要になるほど密度が高くありません。9ノードを超える場合は、おそらく2つの図です。


2. 使用すべき時

読者が散文、表、箇条書きリストよりも視覚から多くのことを学べる場合に、45のビジュアルタイプ(§3)のいずれかを使用します。

使用すべきでない時:

  • 簡単なUnicode図 → wiretextなどの別のプレーンテキストツール。このスキルはこれを提供しません。
  • 物のリスト → 表または箇条書き。
  • 属性のみのBefore/After → 表。トポロジ変更 → アーキテクチャデルタ。
  • 1シェイプの「図」 → 単に文を書いてください。

描く前に、自問してください: 読者は、よく書かれた段落よりも、これから多くのことを学べるでしょうか? いいえの場合、描かないでください。


3. 選択: 意味パターン、次にビジュアルタイプ

振る舞い、状態、強制、リスクが意味を持つ場合は、最初に references/semantic-patterns.md を読み込み、1つのプライマリパターンを選択します。次に、レイアウトに最も近いビジュアルタイプを選択します。パターンが一致しない場合は、タイプを直接選択します。

振る舞いトリガー意味パターン → 最も近いタイプ
ファンイン、キュー深度、有限容量、ボトルネックファンインキュー / ボトルネック → データフロー
ステージ間での繰り返される質問 / 入力 / ガバナンス / 出力スロットセマンティックスロットを持つステージフレームワーク → プロセス
会話や緩い入力が構造化された耐久性のあるアーティファクトになる非構造化入力 → 構造化アーティファクト → データフロー
2つのルールトレースが、合格/不合格/スキップ/未到達および最初の分岐点を必要とするペアリングされたポリシー評価トレース → フローチャート
トラストバウンダリーと、許可/禁止されたイングレスまたはデプロイパスセキュアなペーブドロード → アーキテクチャ
強制される場所でグループ化されたコントロールガバナンス / コントロールカタログ → レイヤースタック
防御が以前のギャップを補い、残留リスクが伝播する補償セキュリティレイヤー → レイヤースタック
階層的、IDアドレス可能な分解で、ブロックごとのI/O、制約、コードリンクが必要トレーサブルなブロック分解 → ツリー
1つのサブジェクトがフェーズを進行し、待機、リトライ、キャンセル、終端状態を経るライフサイクルフェーズマップ → ステートマシン

パターンはセマンティックプリミティブとそれに課せられたより厳しい予算を所有し、タイプはレイアウト文法を所有します。アニメーションが要求された場合、または順序変更を実質的に明確にする場合にのみ references/animation.md を使用します。静的がデフォルトのままです。

ビジュアルタイプガイド(45)

表示したいもの…使用するタイプリファレンス
コンポーネントと接続を1つのスナップショットで。ネストされた管理スコープとトラフィックスコープアーキテクチャtype-architecture.md
同期されたBefore / Afterトポロジ間の構造変更。Changes台帳付きアーキテクチャデルタtype-architecture-delta.md
フェーズまたは部門別のレガシーITランドスケープ。Before 状態を示すIT現状図type-it-state.md
分岐のある決定ロジックフローチャートtype-flowchart.md
アクター間の時系列メッセージシーケンスtype-sequence.md
状態 + 遷移 + ガードステートマシンtype-state.md
エンティティ + フィールド + リレーションシップER / データモデルtype-er.md
時間軸上に配置されたイベントタイムラインtype-timeline.md
ハンドオフを伴う部門横断プロセススイムレーンtype-swimlane.md
2軸による配置 / 優先順位付けクアドラントtype-quadrant.md
3~5つの定量的基準で評価された複数エンティティレーダー / スパイダーtype-radar.md
循環カテゴリにわたる1つの定量シリーズ。角度=カテゴリ、半径=マグニチュードポーラーチャートtype-polar.md
強化サイクル。最後のステップが最初のステップにフィードバックし、ハブが状態を蓄積するループtype-loop.md
包含 / スコープによる階層ネストtype-nested.md
親 → 子の関係ツリーtype-tree.md
人間/エージェント/チームの所有権、報告、ルーティング、エスカレーション組織図type-org-chart.md
積み重ねられた抽象化レベルレイヤースタックtype-layers.md
1つのオブジェクトの部品を1軸に沿って分解:分解、開封、組み立て順序分解アクソノメトリックtype-exploded.md
1つのフロアまたはサイトを斜め上から見た図:家具のある部屋、フェーズ別の建物アクソノメトリック平面図type-axonometric-plan.md
セット間の重複ベン図type-venn.md
ランク付けされた階層またはコンバージョンドロップオフピラミッド / ファネルtype-pyramid.md
カテゴリ間の定量的比較棒グラフtype-bar.md
開始合計から終了合計への符号付き貢献による橋渡し(予算ブリッジ、人員デルタ)ウォーターフォールtype-waterfall.md
全体の一部。相対的なサイズがストーリーとなるツリーマップtype-treemap.md
クロス集計データ。塗りつぶしでセルごとの値をエンコードヒートマップtype-heatmap.md
時間の経過に伴う連続トレンド、正確に2つの状態間の変化(スロープグラフ)、シリーズごとの1つの分布(リッジライン)、または複数のスナップショットにわたるランク移動(バンプ)折れ線グラフtype-line.md
タイムライン上のタスクとフェーズガントチャートtype-gantt.md
2変数の相関または分布。バブル(3変数)、ビースウォーム(1変数、アイテムごとにドット)、ボックスプロット(グループごとの5数要約)のバリエーション散布図type-scatter.md
コンテナクラスタ上のエンドツーエンドデータスタックハイレベルtype-high-level.md
データハンドオフを伴うマルチアクター順次プロセスプロセスtype-process.md
品質レベルとアクセスポリシーを持つ多層データストレージメダリオンtype-medallion.md
ロールスコープのデータフロー:各パイプラインステップで誰が何をするかデータフローtype-data-flow.md
データプラットフォームの統合トポロジ — ソース → コア → コンシューマDP統合type-dp-integration.md
ロール/コンポーネントごとのアクセス権限マトリックスDPセキュリティマトリックスtype-dp-security-matrix.md
ステージ間で分割およびマージされる量。バンド幅 = 量サンキーtype-sankey.md
カテゴリ別にグループ化された、1つの観測された効果の原因(根本原因分析)フィッシュボーンtype-fishbone.md
進化に対するバリューチェーン — 何を構築し、何を購入し、何が動いているかウォードリーマップtype-wardley.md
状態別の仕掛中作業。WIP制限とブロックされたアイテム付きかんばんtype-kanban.md
人が体験の各段階で何をし、どのように感じるかユーザージャーニーtype-journey.md
顧客が行うこと vs サービスが隠すこと。段階ごと、可視性のライン付きサービスブループリントtype-service-blueprint.md
ソフトウェアが実行される場所 — ゾーン、ホスト、アーティファクト、レプリカ、ポートデプロイメントtype-deployment.md
何が何に依存しているか。ツリーでは表現できないファンインとサイクルを含む依存関係グラフtype-dependency.md
操作、継承、コンポジションを持つクラス(他のUMLルートは別途)UMLクラスtype-uml-class.md
リリースでスライスされたナラティブバックボーン。カットライン付きストーリーマップtype-story-map.md
物理テーブル:SQLタイプ、制約、インデックス、カラムレベルの外部キーデータベーススキーマtype-db-schema.md

経験則:

  • 3列の表で同じことを伝えられるなら、表を選んでください。
  • 2つのタイプが有用に見える場合は、主要な軸を選んでください。意味パターンは、2番目のレイアウト文法ではなく、動作固有のプリミティブを追加する可能性があります。
  • 複雑さの予算(§7)を超えている場合は、概要と詳細に分割してください。

描く前に、ガイドでリンクされている選択したタイプリファレンスを常にロードしてください。 上記でルーティングされた場合は、semantic-patterns.md もロードしてください。アニメーションが選択された場合は、animation.md をロードしてください。

描く前に確認

レンダリングする前に、1つの短いメッセージで計画を述べてください:選択したビジュアルタイプ(およびルーティングされた場合は意味パターン)、サイズプリセット、および複雑さの予算(§7)が強制的に除外するもの。ユーザーに連絡が取れる場合は、描く前にリダイレクトさせてください。連絡が取れない場合は、続行し、成果物の横に前提条件をメモしてください。リクエストがすでにタイプ、サイズ、コンテンツを正確に指定している場合のみ、一時停止をスキップしてください。


4. ユニバーサルアンチパターン

これらは、あらゆるタイプの「AIの粗悪な」図を示します:

アンチパターン失敗する理由
ダークモード + シアン/パープルのグローデザイン上の決定なしに「技術的に」見える
JetBrains Monoを包括的な「開発者」フォントとして使用モノは 技術的な コンテンツ(ポート、コマンド、URL)専用。名前はGeistサンセリフ体で。
すべてのノードに同一のボックス階層を消去する
図の領域内に浮かぶ凡例ノードと衝突する
マスキング長方形のない矢印ラベル線を透過する
矢印上の垂直 writing-mode テキスト読めない
デフォルトとして3つの等幅サマリーカード汎用グリッド — 幅を変える
任意の要素へのシャドウシャドウはアウト。ボーダーはイン。
ボックスの rounded-2xl最大半径6~10px、またはなし
すべての「重要な」ノードにコーラルコーラルは1~2個のエディトリアルアクセントであり、シグナリングシステムではない
Mermaidのレンダラーレイアウトの再現エディトリアルレイアウトを作成する代わりに、自動間隔とルーティングをインポートする
§6の6つのコネクタルールの違反自動不合格:斜めの傾き、ストロークに触れるラベル、後続のノードでクリップされたマスク、重なるパス、共有アタッチポイント、非エンドポイントボックスの背後を通過するトランジット

タイプ固有のアンチパターンは、ガイドでリンクされている各タイプリファレンスにあります。


5. デザインシステム

デザインシステムはスキン可能です。 references/style-guide.md は、色、タイポグラフィ、トークン、およびデフォルトパレットの唯一の情報源です。このファイルはセマンティックロール(paper、ink、muted、accent、link、…)を命名します。ブランドを適用するには、style-guide.md を編集するか、references/onboarding.md のURLベースのフローを実行してください。

以下の仕様やタイプリファレンスで、「ink」、「accent」、「muted」などが言及されている場合は、style-guide.md で現在の16進数値を調べてください。

タイプリファレンスのスニペットは、プレースホルダーとしてロールを記述します:{ink}、ロールと不透明度の場合は {ink @ 0.40}、フォントの場合は {node-name}、{sublabel}、{eyebrow}、{arrow-label}、{title}、{callout}。出力する前に、すべてのプレースホルダーを style-guide.md に対して解決してください。

セマンティックロール(概要)

ロール目的
paper, paper-2ページ背景およびコンテナ背景
inkプライマリテキスト / ストローク
muted, softセカンダリテキスト / ストローク
accentハイライト、アクション、フォーカルエレメント
linkクリック可能なテキストまたは要素
node-bg, node-borderノード背景および境界線
edge, edge-mutedエッジ(線)のストローク
arrow-fill矢印の塗りつぶし
success, warning, error, infoステータスシグナリング
surface-elevated, surface-sunken表面の階層(カードなど)

タイポグラフィ

テキストのレンダリングには、style-guide.md で定義されたフォントファミリーを使用します。デフォルト:

  • fontFamilyHeading: 見出し用のサンセリフ書体
  • fontFamilyBody: 本文用のサンセリフ書体
  • fontFamilyMono: コード、コマンド、データ用の等幅書体

サイズと間隔

style-guide.md は、スペーシング、ボーダー半径、アイコンサイズのトークンを定義します。デフォルトに依存せず、すべての値はこのファイルから解決する必要があります。


6. コネクタルール

すべての図の種類において、線と矢印はこれらの6つのルールに従わなければなりません:

  1. 斜め線は禁止。 すべての接続線は、正確に水平または垂直である必要があります。45度の線は許可されません。
  2. ラベルはストロークに触れてはいけません。 すべてのラベルには、背景に対してレンダリングされるマスキング長方形が必要であり、ラベルテキストと線の間にパディングが必要です。
  3. マスクは後続のノードによってクリップされてはいけません。 ラベルマスクは、z-オーダーで他のすべての要素の上になければなりません。
  4. パスは互いに、またはノードと重なってはいけません。 経路は交差する必要がある場合、明確なクリーニングされた交差が必要です。オーバーラップ(共線経路)は禁止されています。
  5. 共有アタッチポイントは禁止。 各線は、ノード上の独自の専用アタッチポイントを持たなければなりません。
  6. トランジットは非エンドポイントボックスの背後を通過してはいけません。 接続は、そのソースとターゲット以外のボックスの背後を通過する場合、ルーティングされるか(または回避線が追加されるか)、専用のアタッチポイントが必要です。

コネクタのスタイリングは style-guide.md に従う必要があります:ストローク幅、色(edge、edge-muted)、矢印スタイル(arrow-fill)。


7. 複雑さの予算

各図には、処理できるノードとエッジの数に暗黙の予算があります。推奨値:

  • 最小限の複雑さ(1~3ノード): 図は必要ないかもしれません。文または箇条書きを検討してください。
  • 低複雑さ(4~6ノード): 最適な範囲。クリアな関係性。
  • 中複雑さ(7~9ノード): 管理可能ですが、グループ化または明確なレイアウトが必要です。
  • 高複雑さ(10~15ノード): 危険ゾーン。分割を検討するか、サブグラフを使用してください。
  • 過度の複雑さ(16+ノード): ほぼ常に、複数の図(概要 + 詳細)に分割する必要があります。

予算を超える場合は、まず分割を検討してください。次に、図の一部を詳細図に委任することを検討してください。この図はナビゲーションとして機能する必要があります。

予算はエッジ(接続)にも適用されます。経験則として、ノードあたりのエッジ数は1~2程度に抑えてください。各ノードが5つ以上のエッジを持つ場合は、おそらく複雑すぎます。


8. 出力形式

デフォルトの出力は、レンダリングされたSVGを含む自己完結型のHTMLファイルです。サポートされる形式:

  • HTML(デフォルト): インラインSVGを含む自己完結型ファイル。ビューアに依存しません。
  • SVG: スタンドアロンのSVGファイル。オブジェクトとして埋め込むか、直接表示できます。
  • PNG: ラスターイメージ。埋め込みまたはドキュメントに適しています。

<format> 引数を使用して出力形式を指定するか、デフォルトに従います。

出力されるすべてのファイルは、図の内容とタイプに基づいて名前が付けられます。出力は現在の作業ディレクトリ、またはプロジェクトに応じて適切な場所に配置されます。


9. インポート

このスキルは、レイアウトをインポートするために、.drawio、Mermaid、および .excalidraw ファイルをインポートできます。

インポートワークフロー:

  1. ユーザーが .drawio、.mermaid、または .excalidraw ファイルを提供します。
  2. スキルはファイルを解析し、ノードとエッジを抽出します。
  3. スキルは、タイプとレイアウトの最良の一致を決定します(マッピングをガイドするために §3 を使用)。
  4. スキルは、デザインシステム(§5)とコネクタルール(§6)を適用して、エディトリアルレイアウトを生成します。
  5. 出力は、自己完結型HTMLとして(または要求に応じてSVG/PNGとして)提供されます。

インポートの制限:

  • Mermaidのレンダラーレイアウト(自動間隔とルーティング)は再現されません。代わりに、エディトリアルな手動レイアウトが作成されます。
  • 複雑なMermaid図(ネストされたサブグラフを持つものなど)は、手動での調整が必要になる場合があります。
  • .drawio ファイルは、基本的な形状とコネクタに最適にマッピングされます。高度なカスタム形状は正しくマッピングされない場合があります。

10. プロファイルと保存

プロファイルを使用すると、デザインシステムの設定(色、フォント、サイズ)を保存および再利用できます。

プロファイルの保存:

  • オンボーディング後(§0)、名前付きクライアントプロファイルとして保存するオプションを提供します。
  • プロファイルは、references/profiles.md で定義されたスキームを使用して保存されます。

プロファイルの読み込み:

  • プロジェクトに .diagram-design マーカーがある場合、そのプロファイルが自動的に選択されます(§0)。
  • ユーザーは、オンボーディング(§0)または references/profiles.md を通じて、保存されたプロファイルを名前で読み込むように要求できます。

プロファイルの構造:

各プロファイルには、少なくとも以下が含まれます:

  • プロファイル名(クライアント名など)
  • 色の値(style-guide.md のすべてのセマンティックロールをオーバーライド)
  • フォントファミリー
  • トークン(間隔、ボーダー半径など)

プロファイルの詳細なフォーマットについては、references/profiles.md を参照してください。


11. 参考文献

利用可能なすべてのリファレンスとガイド:

タイプリファレンスは references/ ディレクトリにあり、type-<name>.md パターンに従います。主要な45タイプのリストについては、§3のガイドを参照してください。

関連スキル