/SKILL.md
Generate PlantUML diagrams from text descriptions and convert to PNG/SVG. Supports all 19 UML and non-UML diagram types, markdown extraction, and code-to-diagram conversion.
npx skillsauth add magicjie/plantuml-skill plantumlInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill enables PlantUML diagram creation and conversion. Use for: diagram generation from descriptions, code-to-diagram conversion, .puml file conversion, markdown processing, syntax validation, and Unicode symbol enrichment.
IF user mentions:
"create [diagram type]" OR "generate diagram" OR "draw diagram"
→ Route to: Resilient Workflow (PRIMARY) - references/workflows/resilient-execution-guide.md
→ Script: python scripts/resilient_processor.py file.md [--format png]
→ Backup Route: Diagram Creation Workflow (Step 2) if script unavailable
"convert .puml" OR "convert file" OR ".puml to image"
→ Route to script: python scripts/convert_puml.py file.puml [--format png|svg]
"process markdown" OR "extract diagrams" OR "markdown with puml"
→ Route to script: python scripts/process_markdown_puml.py file.md [--format png|svg] [--validate]
"upload to Confluence" OR "upload to Notion" AND markdown contains PlantUML diagrams
→ ⚠️ CRITICAL: Route to script: python scripts/process_markdown_puml.py file.md [--format png|svg] FIRST
→ Action: Convert diagrams to images before upload
→ Reason: Confluence/Notion do not render PlantUML code blocks natively
"from code" OR "analyze [Spring Boot|FastAPI|ETL|Node.js|React]"
→ Route to: examples/[framework]/
"syntax error" OR "fix diagram" OR "error message" OR "not working"
→ Route to: references/troubleshooting/toc.md
"style" OR "theme" OR "colors" OR "appearance"
→ Route to: references/styling_guide.md
"symbols" OR "icons" OR "emojis" OR "unicode"
→ Route to: references/unicode_symbols.md
IF user describes:
Interactions/messages over time: "API call", "message", "participant", "sequence"
→ Load references/sequence_diagrams.md
Class structure: "class", "inheritance", "OOP", "extends", "implements"
→ Load references/class_diagrams.md
Database schema: "database", "entity", "table", "schema", "ER diagram"
→ Load references/er_diagrams.md
Workflow/process: "workflow", "process", "activity", "decision", "fork/join"
→ Load references/activity_diagrams.md
State machine: "state", "transition", "state machine"
→ Load references/state_diagrams.md
Project timeline: "gantt", "timeline", "schedule", "milestones"
→ Load references/gantt_diagrams.md
System architecture: "component", "module", "architecture"
→ Load references/component_diagrams.md
Deployment: "deployment", "server", "infrastructure", "cloud"
→ Load references/deployment_diagrams.md
Use cases: "actor", "use case", "features"
→ Load references/use_case_diagrams.md
Ideas/brainstorm: "mindmap", "brainstorm", "ideas"
→ Load references/mindmap_diagrams.md
IF diagram type unclear:
→ Load references/toc.md (156 lines, ~780 tokens)
→ Present options to user
→ Route to selected workflow
Load only when explicitly needed:
Syntax reference: Load references/[diagram_type]_diagrams.md ONLY IF:
Styling: Load references/styling_guide.md ONLY IF:
Unicode symbols: Load references/unicode_symbols.md ONLY IF:
Examples: Load examples/[framework]/ ONLY IF:
Troubleshooting: Load troubleshooting guides ONLY IF:
references/troubleshooting/toc.md (~400 tokens) - Error decision treereferences/troubleshooting/[category]_guide.md (~500-1,000 tokens)| Resource Type | File Pattern | Token Cost | Load When |
|--------------|--------------|------------|-----------|
| Workflow guide | references/[type]_diagrams.md | ~1,500 | Intent identified |
| Syntax reference | references/[type]_diagrams.md | 1,500-3,000 | Complex features needed |
| Styling guide | references/styling_guide.md | ~1,000 | User requests styling |
| Examples | examples/[framework]/ | ~750 | User requests examples |
| Troubleshooting (TOC) | references/troubleshooting/toc.md | ~400 | Error decision tree |
| Troubleshooting (guide) | references/troubleshooting/[category]_guide.md | ~500-1,000 | Specific error type |
| Unicode symbols | references/unicode_symbols.md | ~1,250 | Code-to-diagram workflow |
| Code examples | examples/[framework]/ | ~500 | Framework analysis |
Simple Request (user familiar with syntax):
Standard Request (need syntax reference):
Complex Request (syntax + styling + examples):
Advanced Request (all resources):
1. Workflow Guides
references/[type]_diagrams.md2. Syntax References
references/[diagram_type]_diagrams.md3. Styling Resources
references/styling_guide.md4. Examples
examples/[framework]/5. Code-to-Diagram Patterns
examples/[framework]/6. Troubleshooting
references/troubleshooting/toc.md → references/troubleshooting/[category]_guide.md7. Unicode Symbols
references/unicode_symbols.mdUse Read tool with specific file path:
Read tool: [skill-root]/[path]
NEVER:
Before creating diagrams, verify setup:
python scripts/check_setup.py
Checks: Java, Graphviz, plantuml.jar
If missing components → Load references/plantuml_reference.md (Installation section)
Trigger: User requests new diagram
Route: Classify type → Load references/[type]_diagrams.md
Supporting: Syntax reference (if needed), styling (if requested)
Trigger: Convert .puml file(s) to images
Route: Direct script command
Script: python scripts/convert_puml.py file.puml [--format png|svg]
Trigger: Markdown with PlantUML blocks or linked .puml files
⚠️ CRITICAL Trigger: User uploading markdown to Confluence or Notion with PlantUML diagrams
Route: Direct script command
Script: python scripts/process_markdown_puml.py file.md [--format png]
Output: file_with_images.md + images/ directory
Note: Confluence/Notion require diagram conversion to images before upload
Trigger: Analyze codebase and generate diagrams
Route: examples/[framework]/
Supporting: Framework examples from examples/[framework]/
Trigger: Syntax error or generation failure Route:
references/troubleshooting/toc.md - Error decision treereferences/troubleshooting/[category]_guide.md
Resources: 12 guides covering 215+ common errors (installation, syntax, arrows, styling, diagrams, performance)Trigger: User wants to customize appearance
Route: references/styling_guide.md
Supporting: references/styling_guide.md
Default Visual Policy (sequence-first readability):
!theme plain as neutral baselinebox "..." #Color<style> only for focused readability improvements, not full recoloringTrigger: ALL diagram creation requests (recommended default)
Route: references/workflows/resilient-execution-guide.md
Script: python scripts/resilient_processor.py file.md [--format png|svg]
Steps:
./diagrams/<md>_<num>_<type>_<title>.pumlUniversal Structure:
@start[type]
' Your content
@end[type]
Common Arrows: -> solid, --> dashed, ..> dotted
Scripts:
python scripts/resilient_processor.py file.md [--format png]python scripts/convert_puml.py file.puml [--format svg]python scripts/process_markdown_puml.py doc.md [--validate]python scripts/check_setup.pyFor detailed syntax → Load references/[type]_diagrams.md
Sequence baseline with grouped layers (recommended):
@startuml
!theme plain
box "Client" #LightCyan
actor User
end box
box "Application" #LightYellow
participant App
participant API
end box
User -> App : Login
App -> API : Authenticate
API --> App : Token
App --> User : Success
@enduml
python scripts/check_setup.pyreferences/plantuml_reference.md (Installation section)references/troubleshooting/toc.md (~400 tokens)references/troubleshooting/[category]_guide.md (~500-1,000 tokens)Comprehensive troubleshooting coverage (215+ errors in 12 guides):
skinparam errors appear, migrate to modern <style> blocks.references/toc.md (~780 tokens)references/plantuml_reference.md (Installation section)Invoke other skills when:
general-purpose agentdocs-sync-editor after diagram creationgrammar-style-editorcode-explainer before code-to-diagramQuick routing keywords:
For all 19 types → Load references/toc.md
Current session tracking:
Budget escalation thresholds:
15,000 tokens: Minimize loading ❌
Core Syntax (load when needed):
references/toc.md - All diagram types navigationreferences/[type]_diagrams.md - Specific diagram syntaxreferences/common_format.md - Universal elementsreferences/styling_guide.md - CSS-like stylingreferences/plantuml_reference.md - CLI and troubleshootingTroubleshooting Resources (⚠️ load when errors occur):
references/troubleshooting/toc.md - Error decision tree and navigation hubreferences/troubleshooting/*.md - 12 focused guides (215+ common errors)
Other Resources (load when needed):
references/common_syntax_errors.md - Legacy comprehensive guidereferences/unicode_symbols.md - Symbol enrichmentexamples/[framework]/ - Code-to-diagram patternsDecision Tree Process:
Never:
This PDA architecture:
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.