From itp
Create ASCII diagrams for markdown using graph-easy. TRIGGERS - ASCII diagram, graph-easy, architecture diagram, markdown diagram.
How this skill is triggered — by the user, by Claude, or both
Slash command
/itp:graph-easyThis 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 ASCII architecture diagrams for any GitHub Flavored Markdown file using graph-easy. Pure text output with automatic layout - no image rendering required.
Create ASCII architecture diagrams for any GitHub Flavored Markdown file 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.
NOT for ADRs - Use adr-graph-easy-architect for Architecture Decision Records (includes ADR-specific patterns like 2-diagram requirement and before/after templates).
Ensure graph-easy is installed and functional before rendering. See Preflight Check for the full layered installation guide (mise-first approach, macOS + Linux).
Quick verify:
echo "[Test] -> [OK]" | graph-easy &>/dev/null && echo "✓ graph-easy ready"
Full syntax reference: DSL Syntax
[Node] -> [Node] # Basic edge
[A] -- label --> [B] # Labeled edge
[A] <-> [B] # Bidirectional
( Group: [Node A] [Node B] ) # Container
[n] { label: "Display Name"; } # Custom label
graph { label: "Title"; flow: south; } # Top-to-bottom
graph { label: "Title"; flow: east; } # Left-to-right
label: with semantic emoji + titleflow: direction| Location | Graphical Emojis | Unicode Symbols | ASCII Markers |
|---|---|---|---|
| Inside nodes | NEVER | OK | ALWAYS safe |
| Graph label | SAFE | OK | OK |
ASCII markers: [x] [+] [!] [OK] [>] [*] [~] [?] [=]
| Style | Syntax | Use For |
|---|---|---|
| Rounded | { shape: rounded; } | Start/end nodes |
| Double border | { border: double; } | Critical/emphasis |
| Bold border | { border: bold; } | Important nodes |
| Dotted border | { border: dotted; } | Optional (GH caution) |
| Solid arrow | -> / <-> | Normal/happy path |
| Dotted arrow | ..> | Conditional/alternate |
| Bold arrow | ==> | Critical path |
See Diagram Patterns for full examples (pipeline, multi-component, decision, grouped, bidirectional, layered architecture).
Quick templates:
# Pipeline (left-to-right)
graph { label: "Pipeline"; flow: east; }
[Input] -> [Process] -> [Output]
# Multi-component (top-down)
graph { label: "System"; flow: south; }
[Gateway] -> [Service A]
[Gateway] -> [Service B]
[Service A] -> [Database]
[Service B] -> [Database]
# For GitHub markdown (RECOMMENDED) - renders as solid lines
graph-easy --as=ascii << 'EOF'
graph { flow: south; }
[A] -> [B] -> [C]
EOF
# For terminal/local viewing - prettier Unicode lines
graph-easy --as=boxart << 'EOF'
graph { flow: south; }
[A] -> [B] -> [C]
EOF
| Mode | Command | When to Use |
|---|---|---|
ascii | --as=ascii | GitHub markdown - +--+ renders as solid lines everywhere |
boxart | --as=boxart | Terminal only - ┌──┐ looks nice locally, dotted on GitHub |
Why ASCII for GitHub? GitHub renders Unicode box-drawing characters (┌─┐│└─┘) as dotted lines. Pure ASCII (+---+, |) renders correctly everywhere.
After embedding, validate with: Skill(doc-tools:ascii-diagram-validator)
Full guide with GFM collapsible section syntax: Embedding Guide
CRITICAL: Every diagram MUST include a <details> source block. This is non-negotiable.
## Architecture
```
+----------+ +----------+ +----------+
| Input | --> | Process | --> | Output |
+----------+ +----------+ +----------+
```
<details>
<summary>graph-easy source</summary>
```
graph { flow: east; }
[Input] -> [Process] -> [Output]
```
</details>
Full reference: Monospace Symbols
Key markers: [+] Added | [x] Removed | [*] Changed | [!] Warning | [>] Active
WARNING: This is the most commonly forgotten requirement. Diagrams without labels are invalid.
graph { label: "Deployment Pipeline"; flow: east; }
[Build] -> [Test] -> [Deploy]
graph { flow: east; }
[Build] -> [Test] -> [Deploy]
Why this is wrong: Missing label: with emoji. Every diagram needs context at a glance.
graph { label: "Title"; } - semantic emoji + title (MOST FORGOTTEN - check first!)graph { flow: south; } or graph { flow: east; } - explicit direction--as=ascii for GitHub markdown (or --as=boxart for terminal only)<details> block with source - EVERY diagram MUST have collapsible source code blockascii-diagram-validator on the file after embedding diagram{ shape: rounded; } | Critical: { border: double; } | Optional: { border: dotted; }-> | Conditional: ..> | Critical: ==> | Labels: 1-3 wordsgraph { label: "..."; }( Name: ... ) for 4+ related nodes[db] { label: "PostgreSQL"; }<details> block with graph-easy DSL source--as=ascii for GitHub, --as=boxart for terminal\n, no truncation( Group: ... ) containers| Issue | Cause | Solution |
|---|---|---|
command not found | graph-easy not installed | Run preflight check |
| Dotted lines on GH | Used --as=boxart | Use --as=ascii for GitHub markdown |
| Box border broken | Graphical emoji in node | Remove emojis, use ASCII markers [x][+] |
| 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 itpASCII architecture diagrams for ADRs via graph-easy. TRIGGERS - ADR diagram, architecture diagram, ASCII diagram.
Generates perfectly aligned ASCII diagrams for architecture, flow, sequence, and box-and-arrow diagrams using a programmatic character-grid approach.
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.