agentleFS
karim-bhalwanikarim-bhalwani/agentic-harness/skills/excalidraw-diagram/SKILL.md

excalidraw-diagram

Skill0 starsChanged 4 months agoMITView on GitHub

Generate structured, argumentative Excalidraw diagrams from natural language descriptions. Use when creating architecture diagrams, system visualizations, data flow diagrams, pipeline visualizations, workflow charts, or any technical illustration that outputs .excalidraw JSON files. DO NOT USE FOR: Mermaid or markdown diagrams, text-based documentation (use brainstorming or architect), code generation, or non-visual output.

51 other projects use a version of this, 25 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use mermaid-visualizer, obsidian-canvas-creator 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.
  • BCS1037Skill

    mermaid-visualizer

    Transform text content into professional Mermaid diagrams for presentations and documentation. Use when users ask to visualize concepts, create flowcharts, or make diagrams from text. Supports process flows, system architectures, comparisons, mindmaps, and more with built-in syntax error prevention.

    Also in 7 projects that use this

  • BCS1037Skill

    obsidian-canvas-creator

    Create Obsidian Canvas files from text content, supporting both MindMap and freeform layouts. Use this skill when users want to visualize content as an interactive canvas, create mind maps, or organize information spatially in Obsidian format.

    Also in 4 projects that use this

  • MicrosoftSkill

    rvap-brand

    Applies the RVAP (Real Value Acceleration Program) brand identity — colors, fonts, logo, and layout patterns — consistently to any GitHub Pages website. Use this skill whenever someone asks to brand, rebrand, apply RVAP/RVAS visual identity, make a site look RVAP, match the brand kit, or transform a GitHub Pages site's look and feel to match RVAP. Also trigger when the user shares an HTML/CSS/MkDocs site and says it should look consistent with other RVAP/RVAS materials, even if they don't explicitly say "brand".

    Also in 3 projects that use this

  • XIYBHKSkill

    huashu-design

    花叔Design(Huashu-Design)——用HTML做高保真原型、交互Demo、幻灯片、动画、设计变体探索+设计方向顾问+专家评审的一体化设计能力。HTML是工具不是媒介,根据任务embody不同专家(UX设计师/动画师/幻灯片设计师/原型师),避免web design tropes。触发词:做原型、设计Demo、交互原型、HTML演示、动画Demo、设计变体、hi-fi设计、UI mockup、prototype、设计探索、做个HTML页面、做个可视化、app原型、iOS原型、移动应用mockup、导出MP4、导出GIF、60fps视频、设计风格、设计方向、设计哲学、配色方案、视觉风格、推荐风格、选个风格、做个好看的、评审、好不好看、review this design。**主干能力**:Junior Designer工作流(先给假设+reasoning+placeholder再迭代)、反AI slop清单、React+Babel最佳实践、Tweaks变体切换、Speaker Notes演示、Starter Components(幻灯片外壳/变体画布/动画引擎/设备边框)、App原型专属守则(默认从Wikimedia/Met/Unsplash取真图、每台iPhone包AppPhone状态管理器可交互、交付前跑Playwright点击测试)、Playwright验证、HTML动画→MP4/GIF视频导出(25fps基础 + 60fps插帧 + palette优化GIF + 6首场景化BGM + 自动fade)。**需求模糊时的Fallback**:设计方向顾问模式——从5流派×20种设计哲学(Pentagram信息建筑/Field.io运动诗学/Kenya Hara东方极简/Sagmeister实验先锋等)推荐3个差异化方向,展示24个预制showcase(8场景×3风格),并行生成3个视觉Demo让用户选。**交付后可选**:专家级5维度评审(哲学一致性/视觉层级/细节执行/功能性/创新性各打10分+修复清单)。

    Also in 4 projects that use this

  • HK-hubSkill

    defuddle

    Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provides a URL to read or analyze, for online documentation, articles, blog posts, or any standard web page.

    Also in 5 projects that use this

  • wangzhuofengSkill

    obsidian-bases

    Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.

    Also in 6 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

16 rules. 0 are common, 12 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 45 edited versions we read keep these.

  • 12

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    The Isomorphism Test: If you removed all text, would the structure alone communicate the concept?

    line 29
  2. Distinctive:

    Before designing, determine what level of detail this diagram needs:

    line 46
  3. Distinctive:

    Read the content. For each concept, ask:

    line 55
  4. Distinctive:

    Before writing JSON, mentally trace how the eye moves through the diagram.

    line 84
  5. Very specific:

    Create the .excalidraw file.

    line 88
  6. Very specific:

    File naming: Use kebab-case descriptive names: auth-architecture.excalidraw, etl-pipeline-flow.excalidraw, rag-pipeline.excalidraw.

    line 96
  7. Distinctive:

    After generating JSON, review the file against the Definition of Done checklist below.

    line 100
  8. Distinctive:

    Use abstract shapes when:

    line 106
  9. Distinctive:

    Use concrete examples when:

    line 114
  10. Distinctive:

    Not every piece of text needs a shape around it: Default to free-floating text.

    line 136
  11. Distinctive:

    Connections Required: If A relates to B, there must be an arrow.

    line 169
  12. Very specific:

    Opacity: Always opacity: 100. Use color, size, and stroke width for hierarchy instead of transparency.

    line 175
  13. Distinctive:

    Small Markers: Use 10-20px ellipses as timeline markers, bullet points, and visual anchors instead of full shapes.

    line 176
  14. Distinctive:

    After all sections are in place, review the complete JSON for binding correctness and spacing balance.

    line 188
  15. Distinctive:

    Quality Gate: All elements properly bound, no orphaned arrows, visual variety present

    line 195
  16. Very specific:

    NO inventing colors: All colors must come from references/color-palette.md.

    line 239

“Common” is measured: kept by at least 6 in 10 of the 45 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Excalidraw Diagram Creator

Version: 9.0 | Updated: 01-July-2026 | Architect: Karim Bhalwani | Deps: none

Overview

Generate .excalidraw JSON files that argue visually, not just display information. Every diagram produced by this skill uses shape, layout, and color to mirror the concept it represents - not just label it.

Output files are saved to an excalidraw/ directory (created automatically if it does not exist). Users open .excalidraw files in the VS Code Excalidraw extension, at excalidraw.com, or in Obsidian.

Core Philosophy

Diagrams should ARGUE, not DISPLAY.

A diagram is not formatted text. It is a visual argument that shows relationships, causality, and flow that words alone cannot express. The shape should BE the meaning.

  • The Isomorphism Test: If you removed all text, would the structure alone communicate the concept? If not, redesign.
  • The Education Test: Could someone learn something concrete from this diagram, or does it just label boxes? A good diagram teaches.

When to Use

  • Visualizing system architectures alongside SPEC.md
  • Illustrating data pipelines (ETL, Medallion, Data Vault)
  • Documenting RAG pipelines, agent workflows, or prompt flows
  • Creating component interaction diagrams or state machines
  • Mapping workflows and process flows for planning
  • Producing before/after comparisons for refactoring proposals
  • Any request for a diagram, visualization, flowchart, or architecture picture

Workflow

Step 0: Assess Depth Required

Before designing, determine what level of detail this diagram needs:

  • Simple/Conceptual: Abstract shapes, labels, relationships. Use for mental models, philosophies, quick overviews.
  • Comprehensive/Technical: Concrete examples, real data formats, actual event names. Use for systems, architectures, tutorials.

For technical diagrams, research actual specifications before drawing. Look up real event names, API endpoints, data formats - never use generic placeholders.

Step 1: Understand Deeply

Read the content. For each concept, ask:

  • What does this concept DO? (not what IS it)
  • What relationships exist between concepts?
  • What is the core transformation or flow?
  • What would someone need to SEE to understand this?

Step 2: Map Concepts to Visual Patterns

For each concept, find the visual pattern that mirrors its behavior. Consult references/visual-patterns.md for the full pattern library.

If the concept...Use this pattern
Spawns multiple outputsFan-out (radial arrows from center)
Combines inputs into oneConvergence (funnel, arrows merging)
Has hierarchy or nestingTree (lines + free-floating text)
Is a sequence of stepsTimeline (line + dots + labels)
Loops or improves continuouslySpiral/Cycle (arrow returning to start)
Is an abstract state or contextCloud (overlapping ellipses)
Transforms input to outputAssembly line (before → process → after)
Compares two thingsSide-by-side (parallel with contrast)
Separates into phasesGap/Break (visual separation)

Step 3: Ensure Variety

For multi-concept diagrams: each major concept must use a different visual pattern. No uniform card grids. No equal boxes. Visual variety mirrors conceptual variety.

Step 4: Sketch the Flow

Before writing JSON, mentally trace how the eye moves through the diagram. There should be a clear visual story - typically left→right or top→bottom.

Step 5: Generate JSON

Create the .excalidraw file. For the JSON structure, element templates, and color palette, consult:

  • references/color-palette.md - All color choices
  • references/element-templates.md - Copy-paste JSON for each element type
  • references/json-schema.md - Excalidraw JSON format

Output directory: Save all .excalidraw files to the excalidraw/ directory at the workspace root. Create the directory if it does not exist.

File naming: Use kebab-case descriptive names: auth-architecture.excalidraw, etl-pipeline-flow.excalidraw, rag-pipeline.excalidraw.

Step 6: Verify Structure

After generating JSON, review the file against the Definition of Done checklist below. Verify element bindings, spacing, and that every relationship has an arrow or line.

Depth Levels

Simple / Conceptual Diagrams

Use abstract shapes when:

  • Explaining a mental model or philosophy
  • The audience does not need technical specifics
  • The concept IS the abstraction (e.g., "separation of concerns")

Comprehensive / Technical Diagrams

Use concrete examples when:

  • Diagramming a real system, protocol, or architecture
  • The audience needs to understand what things actually look like
  • You are showing how multiple technologies integrate

For technical diagrams, include evidence artifacts - code snippets, JSON payloads, real event names embedded directly in the diagram using dark-background rectangles with colored text. See references/color-palette.md for evidence artifact colors.

Multi-Zoom Architecture

Comprehensive diagrams operate at multiple zoom levels simultaneously:

LevelWhat It ShowsExample
Level 1: Summary FlowFull pipeline at a glanceInput → Processing → Output
Level 2: Section BoundariesLabeled regions grouping related componentsBackend / Frontend, Setup / Execution / Cleanup
Level 3: Detail Inside SectionsEvidence artifacts, code snippets, concrete examplesActual API response format inside a "Backend" section

For comprehensive diagrams, aim to include all three levels.

Container vs. Free-Floating Text

Not every piece of text needs a shape around it. Default to free-floating text. Add containers only when they serve a purpose.

Use a Container When...Use Free-Floating Text When...
It is the focal point of a sectionIt is a label or description
It needs visual grouping with other elementsIt is supporting detail or metadata
Arrows need to connect to itIt describes something nearby
The shape itself carries meaning (diamond = decision)Typography alone creates sufficient hierarchy
It represents a distinct "thing" in the systemIt is a section title or annotation

Rule: Aim for <30% of text elements inside containers. Use font size and color for hierarchy instead of boxes.

Shape Meaning

Choose shape based on what it represents - or use no shape at all:

Concept TypeShapeWhy
Labels, descriptionsnone (free-floating text)Typography creates hierarchy
Section titlesnone (free-floating text)Font size/weight is enough
Timeline markerssmall ellipse (10-20px)Visual anchor, not container
Start, trigger, inputellipseSoft, origin-like
End, output, resultellipseCompletion, destination
Decision, conditiondiamondClassic decision symbol
Process, action, steprectangleContained action
Abstract state, contextoverlapping ellipseFuzzy, cloud-like
Hierarchy nodelines + text (no boxes)Structure through lines

Layout Principles

  • Hierarchy Through Scale: Hero elements 300×150, primary 180×90, secondary 120×60, small 60×40
  • Whitespace = Importance: The most important element has 200px+ of empty space around it
  • Flow Direction: Guide the eye left→right or top→bottom for sequences, radial for hub-and-spoke
  • Connections Required: If A relates to B, there must be an arrow. Position alone does not show relationships.

Modern Aesthetics

  • Roughness: roughness: 0 for clean modern diagrams (default). Use roughness: 1 only for hand-drawn/informal.
  • Stroke Width: 1 = thin/elegant, 2 = standard shapes/arrows, 3 = bold emphasis (use sparingly)
  • Opacity: Always opacity: 100. Use color, size, and stroke width for hierarchy instead of transparency.
  • Small Markers: Use 10-20px ellipses as timeline markers, bullet points, and visual anchors instead of full shapes.

Large Diagram Strategy

For comprehensive or technical diagrams, build the JSON one section at a time. Do NOT generate the entire file in a single pass.

  1. Create the base file with the JSON wrapper and first section of elements.
  2. Add one section per edit. Each section gets its own dedicated pass.
  3. Use descriptive string IDs (e.g., "trigger_rect", "arrow_fan_left") for readability.
  4. Namespace seeds by section (section 1 uses 100xxx, section 2 uses 200xxx) to avoid collisions.
  5. Update cross-section bindings as you go - edit earlier elements' boundElements when adding connecting arrows.

After all sections are in place, review the complete JSON for binding correctness and spacing balance.

Outputs & Deliverables

  • Primary Output: .excalidraw JSON file saved to excalidraw/ directory
  • Secondary Output: Brief description of the diagram's structure and how to open it
  • Success Criteria: Diagram passes the Isomorphism Test and Education Test
  • Quality Gate: All elements properly bound, no orphaned arrows, visual variety present

Definition of Done

Conceptual Checks

  • Isomorphism: Each visual structure mirrors its concept's behavior
  • Argument: The diagram shows something text alone could not
  • Variety: Each major concept uses a different visual pattern
  • No uniform containers: Avoided card grids and equal boxes

Container Discipline

  • Minimal containers: Most text is free-floating, <30% inside shapes
  • Lines as structure: Tree/timeline patterns use lines + text, not boxes
  • Typography hierarchy: Font size and color create visual hierarchy

Structural Checks

  • Connections: Every relationship has an arrow or line
  • Flow: Clear visual path for the eye to follow
  • Hierarchy: Important elements are larger and more isolated

Technical Checks

  • Text clean: text and originalText contain only readable words
  • Font: fontFamily: 3 on all text elements
  • Roughness: roughness: 0 unless hand-drawn style explicitly requested
  • Opacity: opacity: 100 on all elements
  • Output location: File saved to excalidraw/ directory
  • Valid JSON: File is valid Excalidraw JSON with type: "excalidraw", version: 2

Evidence Checks (Technical Diagrams Only)

  • Research done: Actual specs, formats, event names looked up
  • Evidence artifacts: Code snippets, JSON examples, or real data included
  • Multi-zoom: Summary flow + section boundaries + detail present
  • Concrete over abstract: Real content shown, not just labeled boxes

Constraints

  • NO render pipeline. This skill generates .excalidraw JSON only. Users view diagrams in VS Code Excalidraw extension, excalidraw.com, or Obsidian.
  • NO image generation. Output is structured JSON, not PNG/SVG.
  • NO implementation code. Diagrams only - do not implement systems shown in diagrams.
  • NO inventing colors. All colors must come from references/color-palette.md.

Common Pitfalls

  • Uniform Card Grids: Making every concept the same rectangle in a grid. Each concept should use a visual pattern that mirrors its behavior.
  • Everything in Boxes: Putting every label in a rectangle. Default to free-floating text; add containers only when they carry meaning.
  • Generic Placeholders: Using "Event 1", "Step A", "Input" instead of real terminology. Research actual names, formats, and data.
  • Missing Connections: Placing elements near each other without arrows. Proximity does not show relationships - arrows do.
  • Ignoring Scale Hierarchy: Making all elements the same size. Important elements should be visually dominant (larger, more whitespace).
  • Broken Bindings: Arrow startBinding/endBinding referencing element IDs that do not exist, or missing boundElements on the target shape.
  • Token Overflow on Large Diagrams: Generating entire comprehensive diagrams in one pass. Build section-by-section to stay within output limits.

Integration Points

PhaseInput FromOutput ToContext
ArchitecturearchitectSPEC.md companionVisual architecture alongside specification
Data Designdata-engineeringPipeline documentationETL/Medallion/Data Vault visualizations
AI Systemsllm-app-patternsPattern documentationRAG pipeline and agent architecture diagrams
Planningconcise-planningWorkflow visualizationProcess flow diagrams for implementation
DiscoverybrainstormingIdea visualizationVisual exploration of design options
ReviewguardianReview documentationArchitecture review visual aids

References

Load these before generating any diagram:

Reference Documents

  • color-palette.md - Single source of truth for all color choices. Load before generating any diagram. Contains semantic shape colors, text hierarchy colors, and evidence artifact colors.
  • element-templates.md - Copy-paste JSON templates for each Excalidraw element type (text, rectangle, arrow, line, ellipse, diamond). Pull colors from color-palette.md based on each element's semantic purpose.
  • json-schema.md - Excalidraw JSON format reference. Element types, common properties, text-specific properties, arrow bindings, and the top-level file structure.
  • visual-patterns.md - Visual pattern library with ASCII examples. Nine reusable patterns (fan-out, convergence, tree, timeline, cycle, cloud, assembly line, side-by-side, gap/break) with when-to-use guidance and implementation notes.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.