Communitygithub.com

aelena/bpmnemonic

Claude Code スキル:BPMN 2.0 プロセス図を読み取り可能なマークダウン仕様書やPRDに変換します。

bpmnemonic とは?

bpmnemonic は、BPMN 2.0 プロセス図(.bpmn ファイル)をエンジニア向けの技術仕様書(specs.md)やステークホルダー向けの製品要件ドキュメント(prd.md)へ変換する Claude Code スキルです。従来、BPMN 図の内容をレビューや要件共有、AIモデルへの入力に利用する際には専用ビューアが必要で不便でしたが、このスキルは図のXML構造を解析し、アクター、判断、例外フロー、データ連携などをマークダウンとして抽出・整形します。変換プロセスは5ステップ(解析→主フロー抽出→代替フロー識別→例外処理→クロスプール連携の特定)で構成され、ユーザーは `/bpmnemonic` などのトリガーで簡単に呼び出せます。出力形式は図の複雑さに応じて自動提案され、ファイル上書き前には確認を求める安全策も備えています。

対応✓Claude Code~Codex CLI~Cursor
npx skills add aelena/bpmnemonic

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

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

ドキュメント

bpmnemonic は何をしますか?

bpmnemonic — BPMN + ニーモニック(記憶補助)。プロセス図を、実際に読めて、検索でき、バージョン管理できるドキュメントに変換します。夜中の2時にエディタで .bpmn ファイルを開く人はいませんが、マークダウンなら誰でも読めるからです。

なぜこれが必要か

BPMNファイルは、アクター、判断、例外パス、データフロー、メッセージ交換といった豊富なセマンティクスを保持していますが、それはビューアを開いているときだけです。以下のような場面に直面した瞬間、

  • PRレビューでプロセスを議論する
  • 要件を外部委託先に送る
  • 新しいエンジニアをオンボーディングする
  • プロセスを言語モデルに入力する

…図は障害物になります。散文が必要です。図と完全に一致した散文が必要です。そして、図が変わるたびに手書きしたくはありません。

このスキルは、BPMN構造から2種類のマークダウン形式への変換をコード化します:

  • specs.md — エンジニア向けの技術仕様書。番号付きステップ、網羅的なフロー、データ契約、受入基準。
  • prd.md — ステークホルダー向けの製品要件ドキュメント。問題定義、アクター、ユーザージャーニー、成功指標、スコープ。

どちらも同じ図から導出されます。対象読者、用語、強調するBPMN要素が異なります。

呼び出し方

トリガー動作
/bpmnemonic または /bpmn-to-spec または /flow-to-docデフォルト — ファイルを分析し、生成する形式を尋ね、生成
/bpmnemonic spec [path]BPMNファイルから specs.md を生成
/bpmnemonic prd [path]BPMNファイルから prd.md を生成
/bpmnemonic both [path]両方のドキュメントを生成
/bpmnemonic analyze [path]scripts/analyze-bpmn.sh を実行し、要素数と複雑さを報告
自然言語: "このBPMNをspecに変換して"、"この図からPRDを作って"、"このワークフローを文書化して"同上

停止/無効化

セッション型ではありません。ファイルごとに一回限り実行します。

変換プレイブック(5ステップ)

ステップ1:解析と棚卸し

.bpmn ファイル(単なるXMLです)を読み込み、棚卸しを行います:

  • プロセス 名、id、およびドキュメント
  • 参加者(bpmn:participant) — これらは「アクター」または「外部システム」になります
  • レーン(bpmn:laneSet 内の bpmn:lane) — これらは「役割」または「責任範囲」になります
  • タスク(bpmn:task、bpmn:userTask、bpmn:serviceTask、bpmn:sendTask、bpmn:receiveTask、bpmn:scriptTask、bpmn:businessRuleTask、bpmn:manualTask) — これらは番号付きステップになります
  • イベント(bpmn:startEvent、bpmn:endEvent、bpmn:intermediateThrowEvent、bpmn:intermediateCatchEvent、bpmn:boundaryEvent) — トリガー、終了、エラー捕捉、タイムアウト
  • ゲートウェイ(bpmn:exclusiveGateway、bpmn:parallelGateway、bpmn:inclusiveGateway、bpmn:eventBasedGateway) — 分岐ポイント
  • シーケンスフロー(bpmn:sequenceFlow) — 矢印
  • メッセージフロー(bpmn:messageFlow) — プール間の通信、連携ポイント
  • データオブジェクト(bpmn:dataObject、bpmn:dataObjectReference) — ドキュメント、レコード、ペイロード
  • サブプロセス(bpmn:subProcess、bpmn:callActivity) — 入れ子の複雑さ

scripts/analyze-bpmn.sh を実行すると、この棚卸しが自動的に生成されます。

ステップ2:線形ナラティブの構築(ハッピーパス)

各開始イベントから各終了イベントまでシーケンスフローを辿り、すべてのゲートウェイで逸脱しないパス(つまり最も成功する可能性の高いパス)を選択します。これが「ハッピーパス」であり、specとPRDの両方の背骨になります。

番号付きステップとしてフォーマットします。各ステップはアクター(レーンから)とアクション(タスク名から)を示します。

ステップ3:分岐(代替フロー)

ハッピーパス上で遭遇する各ゲートウェイについて、他の分岐はspecでは代替フロー、PRDではエッジケースになります。メインフローの後に番号を振ります。

ステップ4:例外の捕捉

タスクに付随する境界イベント(bpmn:boundaryEvent)— エラーイベント、タイマイベント、エスカレーションイベント — は例外フローになります。これらは通常PRDでは欠落しますが、specでは重要です。

ステップ5:プール間通信の特定

プール間のメッセージフローは連携ポイントになります。specでは、これらは外部API契約です。PRDでは、「これは~に依存する」セクションです。

出力形式の選択

ユーザーが指定しない場合は質問します。それ以外は以下のヒューリスティックを使用します:

図に含まれるもの...推奨形式
1つのプール、主にユーザータスク、合計10要素未満PRD — 機能説明として十分小さい
複数のプール、メッセージフロー、エラーイベントspecs.md — エンジニアリングに詳細が必要
サブプロセスまたは呼び出しアクティビティspecs.md + 各サブプロセスを個別に変換することを推奨
「決定表」ゲートウェイ(DMN)両方 — PRDはルールを説明、specは表を記録
迷った場合両方 — 互いに参照し合う

実行フロー(Claudeの動作)

  1. .bpmn ファイルを読み込む(XMLです。Readツールを使用し、その後手動または scripts/parse-bpmn.sh で解析)。
  2. ステップ1に従って要素を棚卸しする。
  3. 指定がない場合は形式を提案する。確認を得る。
  4. ハッピーパスを辿り、線形ナラティブを構築する。
  5. 代替フロー(ゲートウェイ分岐)、例外フロー(境界イベント)、連携ポイント(メッセージフロー)を特定する。
  6. playbook/templates.md から選択したテンプレートをレンダリングし、実際の内容を埋め込む。
  7. ファイルを書き込む前にユーザーにプレビューする。確認を求める。
  8. ./specs.md および/または ./prd.md に書き込む。ファイルが既に存在する場合は差分を表示し、上書き前に確認する。

安全ガードレール

  • ソースは読み取り専用。 .bpmn ファイルを決して変更しない。マークダウンのみを出力する。
  • 元のIDを保持する。 生成されたマークダウン内でBPMN要素IDをコメントとして参照することで、将来の更新時に相互参照できるようにする。(<!-- from bpmn:userTask id="UserTask_1a2b3c" -->)
  • フローをでっち上げない。 図にパスが示されていない場合は、書かない。曖昧な点がある場合は、推測せずにドキュメント内で未解決の質問として提示する。
  • DMNテーブルはインライン翻訳しない。 ごく小規模な場合を除き、参照し、ルールを要約し、別の決定表ドキュメントを推奨する。
  • 名前のない要素をフラグする。 name 属性のない bpmn:task id="Task_42" は図のバグです。出力では名前をでっち上げずに [名前なしタスク — ラベルが必要] として表示する。
  • プレビューと確認なしに既存の specs.md / prd.md を上書きしない。 手動で追記された内容が含まれている可能性がある。

このスキルに含まれるファイル

  • SKILL.md — このファイル
  • playbook/elements.md — BPMN要素リファレンス(各タグの意味)
  • playbook/extraction.md — .bpmn XMLファイルの読み方:タグ名、属性、フローの追跡方法
  • playbook/templates.md — specs.md と prd.md の目標構造
  • playbook/pitfalls.md — プロセス図を文章化する際のよくある間違い
  • examples/01-approval.md — 小さな経費承認フロー → 両方の出力
  • examples/02-loan.md — 複数レーンとゲートウェイがあるローン申請 → spec
  • examples/03-errors.md — タイマー/エラーイベントを含む注文フルフィルメント → spec
  • scripts/analyze-bpmn.sh — BPMN要素をカウントし、複雑性スコアを算出
  • scripts/parse-bpmn.sh — .bpmnファイルから構造化情報を抽出(ベストエフォート、xmlstarletが利用可能な場合に使用)
  • README.md — インストールとクイックスタート

関連スキル