plantuml について
直近のやり取りを PlantUML 図に変換し、背景透過の PNG 画像として出力するスキルです。Emacs の前景色を使って図の文字や要素を整えます。
主な機能
- 01会話内容から図の情報を抽出
- 02PlantUML 図の生成
- 03背景透過 PNG 画像の出力
- 04Emacs 前景色の適用
活用シーン
- 01会話で扱ったプロセスの可視化
- 02文脈内のデータ関係の図示
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ xenodium/ emacs-skills --skill plantumlインストール後、Claude Code で/plantumlを入力して読み込まれたか確認します。
詳細
PlantUML で図を作成する
直近のやり取りのコンテキストをもとに、PlantUML で図を作成します。背景が透明な PNG 画像を生成し、インラインで表示されるように Markdown 画像として出力します。
図の作成方法
- 現在のコンテキストから、図にできるデータを抽出または導き出します。
- このセッションで以前に作成した図から Emacs の前景色がすでにわかっていない場合は、問い合わせます。
これにより、emacsclient --eval ' (face-foreground (quote default))'"#eeffff"のような 16 進数の色が返されます。以降のすべての図でこの色を再利用します。 - その色を使って、一時ファイルに PlantUML ファイルを書き込みます。
- ファイルに対して PlantUML を実行します。
- 結果を Markdown 画像として単独の行に出力します。

plantuml -tpng /tmp/agent-diagram-XXXX.puml
PlantUML テンプレート
@startuml
skinparam backgroundColor transparent
skinparam shadowing true
skinparam roundcorner 10
skinparam defaultFontName "Helvetica"
skinparam defaultFontColor #eeffff
' Set foreground color on all element types
skinparam titleFontColor #eeffff
skinparam sequenceLifeLineBorderColor #eeffff
skinparam sequenceArrowColor #eeffff
skinparam sequenceGroupHeaderFontColor #eeffff
skinparam sequenceGroupBorderColor #eeffff
skinparam sequenceDividerFontColor #eeffff
skinparam sequenceDividerBorderColor #eeffff
skinparam actorBorderColor #eeffff
skinparam actorFontColor #eeffff
skinparam participantFontColor #eeffff
skinparam participantBorderColor #eeffff
skinparam collectionsFontColor #eeffff
skinparam collectionsBorderColor #eeffff
skinparam noteFontColor #eeffff
skinparam noteBorderColor #eeffff
skinparam arrowFontColor #eeffff
skinparam classFontColor #eeffff
skinparam classBorderColor #eeffff
skinparam classAttributeFontColor #eeffff
skinparam packageFontColor #eeffff
skinparam packageBorderColor #eeffff
skinparam componentFontColor #eeffff
skinparam componentBorderColor #eeffff
skinparam interfaceFontColor #eeffff
skinparam interfaceBorderColor #eeffff
' ... diagram content ...
@enduml
ルール
- セッションごとに Emacs の前景色を 1 回問い合わせ、その後のすべての図で再利用します。色がすでにわかっている場合は、再度問い合わせないでください。
- 背景を透明にするため、必ず
skinparam backgroundColor transparentを使用します。 - ファイル名には必ずタイムスタンプを使用します(例:
/tmp/agent-diagram-$(date +%s).png)。説明的な名前は使用しないでください。 - 問い合わせた前景色を
defaultFontColorと、枠線、矢印、テキストに関係するすべてのskinparamに設定し、ユーザーの Emacs の背景色で図が読みやすくなるようにします。 - PlantUML の実行が成功したら、Markdown 画像(
)を単独の行に出力します。 - データに適した図の種類(シーケンス図、クラス図、コンポーネント図、アクティビティ図、状態遷移図など)を選びます。
- わかりやすくなる場合はタイトルを付けます。
- 直近のコンテキストに図にできるデータがない場合は、ユーザーにその旨を伝えます。
コメント
Markdown 対応