excalidraw
Skill9 starsChanged 2 months agoMITView on GitHub
Middle tier — complex STATIC diagrams. Use when user invokes /claude-teacher:excalidraw, OR when concept has 5+ components, multi-layer architecture, or detailed data structures that benefit from editable layout. Generates .excalidraw JSON files opened in excalidraw.com or VS Code. For simple visuals use /claude-teacher:ascii. For animated/dynamic concepts (protocol handshakes, algorithm traces) use /claude-teacher:demo instead.
69 other projects use a version of this.
Adopted by
Most recently taken up by
- omidnw/my-skillstheir own version, first seen Nov 8, 2026
- rliang/skillstheir own version, first seen Nov 8, 2026
- ashleysbrain/skillstheir own version, first seen Nov 8, 2026
- delorenj/skillstheir own version, first seen Nov 7, 2026
- instrument-org/skillstheir own version, first seen Nov 1, 2026
- AlekseiUL/heisenberg-team-GPTtheir own version, first seen Nov 1, 2026
Used with
Projects with it also use heartmula, webhook-subscriptions and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
math-incSkillheartmula
Set up and run HeartMuLa, the open-source music generation model family (Suno-like). Generates full songs from lyrics + tags with multilingual support.
Also in 9 projects that use this
Tommy-ywSkillwebhook-subscriptions
Create and manage webhook subscriptions for event-driven agent activation, or for direct push notifications (zero LLM cost). Use when the user wants external services to trigger agent runs OR push notifications to chats.
Also in 5 projects that use this
john-data-chenSkilltouchdesigner-mcp
Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. 36 native tools.
Also in 7 projects that use this
math-incSkillminecraft-modpack-server
Set up a modded Minecraft server from a CurseForge/Modrinth server pack zip. Covers NeoForge/Forge install, Java version, JVM tuning, firewall, LAN config, backups, and launch scripts.
Also in 5 projects that use this
AlekseiULSkillTubeScribe
YouTube video summarizer with speaker detection, formatted documents, and audio output. Works out of the box with macOS built-in TTS. Optional recommended tools (pandoc, ffmpeg, mlx-audio) enhance quality. Requires internet for YouTube access. No paid APIs or subscriptions. Use when user sends a YouTube URL or asks to summarize/transcribe a YouTube video.
Also in 3 projects that use this
mae616Skillp5js
p5.js(クリエイティブコーディング)のProcessing由来「コードでスケッチ」思想を軸に、setup/drawループ・座標系・インタラクション・パフォーマンス最適化を整理する。p5.js、Processing、クリエイティブコーディング、ジェネラティブアート、インタラクティブ表現、ビジュアルプログラミング、Canvas描画、パーティクル、フラクタル、ノイズ表現に関する相談で必ず使うこと。ユーザーが「コードでアート」「動くビジュアル」「インタラクティブな描画」と言った場合にも適用する。
Also in 10 projects that use this
- +5 more from math-inc
Other versions69 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 69
- ShenSeanChen/waku-agent★ 2ksame name
- math-inc/OpenGauss★ 1.3ksame name
- dtsola/xiaoyaosearch★ 1ksame name
- boldsoftware/shelley★ 713same name
- neo4j-labs/agent-memory★ 598same name
- Tommy-yw/RunbookHermes★ 546same name
- ooiyeefei/ccc★ 497same name
- aivrar/portable-hermes-agent★ 239same name
- RedWoodOG/Hermes-Desktop★ 177same name
- HybridAIOne/hybridclaw★ 159same name
59 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository15 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- asciiSkill
- challengeSkill
- compareSkill
- demoSkill
- flashcardsSkill
- init-eduSkill
- motivateSkill
- progressSkill
- quiz-meSkill
- researchSkill
- reset-eduSkill
- roadmapSkill
- save-progressSkill
- summarySkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
22 rules. 0 are common, 19 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 64 edited versions we read keep these.
19
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 9
Before accessing education data, read ${CLAUDE_PLUGIN_ROOT}/references/education-data.md.
- Distinctive: line 29
If you removed ALL text from the diagram, would the spatial structure alone communicate the concept?
- Distinctive: line 39
Before generating any diagram, read these reference files:
- Distinctive: line 51
Before building, assess the complexity the student needs:
- Distinctive: line 57
No evidence artifacts needed
- Distinctive: line 62
MUST include evidence artifacts (real code, real JSON, real event names, real packet contents)
- Distinctive: line 101
Use font size, weight, and color for hierarchy: instead of wrapping everything in rectangles.
- Distinctive: line 117
Use for: event emission, broadcast, one-to-many relationships, API responses consumed by multiple services.
- Distinctive: line 127
Use for: aggregation, reduce operations, load balancers, merging streams.
- Distinctive: line 139
Use for: DOM trees, file systems, inheritance, organizational charts, ASTs.
- Distinctive: line 147
Use for: request lifecycle, protocol handshakes, pipeline stages, state machines.
- Distinctive: line 158
Use for: event loops, retry logic, feedback systems, iterative processes.
- Distinctive: line 166
Use for: compilation pipeline, CI/CD, data processing, middleware chains.
- Distinctive: line 176
Use for: TCP vs UDP, SQL vs NoSQL, sync vs async, before/after.
- Distinctive: line 184
Use for: debugging visualization, refactoring before/after, migration steps.
- Distinctive: line 198
Use descriptive string IDs and namespace seeds by section:
- Distinctive: line 254
Grid alignment: Use coordinates that are multiples of 20
- Distinctive: line 258
Arrow routing: Prefer straight horizontal/vertical arrows.
- Very specific: line 259
Grouping: Use groupIds to group related elements so they move together
- Distinctive: line 266
Before saving any diagram, verify:
- Distinctive: line 285
After creating the diagram and explanation:
- Very specific: line 294
If the concept corresponds to a tracked topic, update only last_seen.
“Common” is measured: kept by at least 6 in 10 of the 64 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Requested topic/task: $ARGUMENTS
Before accessing education data, read ${CLAUDE_PLUGIN_ROOT}/references/education-data.md. Resolve every <education-db> below using that contract. Current session ID: ${CLAUDE_SESSION_ID}.
Excalidraw Diagram
Generate .excalidraw JSON files with detailed educational explanations. Produces interactive, editable diagrams the student can open in excalidraw.com or the VS Code Excalidraw extension.
Invocation
/claude-teacher:excalidraw <concept description>
Philosophy
Diagrams Should ARGUE, Not DISPLAY
A diagram is not a picture — it is a visual argument. Every shape, arrow, and color must advance the student's understanding. If an element does not teach something, remove it.
Isomorphism Test
If you removed ALL text from the diagram, would the spatial structure alone communicate the concept? The layout, grouping, arrow directions, and color coding should carry meaning independently of labels.
Education Test
Could someone who knows nothing about this topic learn something concrete from this diagram? Not just "see a pretty picture" but actually understand a relationship, flow, or structure they did not understand before.
Reference Files (Read Before Generating)
Before generating any diagram, read these reference files:
${CLAUDE_SKILL_DIR}/references/color-palette.md— semantic color system, text colors, sizing${CLAUDE_SKILL_DIR}/references/element-templates.md— copy-paste JSON for every element type${CLAUDE_SKILL_DIR}/references/json-schema.md— property tables, binding rules, options
These files contain the exact hex codes, JSON templates, and schema details needed to produce valid diagrams. Do not rely on memory — read them.
Depth Assessment
Before building, assess the complexity the student needs:
Simple / Conceptual
- Abstract shapes, overview flows, high-level architecture
- 5-15 elements total
- No evidence artifacts needed
- One zoom level
Comprehensive / Technical
- MUST include evidence artifacts (real code, real JSON, real event names, real packet contents)
- 15-50+ elements
- Multiple zoom levels
- Shows what actually happens, not just the abstract idea
Choose depth based on the student's level and the concept's complexity. When in doubt, go comprehensive — concrete evidence teaches better than abstract boxes.
Multi-Zoom Architecture
Large diagrams should work at three levels of detail:
Level 1 — Summary Flow
The bird's-eye view. 5-8 major shapes connected by arrows. A student glancing at this level gets the overall flow or structure. Use large labels (fontSize 24-28) and primary colors.
Level 2 — Section Boundaries
Logical grouping within the flow. Dashed boundary rectangles or spatial clustering. Section headers (fontSize 20-24) label each group. This is where the diagram's "chapters" become visible.
Level 3 — Evidence Artifacts
The concrete details. Real code, JSON payloads, event names, packet contents inside dark evidence artifact boxes. fontSize 14-16. This level answers "but what does it actually look like?"
Container Discipline
Boxes around text are expensive — they add visual noise and make diagrams feel like PowerPoint slides.
Rules
- Default to free-floating text. Most labels, annotations, and descriptions should be plain text positioned near the relevant element.
- Add containers only when they serve a purpose:
- The shape IS the concept (a server, a database, a component)
- The shape needs arrows connecting to/from it
- The shape represents a boundary or grouping
- Prefer free-floating annotations; use bound labels where nodes need them. Node-heavy roadmaps can legitimately have more bound labels; prioritize legibility and correct bindings.
- Use font size, weight, and color for hierarchy instead of wrapping everything in rectangles. A 28px dark title vs a 14px gray annotation needs no box to show importance.
Visual Pattern Library
Choose the pattern that best matches the concept's structure. Combine patterns for complex diagrams.
Fan-Out (one source, many outputs)
+--> B
A ---+--> C
+--> DUse for: event emission, broadcast, one-to-many relationships, API responses consumed by multiple services.
Convergence (many inputs, one result)
A --+
B --+--> D
C --+Use for: aggregation, reduce operations, load balancers, merging streams.
Tree (hierarchical parent-child)
A
/ \
B C
/ \
D EUse for: DOM trees, file systems, inheritance, organizational charts, ASTs.
Timeline / Sequence (ordered flow)
A --> B --> C --> DUse for: request lifecycle, protocol handshakes, pipeline stages, state machines. Can be horizontal (left-to-right) or vertical (top-to-bottom).
Spiral / Cycle (recurring process)
A --> B
^ |
| v
D <-- CUse for: event loops, retry logic, feedback systems, iterative processes.
Assembly Line (pipeline with transformations)
[raw] --> |Stage 1| --> |Stage 2| --> |Stage 3| --> [done]Use for: compilation pipeline, CI/CD, data processing, middleware chains. Show what transforms at each stage.
Side-by-Side (comparison)
| Concept A | | Concept B |
| - point | | - point |
| - point | | - point |Use for: TCP vs UDP, SQL vs NoSQL, sync vs async, before/after.
Gap / Break (problem to solution)
[Problem state] ~~gap~~ [Solution state]Use for: debugging visualization, refactoring before/after, migration steps.
Section-by-Section Build Strategy
Large diagrams must be built incrementally, not all at once.
1. Plan Sections
Divide the diagram into 2-5 logical sections. Each section is a coherent visual unit.
2. Namespace IDs and Seeds
Use descriptive string IDs and namespace seeds by section:
- Section 1 elements: seeds
100xxx(e.g.,100001,100010,100020) - Section 2 elements: seeds
200xxx - Section 3 elements: seeds
300xxx - Cross-section arrows: seeds
900xxx
ID examples: "client_rect", "server_rect", "arrow_syn", "evidence_packet", "title_text"
3. Build One Section at a Time
Generate the JSON for section 1 completely, then section 2, etc. This avoids mistakes from trying to hold 50+ elements in working memory at once.
4. Connect Sections Last
Cross-section arrows and references come after all sections are built. Update boundElements arrays on previously defined shapes when adding arrows to them.
5. Final Assembly
Combine all sections into a single elements array. Verify all cross-references are consistent.
Process
- Research the concept using WebSearch — verify accuracy against official docs, RFCs, or standards. Never diagram something you have not verified.
- Assess depth — simple/conceptual or comprehensive/technical? Based on student level and concept complexity.
- Map concepts to visual patterns — which pattern(s) from the library match this concept's structure? Sketch the layout mentally.
- Plan layout with multi-zoom levels — where does the Level 1 summary flow go? Where do Level 3 evidence artifacts attach? Plan spatial regions.
- Read reference files:
${CLAUDE_SKILL_DIR}/references/color-palette.mdfor colors${CLAUDE_SKILL_DIR}/references/element-templates.mdfor JSON templates${CLAUDE_SKILL_DIR}/references/json-schema.mdfor property reference
- Build JSON section-by-section — follow the section-by-section strategy above. Use templates from element-templates.md as starting points.
- Save the file to
docs/<concept-name>.excalidraw - Write educational explanation alongside the diagram:
- What the diagram shows — walk through each section
- Why it works this way — reasoning behind the design
- Key concepts — define terms that might be new
- Evidence highlights — point out what the evidence artifacts reveal
- Common pitfalls — what people often misunderstand
- Sources — links to official docs, RFCs, or standards
- Save the explanation to
docs/<concept-name>.md(or append if it already exists) — note that an Excalidraw diagram is available.
Layout Rules
- Grid alignment: Use coordinates that are multiples of 20
- Minimum spacing: 40px between unrelated elements, 20px padding inside containers
- Text sizing: Title 28px, section headers 24px, labels 20px, annotations 16px, evidence 14px
- Max diagram size: ~1400px wide, ~1000px tall. If larger, split into multiple diagrams
- Arrow routing: Prefer straight horizontal/vertical arrows. Use waypoints (multiple points) for complex routing
- Grouping: Use
groupIdsto group related elements so they move together - Evidence placement: Evidence artifacts sit near the element they describe, slightly offset and smaller
Quality Checklist
Before saving any diagram, verify:
- Isomorphism Test — structure communicates without text
- Education Test — someone can learn something concrete from this
- Containers — each container communicates a node or grouping; bound node labels remain editable
- Binding consistency — every
boundElementsentry has a matchingcontainerIdorstartBinding/endBinding; everycontainerIdhas a matchingboundElementsentry; every arrow binding has matchingboundElementson both connected shapes - Descriptive string IDs — no generic
"id1","id2". Use"server_rect","arrow_request","evidence_payload" - Colors from palette — all colors come from
${CLAUDE_SKILL_DIR}/references/color-palette.md - fontFamily: 3 — monospace for all text elements
- roughness: 0 — clean lines for all elements
- fillStyle: "solid" — unless there is a specific reason for hatching
- Valid JSON — parseable, no trailing commas, no comments in output
- Title present — every diagram has a title text element
- Source attribution — small text at bottom with reference link
DB Integration
After creating the diagram and explanation:
- Save
.excalidrawfile todocs/<concept-name>.excalidraw - Save/update explanation in
docs/<concept-name>.md— mention the diagram file - Save to global docs at
<education-db>/docs/<concept-name>.excalidraw(for general concepts) - Append to session log
<education-db>/sessions/[date].jsonl:{"time": "[now]", "event": "excalidraw", "topic": "[concept-slug]", "file": "docs/[concept-name].excalidraw", "saved_to": "global|project|both"} - If the concept corresponds to a tracked topic, update only
last_seen; preserve its assessment dates and review interval
How to Open the Diagram
Tell the student:
- VS Code: Install the "Excalidraw" extension, then open the
.excalidrawfile directly - Browser: Go to excalidraw.com, click the menu (hamburger icon) -> "Open" -> select the file
- Edit freely: The diagram is fully editable — move elements, add notes, change colors
Integration with Other Skills
/claude-teacher:ascii— for quick ASCII terminal diagrams (simpler, inline). Use/claude-teacher:excalidrawwhen the concept needs more detail or editability/claude-teacher:demo— for animated/dynamic concepts. Use/claude-teacher:excalidrawfor static structure diagrams/claude-teacher:quiz-me— if a visual concept is wrong, suggest/claude-teacher:excalidrawfor interactive exploration/claude-teacher:challenge— challenges may ask the student to modify or extend an Excalidraw diagram/claude-teacher:progress— diagrams count toward topic engagement- Saved
.excalidrawfiles become part of the student's visual reference library
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

