drawio-skill について
drawio-skill は、コードやインフラソースなどから編集可能な Draw.io 図を作成・保守するためのスキルです。図の作成者やアーキテクチャチーム向けに、統合 CLI、検証、セマンティックなワークフロー、複数のビューを備えています。
主な機能
- 01編集可能な .drawio 図の生成
- 02ソース入力からの図の構築
- 03生成図の同期
- 04複数のアーキテクチャビュー作成
- 05図の意味検証とレビュー
- 06図の変換と公開
活用シーン
- 01Terraform または Kubernetes 入力からの図の作成
- 02手動レイアウトを保った図の更新
- 03CI でのアーキテクチャルールのレビュー
- 04既存図の別形式への変換
MCP 対応
MCP ホストから図のワークフローを呼び出すため、scripts/diagramctl_mcp.py の登録方法を説明しています。このスクリプトが MCP 経由でワークフローを提供します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agents365-ai/ 365-skills --skill drawio-skillインストール後、Claude Code で/drawio-skillを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEagents/openai.yamldata/databricks-icons.jsondiagram-ir.schema.jsonlobe-icons.jsonSHAPE-INDEX-NOTICE.mdreferences/autolayout.mdci-gate.mdcookbook.mddatabricks.mdderasterize.mddiagram-ir.mddiagram-types.mdlive-infra.mdmcp.mdmermaid-authoring.mdpr-bot.mdsecurity.mdsemantic-workflows.mdshapes.mdstyle-extraction.mdstyle-presets.mdtoolbox.mdtroubleshooting.mdtubemap.mdxml-authoring.mdscripts/aiicons.pyasyncapiimports.pyautolayout.pybuildup.py詳細
Draw.io アーキテクチャスタジオ
画像に統合せず、編集可能な .drawio アーティファクトを生成します。推奨するエントリーポイントは scripts/diagramctl.py です。生成、差分同期、マルチビュー投影、セマンティッククエリ/テスト/レビュー、失敗分析、アクセシブルな公開を、共有の Diagram IR を通じて統合します。
ワークフローを選ぶ
| リクエスト | 方法 |
|---|---|
| 精密なスタイリングを施した自然言語の図 | references/diagram-types.md を読み、続けて references/xml-authoring.md を読み、XML を作成します |
| 特別なスタイリングを必要としない標準的なフローチャート/マインドマップ/ガントチャート/タイムラインなど | draw.io が 30 以降の場合は、references/mermaid-authoring.md を読み、Mermaid をネイティブな .drawio に変換します |
| 自動レイアウトが必要な大規模なグラフ(約 15 ノード以上) | autolayout.py を使用します。--layout の値を渡す前に references/autolayout.md を読んでください |
| コード、Terraform、K8s、compose、SQL、OpenAPI、AsyncAPI、または CI のソース | diagramctl.py build を使用します。references/diagram-ir.md を読んでください |
| Protocol Buffers スキーマ(.proto) | protoimports.py または diagramctl.py build を使用します。references/toolbox.md を読んでください |
| 実行中のクラスター/スタック/クラウド(宣言された設定ではなく、実際の状態) | references/live-infra.md を読み、tfstate.py、dockerimports.py、または k8simports.py - を使用します |
| 手動のレイアウトを失わずに生成済みの図を更新する | diagramctl.py sync を使用します。references/diagram-ir.md を読んでください |
| エグゼクティブ/システム/デプロイ/データフロー/セキュリティのビュー | diagramctl.py views を使用します。references/diagram-ir.md を読んでください |
| クエリ、アーキテクチャポリシー、レビュー、what-if、またはガイド付きのウォークスルー | references/semantic-workflows.md を読んでください |
| MCP ホスト(Claude Desktop、Cursor、VS Code、Codex)からこれらのワークフローを呼び出す | scripts/diagramctl_mcp.py を登録します。references/mcp.md を読んでください |
| 図の種類やセマンティックワークフロー向けのプロンプトの表現 | references/cookbook.md を読んでください |
| GitHub Actions CI でアーキテクチャルールやビジュアル差分を適用する | references/ci-gate.md を読んでください |
| PR レビューコメント用のレンダリング済みビフォー/アフター/差分画像 | prdiff.py を使用します。references/pr-bot.md を読んでください |
既存の .drawio を HTML/PPTX/Mermaid/Markdown/アニメーション/ランブックに変換する | references/toolbox.md を読んでください。diagramctl.py transform から既存ツールを利用できます |
| 地下鉄路線図の形式で描くパイプライン/ユーザージャーニー/サブシステムのマップ | tubemap.py を使用します。references/tubemap.md を読んでください |
| 図形、クラウド/ベンダー、AI、または Databricks のアイコン | references/shapes.md または references/databricks.md を読んでください。図形名を推測しないでください |
| ビジュアルスタイルの習得/適用/管理 | references/style-presets.md を読んでください |
| 既存の図やテーマから再利用可能なスタイルを抽出する | references/style-extraction.md を読んでください |
| 既存の画像を編集可能な図に変換する(スクリーンショット、ホワイトボードの写真、レガシー PNG) | references/derasterize.md を読んでください |
| エクスポート/プラットフォームに関する問題 | references/troubleshooting.md を読んでください。アクセス/ネットワークに関する質問は references/security.md を読んでください |
統合 CLI
このスキルのディレクトリから実行するか、scripts/ をこのスキルのスクリプトディレクトリの絶対パスに置き換えてください。
python3 scripts/diagramctl.py doctor
python3 scripts/diagramctl.py build model.json --from ir -o architecture.drawio
python3 scripts/diagramctl.py build ./infra --from terraform --group \
--ir-output architecture.ir.json -o architecture.drawio
python3 scripts/diagramctl.py sync architecture.drawio ./infra --from terraform \
-o architecture.next.drawio
python3 scripts/diagramctl.py views architecture.ir.json \
--views executive,system,deployment,dataflow,security -o views.drawio
python3 scripts/diagramctl.py test architecture.drawio --rules policy.yml
python3 scripts/diagramctl.py review architecture.drawio -o review.md
python3 scripts/diagramctl.py query architecture.drawio --from internet --to orders-db
python3 scripts/diagramctl.py whatif architecture.ir.json --fail kafka \
--drawio kafka-failure.drawio -o impact.json
python3 scripts/diagramctl.py story architecture.ir.json -o walkthrough.html
doctor は --probe を渡さない限り GUI ツールを起動しません。コアのセマンティックコマンドはオフラインで動作し、標準ライブラリのみを使用します。
作成ワークフロー
-
リクエストから図の種類、対象者、範囲、出力形式、保存場所を推定します。選択肢が不足していて、結果に重大な影響を与える場合に限り確認し、特に指定がなければ作業ディレクトリに PNG と
.drawioを出力します。 -
上の表から作成方法を選びます。データに基づく図には Diagram IR を優先し、データの出所を保持します。大規模なグラフにはインポーターまたは
autolayout.pyを使用し、およそ 15 個を超えるノードを手作業で配置しないでください。 -
明示的に指定されたスタイルプリセット、またはユーザーの既定プリセットを、
references/style-presets.mdの説明に従って適用します。図の構造上の規則とビジュアルプリセットは組み合わせて使うものであり、互いに置き換えるものではありません。 -
.drawioを生成し、次に構造を検証します。python3 scripts/validate.py diagram.drawio --scoreセマンティックメタデータまたはアーキテクチャポリシーが対象範囲に含まれる場合は、
diagramctl.py testも実行します。推定したセマンティックな検出結果を、検証済みの実行時事実として提示しないでください。 -
XML を埋め込まずにドラフト PNG をエクスポートし、目視で確認します。明らかな重なり、はみ出し、未接続のエッジ、ノードを貫通するエッジの経路、重なり合ったエッジ、判読しにくいラベルを修正します。自動的な画像修正は 2 回までにしてください。
-
ドラフトを提示し、対象を絞って編集します。局所的な変更では既存のジオメトリを維持します。ソースに基づく変更には
syncを使い、レビュー可能な出力を作成します。削除が依頼された場合に限り--pruneを使います。 -
承認後、依頼された最終形式を作成し、編集可能なソースとエクスポート先の両方を報告します。
エクスポート時の不変条件
利用可能なバイナリ(drawio、draw.io、macOS アプリのパス、または Windows 実行ファイル)を一度だけ特定し、実行中は同じバイナリを使用します。
# Draft for visual inspection: never use -e here
drawio -x -f png --width 2000 -o diagram.png diagram.drawio
# Final editable PNG
drawio -x -f png -e -s 2 -o diagram.drawio.png diagram.drawio
python3 scripts/repair_png.py diagram.drawio.png
# Final editable SVG/PDF
drawio -x -f svg -e --embed-svg-images -o diagram.svg diagram.drawio
drawio -x -f pdf -e -o diagram.pdf diagram.drawio
--width と -s を同時に指定しないでください。PNG への XML 埋め込みエクスポートには repair_png.py が必要です。画像確認に使うドラフト PNG では -e を使わないでください。Linux のヘッドレス環境では、Electron のフラグをその場で試すのではなく、references/troubleshooting.md に従ってください。macOS のサンドボックス内で CLI がクラッシュした場合は、許可されている権限昇格での実行を 1 回試し、その後は encode_drawio_url.py を使うか XML を渡してください。繰り返し起動しないでください。
編集と識別子
- 安定したセマンティック ID を使用し、予約済みの ID
0および1は再利用しないでください。 - すべてのエッジに
<mxGeometry relative="1" as="geometry"/>が必要です。 - 局所的な編集では対応するセルのみを変更します。全体の方向を変更する場合は、ページを再生成または再レイアウトします。
- ユーザーから別途依頼がない限り、データの出所、
data-model-id、セマンティックプロパティ、手動で設定したジオメトリやスタイルを保持します。 - 照合時に削除対象となった要素は、特に指示がなければ、レビュー可能な薄い表示の要素として残します。
- 境界上でエッジが重なっている場合は
edgeports.pyを実行します。それでもエッジが無関係な図形を横切る場合は、経由点を追加します。ノードの位置を維持したままエッジを再経路設定する、CLI のみで使える方法はありません。
品質と信頼性
見栄えの良い図でも、内容が誤っていることがあります。ソースに裏付けられた関係を優先し、役立つ場合はデータの出所を示し、正確な抽出と AI による推論を区別し、アーキテクチャレビューの検出事項はプロンプトとして提示します。ストーリー HTML は自己完結し、キーボードで操作でき、テキストによる代替手段を含める必要があります。出力に埋め込まれるため、ノードのプロパティやデータの出所に秘密情報を含めないでください。
目的に特化したすべてのスクリプトと構成パターンについては、references/toolbox.md を参照してください。現在の依頼に必要なリファレンスのみを読み込んでください。