mcpField
P
plantuml

plantuml

github.com/spillwavesolutionsドキュメント59216 回インストール9 週間前に更新
リポジトリ

plantuml について

PlantUMLの図を作成・変換するスキルです。ソフトウェアやシステムを文書化する人向けに、構文検証、画像出力、Markdown処理も提供します。

主な機能

  1. 01自然言語から図を作成
  2. 02ソースコード構造をアーキテクチャ図に変換
  3. 03.pumlをPNGまたはSVGに変換
  4. 04Markdown内の図を抽出・変換
  5. 05PlantUML構文の検証

活用シーン

  1. 01アプリケーション構成の図示
  2. 02Markdown内の図を画像として出力
  3. 03.pumlファイルの構文確認
  4. 04ConfluenceやNotion向けの図の準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/spillwavesolutions/plantuml --skill plantuml

インストール後、Claude Code で/plantumlを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CHANGELOG.md
README.md
FINAL_SUMMARY.md
PDA_OPTIMIZATION_SUMMARY.md
SKILL-PDA.md
.claude-plugin/
plugin.json
examples/
test_linked_puml.md
test_resilient.md
examples/fastapi/
README.md
deployment-diagram.puml
examples/python-etl/
architecture-diagram.puml
examples/spring-boot/
README.md
component-diagram.puml
deployment-diagram.puml
sequence-diagram.puml
references/
archimate_diagrams.md
activity_diagrams.md
class_diagrams.md
component_diagrams.md
common_format.md
common_syntax_errors.md
ditaa_diagrams.md
gantt_diagrams.md
object_diagrams.md
mindmap_diagrams.md
deployment_diagrams.md
network_diagrams.md
json_yaml_diagrams.md
er_diagrams.md
sequence_diagrams.md

詳細

PlantUML の図の生成と変換

目次

目的

このスキルでは、PlantUML の図の作成と変換に関する包括的なワークフローを利用できます。PlantUML は、シンプルで直感的な構文からプロフェッショナルな図を生成する、テキストベースの作図ツールです。

主な機能:

  1. 自然言語の説明から図を作成する
  2. ソースコードをアーキテクチャ図に変換する(Spring Boot、FastAPI、Python ETL、Node.js、React)
  3. 単独の .puml ファイルを PNG または SVG 画像に変換する
  4. Markdown から puml コードブロックを抽出し、画像に変換する
  5. Markdown 内のリンクされた .puml ファイルを処理する(![diagram](path/to/diagram.puml))
  6. 変換せずに PlantUML の構文を検証する
  7. 公開用に Markdown の図を画像リンクに置き換える(Confluence、Notion)

このスキルを使用する場面

WikiTicket、GitHub wiki、アーキテクチャドキュメント、チュートリアル、要件には、既定で design-doc-mermaid を使用します。 GitHub はフェンス付き Mermaid(フローチャート、シーケンス、クラス、ER、状態、C4)を描画します。このスキルは必要に応じて使用します。

次の場合に有効にしてください:

  • Salt のワイヤーフレーム/UI モック
  • UML のユースケース、タイミング図、ArchiMate
  • nwdiag ネットワーク、WBS、JSON/YAML ツリー
  • .puml ファイルから PNG または SVG への変換(常に必要です。GitHub wiki は PlantUML ソースを描画しません)
  • PlantUML のフェンスまたはリンクされた .puml ファイルを含む Markdown ファイル
  • Confluence または Notion への画像エクスポート(先に描画してからアップロードします)
  • PlantUML の構文検証
  • すでに .puml ソースがあり、画像を作成したいユーザー

WikiTicket の設計ドキュメントでは、Mermaid で対応できない場合、またはユーザーが PlantUML を指定した場合を除き、クラス図、ER 図、状態図、シーケンス図、C4 図を使用しないでください。

GitHub wiki: PlantUML のフェンスだけを表示する状態にしないでください。PNG または SVG を描画し、docs/diagrams/ にコミットして、画像にリンクし、wiki ページと一緒にアップロードしてください。

Confluence/Notion: PlantUML(および design-doc-mermaid 経由の Mermaid)を PNG または SVG に描画し、両方をアップロードしてください。references/wiki-ticket-integration.md を参照してください。

前提条件

図を作成する前に、PlantUML のセットアップを確認してください:

python scripts/check_setup.py

必須コンポーネント:

コンポーネント目的インストール
Java JRE/JDK 8+実行環境https://www.oracle.com/java/technologies/downloads/
plantuml.jar図の生成ツールhttps://plantuml.com/download(`~/plantuml.jar` に配置するか、PLANTUML_JAR を設定)
Graphviz(任意)複雑なレイアウトhttps://graphviz.org/download/

図の作成

図の種類の識別

ユーザーの意図に基づいて、適切な図の種類を識別します。

WikiTicket/GitHub wiki のデフォルトは design-doc-mermaid です。 以下のシーケンス、クラス、アクティビティ、状態、ER、コンポーネントの各行は、ユーザーが PlantUML を指定した場合、または既存の .puml ファイルを変換する場合にのみ使用してください。 必ず PNG または SVG を出力してください。PlantUML のコードフェンスだけを表示として残さないでください。

ユーザーの意図図の種類リファレンス
UI モック、画面スケッチSalt ワイヤーフレームreferences/wireframes_salt.md
アクターと目標ユースケースreferences/use_case_diagrams.md
クロック、波形タイミングreferences/timing_diagrams.md
エンタープライズ層ArchiMatereferences/archimate_diagrams.md
ネットワークラックnwdiagreferences/network_diagrams.md
作業分解WBSreferences/wbs_diagrams.md
時系列のインタラクション(ユーザーが PlantUML を指定した場合のみ)シーケンスreferences/sequence_diagrams.md
クラスによるシステム構造(ユーザーが PlantUML を指定した場合のみ)クラスreferences/class_diagrams.md
ワークフロー、意思決定フロー(ユーザーが PlantUML を指定した場合のみ)アクティビティreferences/activity_diagrams.md
オブジェクトの状態と遷移(ユーザーが PlantUML を指定した場合のみ)状態references/state_diagrams.md
データベーススキーマ(ユーザーが PlantUML を指定した場合のみ)ER(エンティティ関係)references/er_diagrams.md
プロジェクトのタイムラインガントreferences/gantt_diagrams.md
アイデアの整理マインドマップreferences/mindmap_diagrams.md
システムアーキテクチャ(ユーザーが PlantUML を指定した場合のみ)コンポーネントreferences/component_diagrams.md
全 19 種類ナビゲーションハブを参照references/toc.md
WikiTicket/GitHub wiki/Confluence画像のエクスポートルールreferences/wiki-ticket-integration.md

構文リソース:

  • references/toc.md:すべての図の種類にリンクするナビゲーションハブ
  • references/common_format.md:共通要素(区切り文字、メタデータ、コメント、注記)
  • references/styling_guide.md:視覚的なカスタマイズに使う最新の <style> 構文
堅牢なワークフロー(第一候補・推奨)

エラーから復旧できる信頼性の高い図の生成には、次の 4 ステップの堅牢なワークフローに従ってください。

ステップ 1:図の種類を識別してリファレンスを読み込む

  • ユーザーの意図から図の種類を識別します
  • 構文ガイドとして references/[diagram_type]_diagrams.md を読み込みます
  • 判断が難しい場合は references/toc.md を参照します

ステップ 2:構造化された命名規則でファイルを作成する

./diagrams/<markdown_name>_<num>_<type>_<title>.puml

例:./diagrams/architecture_001_sequence_user_auth.puml

ステップ 3:エラー処理を行いながら変換する(最大 3 回まで再試行)

変換に失敗した場合:

  1. エラーを分類するために references/troubleshooting/toc.md を確認します
  2. 該当するガイド references/troubleshooting/[category]_guide.md を読み込みます
  3. 図の種類に応じた references/common_syntax_errors.md を確認します

ステップ 4:検証して統合する

  1. 画像ファイルが存在することを確認します
  2. 画像リンクを追加します:![title](diagrams/filename.png)
  3. 今後の編集に備えて .puml ソースファイルを保持します

ドキュメント全文: references/workflows/resilient-execution-guide.md

構文クイックリファレンス

共通要素:

  • 区切り文字:@startuml / @enduml(必須)
  • コメント:' Single line または /' Multi-line '/
  • 関係:->(実線)、-->(破線)、..>(点線)
  • ラベル:A -> B : Label text

最小限の例(構文の詳細は references/[type]_diagrams.md を参照してください):

' Sequence: references/sequence_diagrams.md
@startuml
Alice -> Bob: Request
Bob --> Alice: Response
@enduml
' Class: references/class_diagrams.md
@startuml
class Animal { +move() }
class Dog extends Animal { +bark() }
@enduml
' ER: references/er_diagrams.md
@startuml
entity User { *id: int }
entity Post { *id: int }
User ||--o{ Post
@enduml

ソースコードを図に変換する

examples/ ディレクトリには、一般的なアプリケーションアーキテクチャを変換するための、言語別テンプレートが含まれています。

アプリケーションの種類ディレクトリ主な図
Spring Bootexamples/spring-boot/デプロイメント、コンポーネント、シーケンス
FastAPIexamples/fastapi/デプロイメント、コンポーネント(非同期ルーター)
Python ETLexamples/python-etl/Airflow を使用したアーキテクチャ
Node.jsexamples/nodejs-web/Express/Nest.js コンポーネント
Reactexamples/react-frontend/SPA デプロイメント、コンポーネントアーキテクチャ

ワークフロー:

  1. アプリケーションの種類を特定します
  2. examples/[app-type]/ の例を確認します
  3. コード構造を図のパターンに対応付けます
  4. .puml の例をコピーして調整します
  5. 意味を明確にするため、references/unicode_symbols.md の Unicode 記号を使用します

図を画像に変換する

単独の .puml ファイルを変換する
# Convert to PNG (default)
python scripts/convert_puml.py diagram.puml

# Convert to SVG
python scripts/convert_puml.py diagram.puml --format svg

# Specify output directory
python scripts/convert_puml.py diagram.puml --format svg --output-dir images/
Markdown から抽出して変換する

Confluence/Notion では重要です: Markdown に PlantUML 図が含まれている場合は、アップロードの前に必ず最初に実行してください。

# Process embedded ```puml blocks AND linked ![](diagram.puml) files
python scripts/process_markdown_puml.py article.md

# Convert to SVG format
python scripts/process_markdown_puml.py article.md --format svg

# Validate syntax only (for CI/CD)
python scripts/process_markdown_puml.py article.md --validate

出力:

  • article_with_images.md:画像リンクを含む Markdown
  • images/:生成された画像のディレクトリ

IDE に適したワークフロー: 開発中は図を .puml ファイルとして保持して IDE でプレビューし、公開時に変換します。

コマンドラインから直接実行する
# Basic conversion
java -jar ~/plantuml.jar diagram.puml

# SVG with custom output
java -jar ~/plantuml.jar --svg --output-dir out/ diagram.puml

# Batch conversion
java -jar ~/plantuml.jar "**/*.puml" --svg

コマンドラインのオプションについて詳しくは、references/plantuml_reference.md を参照してください。

ベストプラクティス

図の品質:

  • 図の内容が分かる説明的なファイル名を使用します
  • 明確さを高めるために、' を使ってコメントを追加します
  • 標準的な UML 表記に従います
  • 複雑さを加える前に、段階的にテストします

形式の選択:

  • PNG:Web 公開向け、ファイルサイズが小さく、解像度は固定
  • SVG:ドキュメント向け、拡大縮小可能で、ハイパーリンクをサポート

スタイル: references/styling_guide.md の最新の <style> 構文を適用します。

@startuml
<style>
classDiagram {
  class { BackgroundColor LightBlue }
}
</style>
' diagram content
@enduml

テーマ: !theme cerulean(ほかに bluegray、plain、sketchy、amiga)

Unicode 記号: references/unicode_symbols.md の記号を使用して、意味を補足します。

node "☁️ AWS Cloud" as aws
database "💾 PostgreSQL" as db

トラブルシューティング

簡易診断:

  1. 構文を確認します:java -jar plantuml.jar --check-syntax file.puml
  2. エラーの種類を特定します
  3. トラブルシューティングガイドを読み込みます:references/troubleshooting/toc.md

よくある問題:

問題解決策
"plantuml.jar not found"https://plantuml.com/download からダウンロードし、PLANTUML_JAR を設定します
"Graphviz not found"https://graphviz.org/download/ からインストールします
"Syntax Error"区切り文字の対応を確認し、references/common_format.md を参照します
"Java not found"Java JRE/JDK 8 以降をインストールし、java -version で確認します

詳細なガイド(215 件以上のエラーを記載):

  • references/troubleshooting/toc.md - エラーの判断ツリーを備えたナビゲーションハブ
  • references/troubleshooting/[category]_guide.md - エラーの種類ごとにまとめた 12 のガイド

参考資料

構文の基本資料
リソース目的
references/wiki-ticket-integration.mdWikiTicket の残りの種類、常に PNG/SVG を使用、Confluence へのアップロード
references/toc.md19 種類すべての図を網羅したナビゲーションハブ
references/common_format.md共通要素(区切り文字、メタデータ、コメント)
references/styling_guide.mdCSS に似たルールを使った最新の <style> 構文
references/plantuml_reference.mdインストール、CLI、トラブルシューティング
トラブルシューティングガイド
リソース対象範囲
references/troubleshooting/toc.mdエラーの判断ツリーを備えたナビゲーションハブ
references/troubleshooting/installation_setup_guide.mdセットアップの問題
references/troubleshooting/general_syntax_guide.md構文エラー
references/troubleshooting/[diagram_type]_guide.md図の種類に固有のエラー
補足資料
リソース目的
references/unicode_symbols.md意味を補足する Unicode 記号
examples/[framework]/コードから図への変換パターン

概要

  1. セットアップを確認:python scripts/check_setup.py
  2. 種類を確認:references/toc.mdから始めます
  3. 構文を学ぶ:references/[diagram_type]_diagrams.mdを開きます
  4. スタイルを適用:references/styling_guide.mdを使用します
  5. 記号を追加:references/unicode_symbols.mdを使用します
  6. ファイルを変換:scripts/convert_puml.py
  7. Markdownを処理:scripts/process_markdown_puml.py
  8. トラブルシューティング:references/troubleshooting/toc.md

対応する図:

  • UML:シーケンス図、クラス図、アクティビティ図、状態図、コンポーネント図、配置図、ユースケース図、オブジェクト図、タイミング図
  • UML以外:ER図、ガントチャート、マインドマップ、WBS、JSON/YAML、ネットワーク図、Archimate、ワイヤーフレーム

コメント