All skills
agents365-ai avatar

/plantuml-skill

@72ee04b

Use when user requests diagrams, flowcharts, sequence diagrams, class diagrams, component diagrams, ER diagrams, architecture charts, or visualizations — including generating a diagram from existing source code, or rendering/extracting PlantUML embedded in a Markdown file to images (e.g. preparing docs for Confluence/Notion). Also use proactively when explaining systems with 3+ components, APIs, data flows, or class hierarchies. Generates .puml files and exports to PNG/SVG via Kroki API (no local install required).

Use this Skill: https://skilld.dev/gh/agents365-ai/365-skills/plantuml-skill

This session only. Nothing lands on disk.

referenceskroki-troubleshooting.md

≈1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Kroki Troubleshooting & Safe Subset

Deep reference for the Step 5 self-check loop. Read this when a render returns 400 (or a broken file) and fixing the single flagged line did not resolve it.

Kroki renders PlantUML server-side with a recent PlantUML + Graphviz, so you do not need anything installed locally beyond curl. Two hard limits to remember:

  • No network fetches. Kroki will not resolve a remote !includeurl https://…. Use the bundled !include <C4/…> standard-library form instead.
  • The output file is the error channel. On a syntax error Kroki returns HTTP 400 and writes the reason into the file you asked it to -o. Always cat that file — it names the offending line.

What renders reliably on Kroki (safe subset)

These diagram types and features are dependable through the public Kroki API:

  • Sequence — including alt / opt / loop / par fragments and activate / deactivate
  • Component / package, with modest skinparam styling
  • Class, object, deployment, use case
  • Activity (the modern start … stop syntax)
  • State machines
  • ER / entity
  • C4 via the bundled !include <C4/C4_Context|C4_Container|C4_Component>
  • Mind map, Gantt

Treat exotic shapes, heavy skinparam blocks, embedded sprites/icons, and custom fonts as optional — they are the first things to fail and the first things to drop when degrading (below).

Failure-degradation ladder

If re-rendering after a targeted line fix still returns 400 (or the layout is unusable), simplify in this order, re-running Step 4 after each step. Stop as soon as it renders:

  1. Remove exotic shapes — fall back to rectangle / component / node.
  2. Strip styling — delete skinparam blocks and !theme; render plain first.
  3. Remove notes — note left/right/over lines are a common parse trap.
  4. Simplify labels — drop special characters; wrap any remaining label in "…".
  5. Reduce edges — cut redundant relationships; a smaller graph parses and lays out more reliably.
  6. Switch engine — if a feature simply isn't supported, render the core idea in a simpler diagram type rather than forcing the current one.

Re-add the dropped styling only once the structure renders cleanly.

Common syntax errors by diagram type

General (any diagram)

  • Missing @startuml / @enduml (or @startmindmap / @startgantt) wrapper.
  • Smart quotes / non-breaking spaces / tabs pasted from a doc or chat — retype the line.
  • Unbalanced { } in package / rectangle / class bodies.

Sequence

  • alt / opt / loop / par / group each need a matching end.
  • Reversed arrow: B <- A sends to B's left; use A -> B for left-to-right intent.
  • Participants render in first-mention order — declare participant at the top to fix left-to-right order.

Class

  • Relationship glyphs: <|-- inheritance, *-- composition, o-- aggregation, ..|> realization. Mixing the dashes/heads silently changes meaning.
  • Multiplicities must be quoted: User "1" --> "*" Order.

Activity

  • Do not mix the legacy (*) syntax with the modern start / :action; / stop syntax in one diagram.
  • Every if (…) then needs endif; every repeat needs repeat while.

State

  • Use [*] for the initial/final pseudo-state; [ ] or () will fail.
  • Composite states need state Name { … } braces, not indentation.

ER / entity

  • Crow's-foot cardinality goes between the entities: user ||--o{ order.
  • Attribute block separator is -- on its own line inside the entity { } body.

Component

  • Overlap/crowding is a layout symptom, not an error — add together { } or a direction hint (left to right direction) before assuming the source is wrong.

C4

  • 400 with "cannot include" → you used a remote !includeurl; switch to the bundled !include <C4/C4_Context>.
  • Macro arity matters: System(alias, "Label", "Description") — a missing argument throws.

Source: SKILL.md on GitHub

No alerts16d3 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    This skill facilitates the generation and rendering of PlantUML diagrams using the Kroki API or local tools. It is transparent about data transmission to external services and provides instructions for local setup. The primary security considerations involve the ingestion of untrusted data from source files and the use of administrative commands for dependency installation.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

Signed by skilld at 72ee04b. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 11 hours ago.

Activeupdated 3 weeks ago
homepage
https://github.com/Agents365-ai/365-skills
platforms
[
  "macos",
  "linux",
  "windows"
]
Other metadata
compatibility
Requires curl on PATH (pre-installed on macOS/Linux/Windows Git Bash). Default renderer is the public Kroki API at https://kroki.io; can also point to a local Kroki Docker instance, or fall back to a local PlantUML jar + Java + Graphviz.
metadata
{
  "openclaw": {
    "requires": {
      "bins": [
        "curl"
      ]
    },
    "emoji": "🧩",
    "os": [
      "darwin",
      "linux",
      "win32"
    ]
  },
  "hermes": {
    "tags": [
      "plantuml",
      "diagram",
      "flowchart",
      "sequence",
      "class",
      "uml",
      "architecture",
      "kroki"
    ],
    "category": "design",
    "requires_tools": [
      "curl"
    ],
    "related_skills": [
      "drawio",
      "mermaid",
      "excalidraw",
      "tldraw"
    ]
  },
  "author": "Agents365-ai",
  "version": "1.5.0"
}

README badge

README badge for agents365-ai/365-skills/plantuml-skill