npx skills add ...
npx skills add softaworks/agent-toolkit --skill excalidraw
Use when working with *.excalidraw or *.excalidraw.json files, user mentions diagrams/flowcharts, or requests architecture visualization - delegates all Excalidraw operations to subagents to prevent context exhaustion from verbose JSON (single files: 4k-22k tokens, can exceed read limits)
npx skills add softaworks/agent-toolkit --skill excalidraw
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).
Excalidraw JSON structure:
Example: 14-element diagram = 596 lines, 16K, ~4k tokens. 79-element diagram = 2,916 lines, 88K, ~22k tokens (exceeds read limit).
Trigger on ANY of these:
.excalidraw or .excalidraw.jsonUse delegation even for:
NEVER:
ALWAYS:
| 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 |
Catch yourself about to:
All of these mean: Use Task tool with subagent instead.
| 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) |
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:
❌ BAD (Direct Read):
✅ GOOD (Subagent Delegation):
Agents often rationalize: "The format is simple, I can just read it."
The problem isn't complexity - it's verbosity:
Token cost comes from volume, not complexity.
Even "straightforward" JSON consumes 4k-22k tokens because:
Main agents NEVER read Excalidraw files. No exceptions.
Not for:
Always delegate. Isolation is free via subagents.*