
Excalidraw Subagent Delegation
FreeOptimize Excalidraw file handling with subagent delegation.
Free · Opens the source repo
What Excalidraw Subagent Delegation does
The Excalidraw Subagent Delegation skill is designed for users who frequently work with Excalidraw files, which are often large JSON documents that can quickly consume context tokens. This skill delegates all operations related to Excalidraw files to subagents, ensuring that the main agent remains efficient and contextually aware. By isolating the handling of these files, users can avoid the pitfalls of context exhaustion that arise from reading verbose JSON directly.
Excalidraw files can range from 4,000 to 22,000 tokens, with a typical file containing a low signal-to-noise ratio. Most of the content in these files consists of visual metadata, such as positioning and styling information, while the actual meaningful content is often minimal. The skill's core principle is to never read these files directly within the main agent's context, thus preserving the agent's ability to handle other tasks effectively.
This skill is particularly useful for developers and designers who need to create, modify, or analyze diagrams and flowcharts without being bogged down by the complexities of Excalidraw's JSON structure. By using predefined task templates, users can easily delegate tasks to subagents, such as extracting text elements, modifying diagrams, or comparing different architectural approaches. This approach not only saves tokens but also enhances the clarity of the output by focusing on relevant information.
In summary, the Excalidraw Subagent Delegation skill is an essential tool for anyone dealing with Excalidraw files, allowing for efficient context management and streamlined operations without the overhead of direct JSON handling.
When to use it
Use this skill when working with Excalidraw files or when you need to visualize architecture and flowcharts.
When not to use it
Avoid using this skill for tasks unrelated to Excalidraw files or when dealing with small, simple JSON files that do not require delegation.
What you can build with it
Creating a New Diagram
Delegate the task of creating a new Excalidraw diagram by providing a description of the components and their relationships.
Modifying an Existing Diagram
Use this skill to add new components to an existing Excalidraw file while ensuring that the main agent's context remains clear.
Comparing Two Diagrams
Efficiently compare two Excalidraw files to identify key differences in architecture without overwhelming the main agent with JSON data.
How to install Excalidraw Subagent Delegation
View source1. Install with the skills CLI
npx skills add davila7/claude-code-templates/excalidraw --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by davila7Excalidraw Subagent Delegation
Overview
Core principle: Main agents NEVER read Excalidraw files directly. Always delegate to subagents to isolate context consumption.
Excalidraw files are JSON with high token cost but low information density. Single files range from 4k-22k tokens (largest can exceed read tool limits). Reading multiple diagrams quickly exhausts context budget (7 files = 67k tokens = 33% of budget).
The Problem
Excalidraw JSON structure:
- Each shape has 20+ properties (x, y, width, height, strokeColor, seed, version, etc.)
- Most properties are visual metadata (positioning, styling, roughness)
- Actual content: text labels and element relationships (<10% of file)
- Signal-to-noise ratio is extremely low
Example: 14-element diagram = 596 lines, 16K, ~4k tokens. 79-element diagram = 2,916 lines, 88K, ~22k tokens (exceeds read limit).
When to Use
Trigger on ANY of these:
- File path contains
.excalidrawor.excalidraw.json - User requests: "explain/update/create diagram", "show architecture", "visualize flow"
- User mentions: "flowchart", "architecture diagram", "Excalidraw file"
- Architecture/design documentation tasks involving visual artifacts
Use delegation even for:
- "Small" files (smallest is 4k tokens - still significant)
- "Quick checks" (checking component names still loads full JSON)
- Single file operations (isolation prevents context pollution)
- Modifications (don't need full format understanding in main context)
Delegation Pattern
Main Agent Responsibilities
NEVER:
- ❌ Use Read tool on *.excalidraw files
- ❌ Parse Excalidraw JSON in main context
- ❌ Load multiple diagrams for comparison
- ❌ Inspect file to "understand the format"
ALWAYS:
- ✅ Delegate ALL Excalidraw operations to subagents
- ✅ Provide clear task description to subagent
- ✅ Request text-only summaries (not raw JSON)
- ✅ Keep diagram analysis isolated from main work
Subagent Task Templates
Read/Understand Operation
Task: Extract and explain the components in [file.excalidraw.json]
Approach:
1. Read the Excalidraw JSON
2. Extract only text elements (ignore positioning/styling)
3. Identify relationships between components
4. Summarize architecture/flow
Return:
- List of components/services with descriptions
- Connection/dependency relationships
- Key insights about the architecture
- DO NOT return raw JSON or verbose element details
Modify Operation
Task: Add [component] to [file.excalidraw.json], connected to [existing-component]
Approach:
1. Read file to identify existing elements
2. Find [existing-component] and its position
3. Create new element JSON for [component]
4. Add arrow elements for connections
5. Write updated file
Return:
- Confirmation of changes made
- Position of new element
- IDs of created elements
Create Operation
Task: Create new Excalidraw diagram showing [description]
Approach:
1. Design layout for [number] components
2. Create rectangle elements with text labels
3. Add arrows showing relationships
4. Use consistent styling (colors, fonts)
5. Write to [file.excalidraw.json]
Return:
- Confirmation of file created
- Summary of components included
- File location
Compare Operation
Task: Compare architecture approaches in [file1] vs [file2]
Approach:
1. Read both files
2. Extract text labels from each
3. Identify structural differences
4. Compare component relationships
Return:
- Key differences in architecture
- Components unique to each approach
- Relationship/flow differences
- DO NOT return full element details from both files
Common Rationalizations (STOP and Delegate Instead)
| Excuse | Reality | What to Do |
|---|---|---|
| "Direct reading is most efficient" | Consumes 4k-22k tokens unnecessarily | Delegate to subagent |
| "It's token-efficient to read directly" | Baseline tests showed 9-45% budget used | Always delegate |
| "This is optimal for one-time analysis" | "One-time" still pollutes main context | Subagent isolation |
| "The JSON is straightforward" | Simplicity ≠ token efficiency | Delegate anyway |
| "I need to understand the format" | Format understanding not needed in main agent | Subagent handles format |
| "Within reasonable bounds" (18k tokens) | "Reasonable" is subjective rationalization | Hard rule: delegate |
| "Just a quick check of components" | "Quick check" still loads full JSON | Extract text via subagent |
| "File is small (16K)" | 4k tokens is NOT small | Size threshold doesn't matter |
Red Flags - STOP and Delegate
Catch yourself about to:
- Use Read tool on .excalidraw file
- "Quickly check" what components exist
- "Understand the structure" before modifying
- Load file to "see what's there"
- Compare multiple diagrams side-by-side
- Parse JSON to "extract just the text"
All of these mean: Use Task tool with subagent instead.
Quick Reference
| Operation | Main Agent Action | Subagent Returns |
|---|---|---|
| Understand diagram | Delegate with "Extract and explain" template | Component list + relationships |
| Modify diagram | Delegate with "Add [X] connected to [Y]" template | Confirmation + changes made |
| Create diagram | Delegate with "Create showing [description]" template | File location + summary |
| Compare diagrams | Delegate with "Compare [A] vs [B]" template | Key differences (not raw JSON) |
Token Analysis (Why This Matters)
Real data from baseline testing:
| Scenario | Without Delegation | With Delegation | Savings |
|---|---|---|---|
| Single large file | 22k tokens (45% budget) | ~500 tokens (subagent summary) | 98% |
| Two-file comparison | 18k tokens (9% budget) | ~800 tokens (diff summary) | 96% |
| Modification task | 14k tokens (7% budget) | ~300 tokens (confirmation) | 98% |
Context pollution impact:
- Reading all 7 project diagrams: 67k tokens (33% of 200k budget)
- With delegation: ~2k tokens (isolated in subagents)
- Savings: 97% context budget preserved
Implementation Example
❌ BAD (Direct Read):
User: "What architecture is shown in detailed-architecture.excalidraw.json?"
Agent: Let me read that file... [reads 22k tokens into main context]
✅ GOOD (Subagent Delegation):
User: "What architecture is shown in detailed-architecture.excalidraw.json?"
Agent: I'll use a subagent to extract the architecture details.
[Dispatches Task tool with general-purpose subagent]
Task: Extract and explain components in .ryanquinn3/ticketing/detailed-architecture.excalidraw.json
[Receives ~500 token summary with component list and relationships]
[Responds to user with architecture explanation, main context preserved]
Why "Straightforward JSON" Doesn't Matter
Agents often rationalize: "The format is simple, I can just read it."
The problem isn't complexity - it's verbosity:
- Simple structure with 20+ properties per element
- Repetitive metadata (seed, version, nonce, roughness)
- Positioning data (x, y, width, height) not semantically useful
- Visual styling (strokeColor, opacity, fillStyle) irrelevant to content
Token cost comes from volume, not complexity.
Even "straightforward" JSON consumes 4k-22k tokens because:
- 79 elements × ~280 tokens/element = 22k tokens
- Most tokens are metadata noise
- Only text labels and relationships matter (~10% of content)
The Iron Law
Main agents NEVER read Excalidraw files. No exceptions.
Not for:
- "Quick checks"
- "Small files"
- "Understanding format"
- "One-time analysis"
- "Optimal efficiency"
Always delegate. Isolation is free via subagents.
Frequently asked questions about Excalidraw Subagent Delegation
Similar skills
Excalidraw Diagram Generator
Transform natural language into Excalidraw diagrams.
Draw.io Diagram Generator
Easily create and validate draw.io diagrams.
Image Annotations
Easily annotate images with callouts and highlights.
Banner Design
Create stunning banners for any platform effortlessly.
Scientific Schematics
Generate publication-quality scientific diagrams effortlessly.
Infographics
Create professional infographics with ease and accuracy.
