home / skills / melodic-software / claude-code-plugins / plantuml-syntax
npx playbooks add skill melodic-software/claude-code-plugins --skill plantuml-syntaxReview the files below or copy the command above to add this skill to your agents.
---
name: plantuml-syntax
description: Authoritative reference for PlantUML diagram syntax. Provides UML and non-UML diagram types, syntax patterns, examples, and setup guidance for generating accurate PlantUML diagrams.
allowed-tools: Read, Glob, Grep
---
# PlantUML Syntax Reference
## Overview
PlantUML is a Java-based tool that creates diagrams from text descriptions. It supports comprehensive UML diagrams and many non-UML diagram types.
**Key advantages:**
- Most comprehensive diagram support (15+ types)
- Mature C4 model integration with icons/sprites
- Extensive customization options
- Battle-tested (since 2009)
**Requirements:**
- Java Runtime Environment (JRE)
- GraphViz (for some diagram types)
- Or use Docker: `docker run -p 8080:8080 plantuml/plantuml-server`
---
## Diagram Types Quick Reference
### UML Diagrams
| Type | Keywords | Best For |
| --- | --- | --- |
| Sequence | `@startuml` | Interactions, API flows, protocols |
| Use Case | `@startuml` | Requirements, user stories |
| Class | `@startuml` | OOP design, domain models |
| Activity | `@startuml` | Workflows, processes |
| Component | `@startuml` | System structure |
| Deployment | `@startuml` | Infrastructure, deployment |
| State | `@startuml` | State machines |
### Non-UML Diagrams
| Type | Keywords | Best For |
| --- | --- | --- |
| JSON | `@startjson` | JSON structure visualization |
| YAML | `@startyaml` | YAML structure visualization |
| Wireframe | `@startsalt` | UI mockups |
| Gantt | `@startgantt` | Project timelines |
| MindMap | `@startmindmap` | Hierarchical ideas |
| WBS | `@startwbs` | Work breakdown |
| ER | `@startuml` | Database schemas |
| C4 | `@startuml` with C4 include | Software architecture |
---
## Basic Syntax
All PlantUML diagrams are wrapped in start/end tags:
```plantuml
@startuml
' Your diagram code here
@enduml
```
**Comments:**
- Single line: `' This is a comment`
- Block: `/' This is a block comment '/`
**Title and captions:**
```plantuml
@startuml
title My Diagram Title
caption This is a caption
header Page Header
footer Page Footer
' Diagram content
@enduml
```
---
## Quick Reference Card
### Sequence
```plantuml
@startuml
participant A
participant B
A -> B: Message
A <-- B: Response
@enduml
```
### Class
```plantuml
@startuml
class Name {
- private
+ public
+ method()
}
A <|-- B : extends
A *-- B : contains
@enduml
```
### Activity
```plantuml
@startuml
start
:Action;
if (condition?) then (yes)
:True path;
else (no)
:False path;
endif
stop
@enduml
```
### State
```plantuml
@startuml
[*] --> State1
State1 --> State2 : event
State2 --> [*]
@enduml
```
### Component
```plantuml
@startuml
[Component1] --> [Component2]
database DB
Component2 --> DB
@enduml
```
---
## References
For detailed syntax and complete examples, see:
| Reference | Content | When to Load |
| --- | --- | --- |
| [sequence.md](references/sequence.md) | Participants, arrows, activation, groups, notes | Creating sequence diagrams |
| [class.md](references/class.md) | Classes, visibility, relationships, cardinality | Creating class diagrams |
| [activity.md](references/activity.md) | Conditions, swimlanes, fork/join | Creating activity diagrams |
| [state-component.md](references/state-component.md) | State machines, components, deployment | Creating state/component diagrams |
| [c4.md](references/c4.md) | C4 context, container, component diagrams | Creating C4 architecture diagrams |
| [special-diagrams.md](references/special-diagrams.md) | ER, JSON, MindMap, Gantt | Creating non-UML diagrams |
| [styling-setup.md](references/styling-setup.md) | Skinparams, themes, installation | Customizing diagrams, setting up PlantUML |
---
## File Extensions
| Extension | Description |
| --- | --- |
| `.puml` | Standard PlantUML file |
| `.plantuml` | Alternative extension |
| `.pu` | Short extension |
| `.iuml` | Include file |
---
## Test Scenarios
### Scenario 1: Creating a sequence diagram
**Query:** "Create a PlantUML sequence diagram for user authentication"
**Expected:** Skill activates, provides sequence syntax with participants, arrows, and alt/else blocks
### Scenario 2: Creating a class diagram
**Query:** "Generate a PlantUML class diagram for an e-commerce domain"
**Expected:** Skill activates, provides class syntax with relationships and cardinality
### Scenario 3: Creating a C4 diagram
**Query:** "Create a C4 container diagram in PlantUML"
**Expected:** Skill activates, directs to c4.md reference for includes and syntax
---
**Last Updated:** 2025-12-28
**PlantUML Version:** 1.2024.6
## Version History
- **v1.1.0** (2025-12-28): Refactored to progressive disclosure - extracted content to references/
- **v1.0.0** (2025-12-26): Initial release