033-architecture-diagrams について
Java プロジェクトの図を PlantUML で生成する対話型スキルです。質問を通じて図の種類と出力形式を決め、UML、C4、ER、デプロイ、境界づけられたコンテキストを扱い、検証手順も含みます。
主な機能
- 01UML シーケンス図とクラス図の生成
- 02C4 のコンテキスト・コンテナー・コンポーネント図
- 03状態・デプロイ・ER スキーマのモデル化
- 04境界づけられたコンテキスト図の作成
- 05ファイル構成と出力形式の選択
- 06PlantUML 図の検証とレンダリング
活用シーン
- 01Java アプリのフローと構造の文書化
- 02デプロイトポロジーやエンティティのライフサイクル表示
- 03データベーススキーマやドメインコンテキストの図示
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jabrena/ plinth --skill 033-architecture-diagramsインストール後、Claude Code で/033-architecture-diagramsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/033-architecture-diagrams-state-machine.md033-architecture-diagrams-bounded-context.md033-architecture-diagrams-er.md033-architecture-diagrams-uml-class.md033-architecture-diagrams-deployment.md033-architecture-diagrams-uml-sequence.md033-architecture-diagrams-c4.md詳細
モジュール式のステップベース設定による Java 図生成
UML シーケンス図、UML クラス図、C4 モデル図、UML ステートマシン図、UML デプロイメント図、ER(エンティティ・リレーションシップ)図、境界づけられたコンテキスト図を、PlantUML 構文を使用して、モジュール式のステップベースの対話形式で包括的に生成します。これは対話型の SKILL です。
この Skill の内容
- アプリケーションのワークフローや API のやり取りを対象とした UML シーケンス図の生成
- パッケージ構造とクラス間の関係を対象とした UML クラス図の生成
- コンテキスト図、コンテナ図、コンポーネント図を対象とした C4 モデル図の生成
- エンティティのライフサイクルとビジネスワークフローを対象とした UML ステートマシン図の生成
- 実行時のトポロジー、ノード、実行環境、デプロイされたコンポーネント、データストア、キュー、外部システム、通信経路を対象とした UML デプロイメント図の生成
- SQL スキーマ(DDL、マイグレーション)から PlantUML の Chen 記法を使用した ER 図の生成
- 1 つ以上のリポジトリにまたがる DDD コンテキストマップを対象とした境界づけられたコンテキスト図の生成
- すべての図の種類に対応した PlantUML 構文
- ファイル構成の方針:単一ファイル、複数ファイル、既存ドキュメントとの統合
- PlantUML 構文チェックによる最終的な図の検証
- 信頼できるローカルの PlantUML インストールまたはリポジトリで承認されたラッパーを使用した PlantUML の検証と PNG/SVG のレンダリング
制約
図の生成を行う前に、プロジェクトの検証が成功することを確認してください。検証に失敗した場合は、直ちに停止してください。すべての検証エラーが解決されるまで、先に進んではいけません。
- 必須:図の生成を行う前に、
./mvnw validateまたはmvn validateを実行してください - 安全性:検証に失敗した場合は、直ちに停止してください。すべての検証エラーが解決されるまで、先に進んではいけません
- 図のリファレンスを読む前に:まず、この SKILL.md に組み込まれた質問フローを実行してください。図の選択に関する質問を 1 つずつ行い、選択された図の種類と出力設定を収集してから、ユーザーの回答で選択された実装リファレンスのみを読んでください
- C4 の対象範囲:C4 図はコンテキスト図、コンテナ図、コンポーネント図に限定されます
- サプライチェーン:生成する PlantUML 図では、信頼できるローカルのインクルードのみを使用してください。C4 またはアイコンライブラリ用のリモート
!includeURL は使用しないでください - ツールの安全性:信頼できるローカルの PlantUML ツールまたはリポジトリで承認されたラッパーのみを使用してください。このスキルの一部として、リモートのコンテナイメージを取得したり実行したりしてはいけません
このスキルを使用する場面
- UML 図を生成する
- シーケンス図を作成する
- クラス図を作成する
- ステートマシン図を作成する
- デプロイメント図を作成する
- C4 図を作成する
- ER 図を生成する
- 境界づけられたコンテキスト図を作成する
- コンテキストマップ図を作成する
ワークフロー
- プロジェクトの状態を検証する
図の生成を行う前に、./mvnw validate または mvn validate を実行してください。
ステップの制約:
- 検証に失敗した場合は、停止して、まずエラーの解決を依頼してください
- リファレンスを読む前に図の選択に関する質問をする
図の種類ごとの実装リファレンスを読む前に、この XML に記載された質問フローを実行してください。厳密な順序で質問を 1 つずつ行い、それぞれの質問に対するユーザーの回答を待ってください。続行する前に、選択された図の種類、C4 の対象範囲、境界づけられたコンテキスト図のリポジトリ範囲、出力の構成、ファイル形式、ドキュメントに関する希望を記録してください。
重要:以下に示す正確な順序と文言で、必ずこれらの質問をしてください。ユーザーへの最初の質問は、必ず「Question 1: What diagrams do you want to generate?」にしてください。その前に、ほかの質問をしてはいけません。
図の選択
条件付きフローのルール:
- ここでの選択に基づいて、該当する図の生成ステップのみを実行します。
- 「Skip」を選択した場合は、図を生成しません。
- 図の種類ごとに、条件に応じた追加の質問があります。
Question 1: どの図を生成しますか? オプション:
- UML シーケンス図
- UML クラス図
- UML ステートマシン図
- C4 モデル図(Context、Container、Component)
- UML デプロイメント図
- ER 図(エンティティ・リレーションシップ)
- 境界づけられたコンテキスト図
- すべての図
- スキップ
質問 2:UML シーケンス図では、どの種類を生成しますか? 質問 1 で「UML シーケンス図」または「すべての図」を選択した場合にのみ、この質問をしてください。
オプション:
- メインアプリケーションのフロー(ユーザージャーニー、認証、主要機能)
- API のやり取り(REST エンドポイント、リクエスト/レスポンスパターン)
- 複雑なビジネスロジックのフロー(複数ステップのプロセス、トランザクション)
- すべてのシーケンス図の種類
- スキップ
質問 3:UML クラス図では、どの範囲を対象にしますか? 質問 1 で「UML クラス図」または「すべての図」を選択した場合にのみ、この質問をしてください。
オプション:
- すべてのパッケージ(プロジェクト構造全体)
- コアビジネスロジックのパッケージのみ
- 特定のパッケージ(対象を指定します)
- スキップ
質問 4:UML クラス図では、どの程度の詳細さを希望しますか? 質問 1 で「UML クラス図」または「すべての図」を選択し、質問 3 で「スキップ」を選択しなかった場合にのみ、この質問をしてください。
オプション:
- 概要レベル(クラスと関係のみ)
- 詳細(主要なメソッドと属性を含む)
- 完全な詳細(すべてのパブリックメソッド、属性、アノテーション)
質問 5:C4 モデル図では、どのレベルを生成しますか? 質問 1 で「C4 モデル図」または「すべての図」を選択した場合にのみ、この質問をしてください。
オプション:
- 完全な C4 モデル(Context、Container、Component)
- 概要図のみ(Context と Container)
- Component 図のみ
- 特定の C4 レベル(Context、Container、および/または Component)
- スキップ
質問 6:UML ステートマシン図では、どの種類を生成しますか? 質問 1 で「UML ステートマシン図」または「すべての図」を選択した場合にのみ、この質問をしてください。
オプション:
- エンティティのライフサイクル(Order、User、Document などのドメインオブジェクトの状態遷移)
- ビジネスワークフロー(承認、支払い、配送などのプロセスのステートマシン)
- システムの振る舞い(接続、ジョブ、トランザクションなどのコンポーネントの動作状態)
- ユーザーインタラクション(フォーム、ウィザード、ダイアログなどの UI コンポーネントの状態遷移)
- すべてのステートマシンの種類
- スキップ
質問 7:ER 図では、どのスキーマ範囲を対象にしますか? 質問 1 で「ER 図(エンティティ・リレーションシップ)」または「すべての図」を選択した場合にのみ、この質問をしてください。
オプション:
- データベーススキーマ全体(すべてのテーブル)
- コアドメインのテーブルのみ
- 特定のテーブル(対象を指定します)
- スキップ
質問 8:境界づけられたコンテキスト図では、どのリポジトリを表しますか? 質問 1 で「境界づけられたコンテキスト図」または「すべての図」を選択した場合にのみ、この質問をしてください。
オプション:
- 現在のリポジトリのみ
- 1 つ以上のローカルリポジトリパス(パスを指定します)
- 1 つ以上のリポジトリ URL(URL を指定します)
- 名前付きのリポジトリリスト(名前とコンテキストを指定します)
- スキップ
対象範囲内の各リポジトリについて、入手可能な情報を収集してください。リポジトリ名またはパス、境界づけられたコンテキスト、ドメインまたはサブドメイン、担当チーム、アプリケーションの種類、所有するデータストア、公開インターフェース、利用するインターフェース、既知の関係を確認します。
質問 9:UML デプロイメント図では、どの資料を最初に使用しますか? 質問 1 で「UML デプロイメント図」または「すべての図」を選択した場合にのみ、この質問をしてください。
オプション:
- 既存のデプロイメント図の画像またはトポロジーのスケッチ(画像を提供します)
- システム説明ファイル(ファイルパスを提供します)
- リポジトリのドキュメント、設定、またはデプロイメント記述子
- 不足しているデプロイメントトポロジーの詳細について質問する
- スキップ デプロイメントイメージまたはシステム記述ファイルが提供されている場合は、代替の質問をする前に、それを情報源として使用してください。アクター、サービス、CI/CD システム、ランタイムノード、実行環境、デプロイされるアーティファクトまたはコンポーネント、外部システム、データストア、キュー、プロトコル、ポート、関係性、インフラストラクチャまたはネットワークの境界など、不足している、または曖昧なデプロイメント情報のみを質問してください。
質問 10:生成した図ファイルをどのように整理しますか?
選択肢:
- 単一のディレクトリ(すべての図を /diagrams フォルダーに配置)
- 種類別に整理(図の種類ごとに個別のフォルダーを作成)
- パッケージ/ドメイン別に整理(関連する図をまとめる)
- 既存のドキュメント構成に統合
質問 11:図のファイル形式はどれを希望しますか?
選択肢:
- PlantUML のソースファイル(.puml)のみ
- PlantUML と Markdown ドキュメント
- PlantUML と生成済み画像の両方(PlantUML によるレンダリングが必要)
- 既存のドキュメントファイルに統合
質問 12:図に説明ドキュメントを含めますか?
選択肢:
- はい。各図について詳しい説明を含める
- はい。簡単な説明と使用上の注意を含める
- いいえ。図のみ
- 説明を既存のドキュメントに統合する
該当するすべての質問への回答が得られたら、選択内容を確認し、次のリファレンスに対応付けてください。
- UML シーケンス図が選択されている場合は、
references/033-architecture-diagrams-uml-sequence.mdを読みます。 - UML クラス図が選択されている場合は、
references/033-architecture-diagrams-uml-class.mdを読みます。 - C4 モデル図が選択されている場合は、
references/033-architecture-diagrams-c4.mdを読みます。 - UML ステートマシン図が選択されている場合は、
references/033-architecture-diagrams-state-machine.mdを読みます。 - UML デプロイメント図が選択されている場合は、
references/033-architecture-diagrams-deployment.mdを読みます。 - ER 図が選択されている場合は、
references/033-architecture-diagrams-er.mdを読みます。 - 境界づけられたコンテキストの図が選択されている場合は、
references/033-architecture-diagrams-bounded-context.mdを読みます。 - すべての図が選択されている場合は、7 種類すべての図に対応するリファレンスを読みます。
- 図の種類について「スキップ」が選択されている場合は、その種類のリファレンスを読みません。
- 選択されていない図の種類のリファレンスは読まないでください。
- 選択したリファレンスを読み、PlantUML 図を生成する
選択した個別のリファレンス、プロジェクトの入力情報、リポジトリのコンテキストのみを使用し、リクエストされた図を PlantUML 構文で作成します。
- 出力を検証し、仕上げる
生成した図の構文が正しいこと、および選択した範囲と整合していることを確認してから、最終成果物を提出します。
すでにインストールされている PlantUML CLI またはリポジトリで承認済みのラッパーを使用して、生成した .puml ファイルを検証し、レンダリングします。PlantUML が利用できない場合は、信頼できるツールが不足していることを報告し、セットアップ方法を案内してください。リモート実行用アーティファクトをダウンロードしたり、実行したりしないでください。
画像を生成せずに PlantUML 構文を検証する:
plantuml -checkonly diagrams
PNG 画像をレンダリングする:
plantuml -tpng diagrams
SVG 画像をレンダリングする:
plantuml -tsvg diagrams
生成した図が含まれるディレクトリまたは .puml ファイルをコマンドに指定してください。検証中に外部コンテナーイメージをプルしたり、実行したりしないでください。
リファレンス
詳しいガイダンス、例、制約については、以下を参照してください。
- references/033-architecture-diagrams-uml-sequence.md
- references/033-architecture-diagrams-uml-class.md
- references/033-architecture-diagrams-c4.md
- references/033-architecture-diagrams-state-machine.md
- references/033-architecture-diagrams-deployment.md
- references/033-architecture-diagrams-er.md
- references/033-architecture-diagrams-bounded-context.md