drawio-bpmn について
drawio-bpmnは、draw.ioでBPMNスイムレーン図を作成するスキルです。drawio-ai CLI経由で決定的なレイアウトエンジンを使い、検証とレンダリングの確認も行います。
主な機能
- 01BPMNスイムレーン図の作成
- 02宣言的レイアウトエンジンの利用
- 03図の検証とレンダリング
- 04水平・垂直レーンへの対応
活用シーン
- 01業務プロセスと役割レーンの図示
- 02BPMN図の検証とレンダリング
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sparklabx/ drawio-ai-kit --skill drawio-bpmnインストール後、Claude Code で/drawio-bpmnを入力して読み込まれたか確認します。
詳細
Draw.io BPMN
draw.io で正確な BPMN(ビジネスプロセスモデルと表記法)のスイムレーン図を作成します。
このスキルは薄いフロントエンドであり、決定論的なエンジン、バリデーター、ルールは
drawio-ai CLI 経由で利用する drawio-ai-kit パッケージにあります。
0. 事前確認 — CLI をインストールする必要があります
command -v drawio-ai >/dev/null 2>&1 || echo "Install the Kit first: npm i -g github:sparklabx/drawio-ai-kit"
drawio-ai が PATH 上にない場合は、作業を中止し、ユーザーに
npm i -g github:sparklabx/drawio-ai-kit を実行するよう伝えてください。自分で npm i -g を実行してはいけません。ユーザーの許可なく、ユーザーのグローバル環境を変更してはなりません。
1. ビルドを委任する(ハーネスが対応している場合は推奨)
ハーネスがシェルコマンドを実行し、かつ画像を読み取れる自律型サブエージェント(例:Claude Code の Task ツールや汎用エージェント)を起動できる場合は、ビルドループ全体をサブエージェントで実行してください。ルールの確認、アイコンの検索、レンダリングと修正のすべての反復に、この会話のトークンを消費せずに済みます。対応していない場合(またはサブエージェントが画像を読み取れない場合)は、以下のインラインパスに進んでください。ループもルールも同じです。
起動する前に、サブエージェントが確認できない内容を解決してください。図の範囲、出力ディレクトリ(ユーザーのプロジェクト内の絶対パス)、ファイル名を決めます。上記の事前確認を自分で実行してください。複数の図を依頼された場合は、図ごとに異なるファイル名を指定し、サブエージェントを並列で起動してください。
モデルの振り分け — ハーネスでサブエージェントのモデルを選択できる場合は、タスクの難易度に応じて振り分けてください。ルールの Templates テーブルに一致する依頼(再現は機械的で、バリデーターのアドバイス文がすべての修正方法を示します)には、高速・低コストのモデル(Claude Haiku クラス。画像認識に対応していること)を使用します。自由形式の図や新規のアーキテクチャには、既定の高性能モデルを使用してください。低コストのサブエージェントから VALIDATE が ok でない結果、または ITERATIONS > 3 の結果が返ってきた場合は、インラインで引き継ぐ前に、高性能モデルで一度だけ再実行してください。複数の図を依頼された場合は、図ごとに個別に振り分けます。
サブエージェントへのプロンプト(すべての <...> を埋めてください):
Build a BPMN swimlane .drawio diagram with the drawio-ai CLI.
Request: <user's request + clarifications, verbatim>
Output: <ABS_PROJECT_DIR>/<NAME>.drawio — never write inside the Kit, never into cwd.
Follow exactly:
1. Set ROOT="$(drawio-ai root)". Read $ROOT/docs/api-cheatsheet.md — the full layout-engine
API in one file; never read library source.
2. Run `drawio-ai workflow` and `drawio-ai principles --mode bpmn` — the source of
truth. (Fallback if a command is blocked: read $ROOT/rules/*.md directly.)
3. Look up every icon with ONE batched `drawio-ai search "a, b, c"`; never recolor icons.
4. Scaffold, don't write: `drawio-ai scaffold --list`, pick the closest template, then
`drawio-ai scaffold <name>.mjs -o <dir>/build.mjs` — the script arrives runnable
(absolute imports, self-validating, self-rendering with an issues list). Edit only the
deltas. If no template is close AND you'd change more than half of it, Write a new
script instead (keep the scaffold's self-check tail). Layout engine only
(group/frame/grid/icon/box + renderTree), NO hand-written coordinates.
5. Each `node build.mjs` run prints validate JSON AND the render's machine-readable
`issues` list. Fix from THAT checklist — all issues in one Edit round — then re-run.
Loop until issues is empty.
6. Only when issues is empty: Read the PNG once as final visual confirmation (list any
remaining visual problems, fix ALL in one round). Target <= 2 PNG reads total. Then
render once WITHOUT --check for the final deliverable PNG.
Do NOT invoke any drawio skill — this prompt already contains the full procedure.
Do not ask questions — make the standard choice and record it under ASSUMPTIONS.
Return EXACTLY this block, nothing else:
DRAWIO: <absolute path to .drawio>
PNG: <absolute path to .png>
VALIDATE: <verbatim final validate JSON>
ICONS: <comma-separated icon names used>
ITERATIONS: <number of render/fix cycles>
SUMMARY: <one sentence describing the diagram>
ASSUMPTIONS: <choices made without asking, or "none">
DRAWIO、PNG、SUMMARY をそのままユーザーに伝えてください。この会話で .drawio や PNG を再度読み込んではいけません。サブエージェントがすでに画像によるセルフチェックを実行しています。VALIDATE が ok でない場合は、インラインパスで引き継いでください(ビルド用 .mjs と .drawio は返されたパスにあります)。
インラインパス(サブエージェント非対応の場合)
1. 共通ワークフロー
drawio-ai workflow
各図に共通する、ビルド → 検証 → レンダリング → プロジェクトパスへの書き込みのループが表示されます。読み込んでください。このプロセスの正本です。
2. ドメインルール
drawio-ai principles --mode bpmn
BPMN ルール、共通原則、カタログの形状グループが返されます。
3. エンジンでビルドし、検証してレンダリングする
Kit のインストールディレクトリを特定し、絶対パスを使ってエンジンを import します(具体的な方法は共通ワークフローに記載されています)。
ROOT="$(drawio-ai root)" # absolute path to the installed Kit
宣言的レイアウトエンジンを使ってビルドします(手書きの座標は使用しません)。src/bpmn.mjs のクリエーターと pool() プリミティブを使用して、次の順に実行します。
drawio-ai validate <file> → drawio-ai render <file> -o <file>.png(PNG をReadして画像によるセルフチェックを行います)→ .drawio をユーザーのプロジェクト内の絶対パスに書き込みます(Kit 内や cwd には書き込みません)。
ドメインに関する注意事項
構造:pool → lanes (roles) × phases (milestones)。src/bpmn.mjs のクリエーター(start、intermediate、end、gateway(exclusive/parallel/
inclusive/event)、型付きタスク(userTask、serviceTask、manualTask、
scriptTask、businessRuleTask)、通常の task、subProcess)を使用します。各ノードには
{ lane, col } のセルタグを指定します。エンジンが自動的に配置します。
ゲートウェイは必ず分岐(出力が2つ以上)または合流(入力が2つ以上)のいずれかでなければなりません。どちらにも該当しないゲートウェイは使用しないでください。赤いアクセントを使うのは、ブロッカーとなる終了イベント(error/cancel/terminate)のみです。それ以外はすべてモノクロにします。シーケンスフローには、角を丸めた実線を使用します。開始イベントは1つのみとし、入力フローを持たせません。終了イベントは右側に配置し、出力フローを持たせません。既定では横向きです。縦向きのスイムレーンにするには、pool() に orientation: "vertical" を渡します。
提出前のセルフチェック
- レイアウトエンジンを使って作成しています。座標を手書きしていません。
-
drawio-ai validate→ 問題なし。警告やアドバイスはありません。 - すべてのアイコンは
drawio-ai searchから取得しています(カテゴリの色は維持されています)。 -
drawio-ai renderの視覚的なセルフチェックに合格しています。 - 出力先は Kit ではなく、ユーザーのプロジェクト内です。