mcpField
P
plantuml

plantuml

github.com/xenodium開発14861 回インストール14 週間前に更新
リポジトリ

plantuml について

直近のやり取りを PlantUML 図に変換し、背景透過の PNG 画像として出力するスキルです。Emacs の前景色を使って図の文字や要素を整えます。

主な機能

  1. 01会話内容から図の情報を抽出
  2. 02PlantUML 図の生成
  3. 03背景透過 PNG 画像の出力
  4. 04Emacs 前景色の適用

活用シーン

  1. 01会話で扱ったプロセスの可視化
  2. 02文脈内のデータ関係の図示

インストール

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

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

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

詳細

PlantUML で図を作成する

直近のやり取りのコンテキストをもとに、PlantUML で図を作成します。背景が透明な PNG 画像を生成し、インラインで表示されるように Markdown 画像として出力します。

図の作成方法

  1. 現在のコンテキストから、図にできるデータを抽出または導き出します。
  2. このセッションで以前に作成した図から Emacs の前景色がすでにわかっていない場合は、問い合わせます。
    emacsclient --eval '
    (face-foreground (quote default))'
    
    これにより、"#eeffff" のような 16 進数の色が返されます。以降のすべての図でこの色を再利用します。
  3. その色を使って、一時ファイルに PlantUML ファイルを書き込みます。
  4. ファイルに対して PlantUML を実行します。
  5. 結果を Markdown 画像として単独の行に出力します。
    ![description](/tmp/agent-diagram-XXXX.png)
    
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 画像(![description](path))を単独の行に出力します。
  • データに適した図の種類(シーケンス図、クラス図、コンポーネント図、アクティビティ図、状態遷移図など)を選びます。
  • わかりやすくなる場合はタイトルを付けます。
  • 直近のコンテキストに図にできるデータがない場合は、ユーザーにその旨を伝えます。

コメント