From itp
ASCII architecture diagrams for ADRs via graph-easy. TRIGGERS - ADR diagram, architecture diagram, ASCII diagram.
How this skill is triggered — by the user, by Claude, or both
Slash command
/itp:adr-graph-easy-architectThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create comprehensive ASCII architecture diagrams for Architecture Decision Records (ADRs) using graph-easy. Pure text output with automatic layout - no image rendering required.
Create comprehensive ASCII architecture diagrams for Architecture Decision Records (ADRs) using graph-easy. Pure text output with automatic layout - no image rendering required.
Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
Ensure graph-easy is installed and functional before rendering diagrams.
Full setup instructions: Preflight Setup
Quick verify:
echo "[Test] -> [OK]" | graph-easy --as=boxart &>/dev/null && echo "✓ graph-easy ready"
Full syntax with examples, node styling, edge styles, and emoji rules: DSL Syntax Reference
[Node] # Node
[A] -> [B] # Edge
[A] -- label --> [B] # Labeled edge
[A] <-> [B] # Bidirectional
( Group: [Node A] [Node B] ) # Group/container
[id] { label: "Display"; } # Custom label
graph { flow: south; } # Top-to-bottom (architecture, decisions)
graph { flow: east; } # Left-to-right (pipelines, sequences)
WARNING: This is the most commonly forgotten requirement. Diagrams without labels are invalid.
Correct:
graph { label: "🔄 Database Migration"; flow: south; }
[Old DB] -> [New DB]
Anti-Pattern (INVALID):
graph { flow: south; }
[Old DB] -> [New DB]
Missing label: with emoji. The preflight validator will BLOCK any ADR containing diagrams without graph { label: "emoji ..."; }.
| Diagram Type | Emoji | Diagram Type | Emoji |
|---|---|---|---|
| Migration/Change | 🔄 | Architecture | 🏗️ |
| Deployment/Release | 🚀 | Network/API | 🌐 |
| Data Flow | 📊 | Storage/Database | 💾 |
| Security/Auth | 🔐 | Monitoring | 📡 |
| Error/Failure | ⚠️ | Hook/Event | 🪝 |
| Decision/Branch | 🔀 | Before/After | ⏮️/⏭️ |
| Style | Syntax | Use For |
|---|---|---|
| Rounded corners | { shape: rounded; } | Start/end nodes |
| Double border | { border: double; } | Critical/emphasis |
| Bold border | { border: bold; } | Important nodes |
| Dotted border | { border: dotted; } | Optional/skippable |
| Solid arrow | -> | Main/happy path |
| Dotted arrow | ..> | Conditional/alternate |
| Bold arrow | ==> | Emphasized/critical |
| Labeled edge | -- label --> | Annotated connections |
graph { label: }: OKFull symbol reference: Monospace-Safe Symbols
graph { flow: south; }
[Before] -- migrate --> [After]
graph { flow: south; }
[A] -> [B] -> [C]
[B] -> [D]
graph { flow: east; }
[Input] -> [Process] -> [Output]
graph { flow: south; }
[Decision] -> [Option A]
[Decision] -> [Option B]
( Group:
[Component 1]
[Component 2]
)
[External] -> [Component 1]
[Client] <-> [Server]
[Server] -> [Database]
More patterns by ADR type: Diagram Examples
graph-easy --as=boxart << 'EOF'
graph { flow: south; }
[A] -> [B] -> [C]
EOF
Never use --as=ascii - it produces ugly +--+ boxes instead of clean ┌──┐ lines.
# 1. Write DSL to heredoc
# 2. Render with boxart
# 3. Review output
# 4. Iterate if needed
# 5. Copy final ASCII to ADR
Every rendered diagram MUST include a collapsible <details> block with graph-easy source. Full format guide and GFM syntax rules: ADR Embedding Guide
Required format:
```
┌───────┐ ┌──────┐
│ Build │ --> │ Test │
└───────┘ └──────┘
```
<details>
<summary>graph-easy source</summary>
```
graph { label: "🚀 Pipeline"; flow: east; }
[Build] -> [Test]
```
</details>
The <details> block is MANDATORY - never embed a diagram without its source.
graph { label: "🚀 Title"; } - semantic emoji + title (MOST FORGOTTEN - check first!)graph { flow: south; } or graph { flow: east; } - explicit direction--as=boxart - NEVER --as=ascii<details> block with source - EVERY diagram MUST have collapsible source code block``` block, followed by <details><summary>graph-easy source</summary> with source{ shape: rounded; } - entry/exit points{ border: double; } or { border: bold; }{ border: dotted; }\n for multiline - max ~15 chars per line-> solid arrow..> dotted arrow==> bold arrow-- YES -->, -- error -->graph { label: "..."; } title( Name: ... ) used for logical clustering when 4+ related nodes[db] { label: "PostgreSQL"; }<details> block with source+--+\n, no truncation\n for complex diagrams( Group: ... ) containers| Issue | Cause | Solution |
|---|---|---|
command not found | graph-easy not installed | Run preflight check |
| Misaligned boxes | Used --as=ascii | Always use --as=boxart |
| Box border broken | Graphical emoji in node | Remove emojis from nodes, use ASCII markers |
| Nodes overlap | Too complex | Split into multiple diagrams (max 7-10 nodes) |
| Edge labels cut off | Label too long | Shorten to 1-3 words |
| No title showing | Wrong syntax | Use graph { label: "Title"; flow: south; } |
| Weird layout | No flow direction | Add graph { flow: south; } or flow: east |
| Parse error | Special chars in node | Escape or simplify node names |
After this skill completes, check before closing:
Only update if the issue is real and reproducible — not speculative.
npx claudepluginhub terrylica/cc-skills --plugin itpCreate ASCII diagrams for markdown using graph-easy. TRIGGERS - ASCII diagram, graph-easy, architecture diagram, markdown diagram.
Generates ASCII diagrams for architecture, workflows, file trees, and data visualizations. Use for terminal-rendered box-drawing layouts, progress bars, swimlanes, and blast radius visualizations.
Generates perfectly aligned ASCII diagrams for architecture, flow, sequence, and box-and-arrow diagrams using a programmatic character-grid approach.