bv-venky/excalidraw-architect-mcp/excalidraw-diagram-design
Claude Code and agent skill by bv-venky/excalidraw-architect-mcp
- community
Checking that the SKILL.md file is still in the repository.
Guide for structuring graph input (nodes and edges) for the Excalidraw Architect MCP tool to produce clean, readable diagrams. Use when generating architecture diagrams, flow diagrams, or any visual diagram via create_diagram or mermaid_to_excalidraw.
Install
npx vskill@latest install bv-venky/excalidraw-architect-mcp/excalidraw-diagram-designSKILL.md
Excalidraw Diagram Design Guide
This skill teaches you how to structure the nodes and connections input for the Excalidraw Architect MCP so the auto-layout engine produces clean, readable diagrams - not spaghetti.
Core Principle
The layout engine (Sugiyama algorithm) works best with tree-like, flow-oriented graphs. Your job as the LLM is to model the data flow story, not the import graph.
Graph Topology Rules
1. Keep it tree-like - avoid diamond dependencies
The #1 cause of messy diagrams is multiple nodes connecting to the same shared target.
Rule: If a node has 4+ incoming edges, either remove it or group it with related nodes.
2. Limit edges to primary data flow
Show how data moves through the system, not every import statement.
Rule: Aim for roughly N-1 to N+2 edges for N nodes (tree + a few extra).
3. Hub nodes should have 3–5 fan-out, not more
The layout engine auto-stretches "hub" nodes (≥3 connections) into gate-like rectangles. This looks great for API gateways, load balancers, and message brokers. But a node with 6+ fan-out creates too many parallel arrows.
Rule: If a node has 6+ connections, split it into two logical stages or group downstream nodes.
4. Keep layers balanced
Each "column" (layer) in a left-right diagram should have 1–4 nodes. If one layer has 6+ nodes, the diagram becomes vertically sprawling.
5. Use concise edge labels (≤4 words)
Edge labels affect spacing. Long labels force adaptive gaps to push layers apart. They also increase node height, which makes the obstacle-detection engine more likely to trigger unnecessary detours.
Rule: Max 4 words per edge label. If you need more context, put it in the node label or drop it.
Node Design
Choose the right abstraction level
- Too granular: Every function or class as a node → too many nodes
- Too abstract: "Frontend" and "Backend" → no useful detail
- Right level: One node per module, service, or logical component
Use component_type for auto-styling
The tool auto-detects technology from labels, but explicit component_type is more reliable:
Node count guidelines
| Diagram type | Ideal node count | |
|---|---|---|
| High-level architecture | 6–15 | |
| Detailed service flow | 10–25 | |
| Service deep-dive (internals, sub-components) | 15–30 | |
| Simple sequence | 5–9 |
For diagrams with 20+ nodes, keep labels to 1–2 lines max - long multi-line labels inflate node sizes and trigger unnecessary obstacle detours. Prefer short, scannable labels (e.g., DynamoDB: orders instead of DynamoDB OrdersTable\n(partition: order_id)).
Edge Design
Direction matters
Default is LR (left-to-right). Use this for:
- Architecture diagrams (request flows left to right)
- Data pipelines
Use TD (top-down) for:
- Org charts
- Class hierarchies
- Decision trees
Edge styles
solid(default): Primary data flowdashed: Optional, async, or metadata pathsdotted: Monitoring, logging, observabilitythick: Critical path or high-throughput
Common Diagram Patterns
Pattern 1: Gateway Fan-out (architecture)
Produces a clean hub with parallel arrows.
Pattern 2: Pipeline (data flow)
Linear chain, optionally with one fork-merge.
Pattern 3: Pipeline with fork-merge
Creates a diamond shape - keep it to ONE fork-merge per diagram.
Pattern 4: Layered architecture
Anti-Patterns
| Anti-pattern | Problem | Fix | |
|---|---|---|---|
| Every import as an edge | Spaghetti arrows | Show primary data flow only | |
| Shared dependency node (4+ incoming) | Arrow crossings, overlaps | Remove or group the node | |
| Long edge labels | Excessive spacing, detour triggers | Keep to ≤4 words | |
| 30+ nodes without splitting | Unreadable, routing congestion | Split into multiple diagrams | |
| Multi-line verbose labels at 20+ nodes | Inflated nodes, false detours | Use 1–2 line labels | |
| Multiple fork-merges | Complex crossing patterns | Linearize or split |
Quick Checklist
Before calling create_diagram:
- [ ] ≤15 nodes for architecture, ≤25 for detailed flows, ≤30 for deep-dives
- [ ] Edge count ≈ node count (tree-like, not a mesh)
- [ ] No node has 5+ incoming edges
- [ ] Hub fan-out is 3–5, not 6+
- [ ] Edge labels are ≤4 words each
- [ ] For 20+ nodes: labels are 1–2 lines max
- [ ] Used
component_typefor known technologies - [ ] One primary flow direction, not a web
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.skills/excalidraw-diagram-design/SKILL.md
Popularity
- Repository stars
- 74
- Repository forks
- 5
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 20 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/bv-venky/excalidraw-architect-mcp/excalidraw-diagram-design)