Presentation Diagrams
Child of presentation-builder. Generates architecture diagrams, flowcharts, sequence diagrams, and system visuals for embedding into presentation slides.
Sibling Skills
- presentation-narrative — Outline generation, storytelling structure, slide sequencing
- presentation-datavis — Charts, data visualization, data-driven slides
- presentation-styling — Templates, branding, colour palettes, typography
- presentation-renderer — Final assembly, PPTX/HTML export, format conversion
When NOT to Use This Skill
| Request |
Use Instead |
| Standalone image generation (not for slides) |
vertex-banana |
| Data charts, bar graphs, pie charts, line charts |
presentation-datavis |
| General diagram not destined for a presentation |
Use Mermaid, Graphviz, or PlantUML directly |
| Styling, branding, or layout changes |
presentation-styling |
| Full presentation build from scratch |
presentation-builder (parent will route here when needed) |
1. Tool Selection
Select the rendering tool based on the diagram's purpose. Priority order:
- mermaid-cli (mmdc) — Deterministic flowcharts, sequence diagrams, ER diagrams, state diagrams, class diagrams, Gantt charts
- graphviz (dot) — Architecture/topology diagrams, network diagrams, complex directed/undirected graphs
- plantuml — UML-specific diagrams (activity, component, deployment) when Mermaid lacks coverage
- vertex-banana (AI image gen) — Cover art, illustrative visuals, icons, conceptual images ONLY
- ASCII art — Always works, zero dependencies; use as last resort or for quick inline previews
Critical Rules
- Deterministic renderers (mermaid, graphviz, plantuml) for: architecture diagrams, flowcharts, sequence diagrams, ER diagrams, class diagrams, state diagrams, network diagrams — anything with precise labels and connections.
- AI image generation (vertex-banana) ONLY for: cover art, illustrative visuals, icons, conceptual images that do not require precise text labels.
- NEVER use AI image generation for architecture diagrams, flowcharts, sequence diagrams, or anything requiring precise text labels. Deterministic renderers only.
2. Diagram Type Routing
| Diagram Need |
Best Tool |
Syntax / Entry Point |
| Flowchart |
mermaid |
graph TD / graph LR |
| Sequence diagram |
mermaid |
sequenceDiagram |
| Class diagram |
mermaid |
classDiagram |
| ER diagram |
mermaid |
erDiagram |
| State diagram |
mermaid |
stateDiagram-v2 |
| Gantt chart |
mermaid |
gantt |
| Architecture / topology |
graphviz |
digraph { } |
| Network diagram |
graphviz |
graph { } |
| C4 model |
mermaid (C4 plugin) or graphviz |
C4Context / C4Container |
| UML specific |
plantuml |
@startuml |
| Creative / illustrative |
vertex-banana |
prompt-based |
When the capability map (from presentation-builder) shows a tool is unavailable, fall back to the next available tool in the priority list. If no renderer is available, generate ASCII art.
3. Auto-Generation from Project Context
When a project context exists, automatically generate diagrams from available artifacts:
| Source Artifact |
Generated Diagram |
PROJECT.md |
System architecture overview diagram |
docs/components/*/COMPONENT.md |
Component interaction / dependency diagram |
| Problem statement or proposal doc |
Problem-to-solution flow diagram |
| Tech stack / dependency list |
Technology stack layer diagram |
| API routes or endpoint definitions |
Sequence diagram for key API flows |
Process
- Read the source artifact(s).
- Extract entities, relationships, and data flows.
- Select the appropriate diagram type from the routing table above.
- Generate the diagram source file (.mmd, .dot, or .puml).
- Render to the output format (.svg preferred, .png fallback).
- Return file paths for
presentation-renderer to embed.
4. Generation Patterns
Mermaid
# Write the diagram source
cat > .presentations/output/assets/diagram-name.mmd << 'EOF'
graph TD
A[Service A] --> B[Service B]
B --> C[(Database)]
EOF
# Render to SVG (dark theme for dark slide backgrounds)
npx @mermaid-js/mermaid-cli -i .presentations/output/assets/diagram-name.mmd \
-o .presentations/output/assets/diagram-name.svg \
-t dark
# Or default theme for light slide backgrounds
npx @mermaid-js/mermaid-cli -i .presentations/output/assets/diagram-name.mmd \
-o .presentations/output/assets/diagram-name.svg \
-t default
Graphviz
# Write the diagram source
cat > .presentations/output/assets/diagram-name.dot << 'EOF'
digraph architecture {
rankdir=LR;
node [shape=box, style=filled, fillcolor="#e8e8e8", fontsize=14];
ServiceA -> ServiceB [label="REST"];
ServiceB -> Database [label="SQL"];
Database [shape=cylinder];
}
EOF
# Render to SVG
dot -Tsvg .presentations/output/assets/diagram-name.dot > .presentations/output/assets/diagram-name.svg
PlantUML
# Write the diagram source
cat > .presentations/output/assets/diagram-name.puml << 'EOF'
@startuml
component "Service A" as A
component "Service B" as B
database "Database" as DB
A --> B : REST
B --> DB : SQL
@enduml
EOF
# Render (requires plantuml.jar or plantuml CLI)
plantuml -tsvg .presentations/output/assets/diagram-name.puml
AI Image Generation (Creative Visuals Only)
Invoke the vertex-banana skill for illustrative visuals, cover art, or conceptual images. Never for architecture or labeled diagrams.
Output Location
All outputs are saved to:
<project>/.presentations/output/assets/
Both the source file (.mmd, .dot, .puml) and the rendered output (.svg, .png) are saved side by side.
5. Diagram Styling
Palette Matching
- Query
presentation-styling for the active colour palette before rendering.
- Apply palette colours to node fills, borders, and connection lines.
- If no palette is set, use a clean neutral palette (greys, blues, whites).
Shape Conventions
| Entity Type |
Shape |
| Service / application |
Rectangle |
| Database / data store |
Cylinder |
| External system / cloud |
Cloud |
| User / actor |
Stick figure or rounded rectangle |
| Queue / message broker |
Parallelogram or trapezoid |
| Decision point |
Diamond |
| Process / action |
Rounded rectangle |
Readability Rules
- Labels must be readable at slide size: 12pt+ equivalent font size in rendered output.
- Clean, minimal style — no decorative borders, shadows, or gradients.
- Use whitespace and grouping (subgraphs, clusters) to separate logical domains.
- Connection labels should be concise (1-3 words): protocol, data type, or action.
- Limit nodes per diagram to ~15. Split into multiple diagrams if more complex.
Theme Selection
- Use
-t dark (Mermaid) or dark-background colours when slides use a dark theme.
- Use
-t default (Mermaid) or light-background colours when slides use a light theme.
- Match the theme to the presentation palette from
presentation-styling.
6. Hard Rules
- Never use AI image generation for architecture diagrams. Deterministic renderers only for anything with labels, connections, or structural meaning.
- Always label all nodes and connections. Unlabeled nodes or unnamed arrows are not permitted.
- Diagrams must be self-explanatory without speaker notes. A viewer should understand the diagram without additional verbal context.
- Save both source and rendered output. Always keep the source file (.mmd, .dot, .puml) alongside the rendered file (.svg, .png) so diagrams can be edited later.
- Return file paths for
presentation-renderer to embed. Every generated diagram must report its output path so the renderer can include it in the final deck.
- One concept per diagram. Do not overload a single diagram. Split complex systems into multiple focused diagrams.
- Verify rendering succeeded. After running the render command, confirm the output file exists and has non-zero size before reporting success.
Anti-Patterns
| Anti-Pattern |
Why It Fails |
Correct Approach |
| Including every system component in one architecture diagram |
Visual overload; audience cannot find the relevant parts; key message is lost in complexity |
Show only the components relevant to the current discussion; use progressive disclosure across slides |
| Using inconsistent shapes and colors for the same concept |
Audiences learn a visual language from the first slide; changing it mid-deck causes confusion |
Define a visual key: boxes = services, cylinders = databases, arrows = data flow; maintain consistently |
| No legend or labels on technical diagrams |
Only the author knows what the shapes mean; diagram becomes meaningless in two weeks |
Always include a legend for shape types; label every component and connection |
| Using screenshots of code instead of sequence diagrams |
Code screenshots are unreadable on projected slides; non-developers cannot follow |
Use sequence diagrams for flow, activity diagrams for processes; reference code in handouts, not slides |
| Cramming too much into a single flowchart |
More than 10-12 nodes on a slide becomes unreadable; audience loses the thread |
Split complex flows across multiple slides with clear "you are here" indicators |
1---2name: presentation-diagrams3description: Use when a presentation needs architecture diagrams, flowcharts, sequence diagrams, or system visuals — tagged [DIAGRAM] slides from narrative, "add a visual of how X connects to Y", or any system overview visualization for slides. Part of the presentation-* skill family.4---56# Presentation Diagrams78Child of `presentation-builder`. Generates architecture diagrams, flowcharts, sequence diagrams, and system visuals for embedding into presentation slides.910## Sibling Skills1112- **presentation-narrative** — Outline generation, storytelling structure, slide sequencing13- **presentation-datavis** — Charts, data visualization, data-driven slides14- **presentation-styling** — Templates, branding, colour palettes, typography15- **presentation-renderer** — Final assembly, PPTX/HTML export, format conversion1617---1819## When NOT to Use This Skill2021| Request | Use Instead |22|---|---|23| Standalone image generation (not for slides) | `vertex-banana` |24| Data charts, bar graphs, pie charts, line charts | `presentation-datavis` |25| General diagram not destined for a presentation | Use Mermaid, Graphviz, or PlantUML directly |26| Styling, branding, or layout changes | `presentation-styling` |27| Full presentation build from scratch | `presentation-builder` (parent will route here when needed) |2829---3031## 1. Tool Selection3233Select the rendering tool based on the diagram's purpose. Priority order:34351. **mermaid-cli (mmdc)** — Deterministic flowcharts, sequence diagrams, ER diagrams, state diagrams, class diagrams, Gantt charts362. **graphviz (dot)** — Architecture/topology diagrams, network diagrams, complex directed/undirected graphs373. **plantuml** — UML-specific diagrams (activity, component, deployment) when Mermaid lacks coverage384. **vertex-banana (AI image gen)** — Cover art, illustrative visuals, icons, conceptual images ONLY395. **ASCII art** — Always works, zero dependencies; use as last resort or for quick inline previews4041### Critical Rules4243- **Deterministic renderers (mermaid, graphviz, plantuml)** for: architecture diagrams, flowcharts, sequence diagrams, ER diagrams, class diagrams, state diagrams, network diagrams — anything with precise labels and connections.44- **AI image generation (vertex-banana)** ONLY for: cover art, illustrative visuals, icons, conceptual images that do not require precise text labels.45- **NEVER** use AI image generation for architecture diagrams, flowcharts, sequence diagrams, or anything requiring precise text labels. Deterministic renderers only.4647---4849## 2. Diagram Type Routing5051| Diagram Need | Best Tool | Syntax / Entry Point |52|---|---|---|53| Flowchart | mermaid | `graph TD` / `graph LR` |54| Sequence diagram | mermaid | `sequenceDiagram` |55| Class diagram | mermaid | `classDiagram` |56| ER diagram | mermaid | `erDiagram` |57| State diagram | mermaid | `stateDiagram-v2` |58| Gantt chart | mermaid | `gantt` |59| Architecture / topology | graphviz | `digraph { }` |60| Network diagram | graphviz | `graph { }` |61| C4 model | mermaid (C4 plugin) or graphviz | `C4Context` / `C4Container` |62| UML specific | plantuml | `@startuml` |63| Creative / illustrative | vertex-banana | prompt-based |6465When the capability map (from `presentation-builder`) shows a tool is unavailable, fall back to the next available tool in the priority list. If no renderer is available, generate ASCII art.6667---6869## 3. Auto-Generation from Project Context7071When a project context exists, automatically generate diagrams from available artifacts:7273| Source Artifact | Generated Diagram |74|---|---|75| `PROJECT.md` | System architecture overview diagram |76| `docs/components/*/COMPONENT.md` | Component interaction / dependency diagram |77| Problem statement or proposal doc | Problem-to-solution flow diagram |78| Tech stack / dependency list | Technology stack layer diagram |79| API routes or endpoint definitions | Sequence diagram for key API flows |8081### Process82831. Read the source artifact(s).842. Extract entities, relationships, and data flows.853. Select the appropriate diagram type from the routing table above.864. Generate the diagram source file (.mmd, .dot, or .puml).875. Render to the output format (.svg preferred, .png fallback).886. Return file paths for `presentation-renderer` to embed.8990---9192## 4. Generation Patterns9394### Mermaid9596```bash97# Write the diagram source98cat > .presentations/output/assets/diagram-name.mmd << 'EOF'99graph TD100 A[Service A] --> B[Service B]101 B --> C[(Database)]102EOF103104# Render to SVG (dark theme for dark slide backgrounds)105npx @mermaid-js/mermaid-cli -i .presentations/output/assets/diagram-name.mmd \106 -o .presentations/output/assets/diagram-name.svg \107 -t dark108109# Or default theme for light slide backgrounds110npx @mermaid-js/mermaid-cli -i .presentations/output/assets/diagram-name.mmd \111 -o .presentations/output/assets/diagram-name.svg \112 -t default113```114115### Graphviz116117```bash118# Write the diagram source119cat > .presentations/output/assets/diagram-name.dot << 'EOF'120digraph architecture {121 rankdir=LR;122 node [shape=box, style=filled, fillcolor="#e8e8e8", fontsize=14];123124 ServiceA -> ServiceB [label="REST"];125 ServiceB -> Database [label="SQL"];126 Database [shape=cylinder];127}128EOF129130# Render to SVG131dot -Tsvg .presentations/output/assets/diagram-name.dot > .presentations/output/assets/diagram-name.svg132```133134### PlantUML135136```bash137# Write the diagram source138cat > .presentations/output/assets/diagram-name.puml << 'EOF'139@startuml140component "Service A" as A141component "Service B" as B142database "Database" as DB143144A --> B : REST145B --> DB : SQL146@enduml147EOF148149# Render (requires plantuml.jar or plantuml CLI)150plantuml -tsvg .presentations/output/assets/diagram-name.puml151```152153### AI Image Generation (Creative Visuals Only)154155Invoke the `vertex-banana` skill for illustrative visuals, cover art, or conceptual images. Never for architecture or labeled diagrams.156157### Output Location158159All outputs are saved to:160161```162<project>/.presentations/output/assets/163```164165Both the source file (.mmd, .dot, .puml) and the rendered output (.svg, .png) are saved side by side.166167---168169## 5. Diagram Styling170171### Palette Matching172173- Query `presentation-styling` for the active colour palette before rendering.174- Apply palette colours to node fills, borders, and connection lines.175- If no palette is set, use a clean neutral palette (greys, blues, whites).176177### Shape Conventions178179| Entity Type | Shape |180|---|---|181| Service / application | Rectangle |182| Database / data store | Cylinder |183| External system / cloud | Cloud |184| User / actor | Stick figure or rounded rectangle |185| Queue / message broker | Parallelogram or trapezoid |186| Decision point | Diamond |187| Process / action | Rounded rectangle |188189### Readability Rules190191- Labels must be readable at slide size: **12pt+ equivalent** font size in rendered output.192- Clean, minimal style — no decorative borders, shadows, or gradients.193- Use whitespace and grouping (subgraphs, clusters) to separate logical domains.194- Connection labels should be concise (1-3 words): protocol, data type, or action.195- Limit nodes per diagram to ~15. Split into multiple diagrams if more complex.196197### Theme Selection198199- Use `-t dark` (Mermaid) or dark-background colours when slides use a dark theme.200- Use `-t default` (Mermaid) or light-background colours when slides use a light theme.201- Match the theme to the presentation palette from `presentation-styling`.202203---204205## 6. Hard Rules2062071. **Never use AI image generation for architecture diagrams.** Deterministic renderers only for anything with labels, connections, or structural meaning.2082. **Always label all nodes and connections.** Unlabeled nodes or unnamed arrows are not permitted.2093. **Diagrams must be self-explanatory without speaker notes.** A viewer should understand the diagram without additional verbal context.2104. **Save both source and rendered output.** Always keep the source file (.mmd, .dot, .puml) alongside the rendered file (.svg, .png) so diagrams can be edited later.2115. **Return file paths for `presentation-renderer` to embed.** Every generated diagram must report its output path so the renderer can include it in the final deck.2126. **One concept per diagram.** Do not overload a single diagram. Split complex systems into multiple focused diagrams.2137. **Verify rendering succeeded.** After running the render command, confirm the output file exists and has non-zero size before reporting success.214215---216217## Anti-Patterns218219| Anti-Pattern | Why It Fails | Correct Approach |220|---|---|---|221| Including every system component in one architecture diagram | Visual overload; audience cannot find the relevant parts; key message is lost in complexity | Show only the components relevant to the current discussion; use progressive disclosure across slides |222| Using inconsistent shapes and colors for the same concept | Audiences learn a visual language from the first slide; changing it mid-deck causes confusion | Define a visual key: boxes = services, cylinders = databases, arrows = data flow; maintain consistently |223| No legend or labels on technical diagrams | Only the author knows what the shapes mean; diagram becomes meaningless in two weeks | Always include a legend for shape types; label every component and connection |224| Using screenshots of code instead of sequence diagrams | Code screenshots are unreadable on projected slides; non-developers cannot follow | Use sequence diagrams for flow, activity diagrams for processes; reference code in handouts, not slides |225| Cramming too much into a single flowchart | More than 10-12 nodes on a slide becomes unreadable; audience loses the thread | Split complex flows across multiple slides with clear "you are here" indicators |