agentleFS
guanyangguanyang/super-publisher/skills/excalidraw-visual-designer/SKILL.md

excalidraw-visual-designer

Skill32 starsChanged 4 months agoMITView on GitHub

Create and revise editable visual drawings directly in the Excalidraw website through the in-app browser. Use when the user asks Codex to draw in Excalidraw or update an Excalidraw canvas, including diagrams, flowcharts, architecture sketches, process maps, infographics, teaching visuals, product explanation graphics, whiteboard layouts, promotional materials, posters, flyers, menu boards, and social media graphics, especially when the output should remain editable as Excalidraw elements or imported clipboard JSON.

The file

Show its rules and text

We split this skill into the rules it gives an agent

30 rules. About 0 are common, 26 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈26

    Distinctive · estimate

    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:

    Use the in-app browser and the existing Excalidraw tab when present.

    line 10
  2. Very specific:

    Read and follow the browser:control-in-app-browser skill before controlling the browser.

    line 12
  3. Distinctive:

    Keep the browser visible when the user is reviewing the drawing.

    line 14
  4. Distinctive:

    Prefer Excalidraw clipboard JSON import over manual dragging for complex layouts.

    line 15
  5. Distinctive:

    After each substantial visual change, take a screenshot and inspect it for legibility, overlap, and visual quality.

    line 16
  6. Distinctive:

    Use editable Excalidraw text and shape elements for copy, labels, arrows, process structure, prices, CTA, and layout blocks.

    line 30
  7. Distinctive:

    Use a constrained canvas area or frame-like boundary for presentation graphics.

    line 34
  8. Distinctive:

    Keep text editable wherever future changes are likely.

    line 36
  9. Distinctive:

    Prefer simple, recognizable symbols over overdrawn illustration.

    line 37
  10. Distinctive:

    Use polished SVG image elements for food, people, products, devices, and other high-detail visuals.

    line 38
  11. Distinctive:

    Keep stroke weights consistent within each visual region.

    line 39
  12. Distinctive:

    Avoid floating labels; connect labels to targets with lines or place them in contained cards.

    line 40
  13. Distinctive:

    Do not draw connectors through modules, containers, cards, text blocks, badges, product/object illustrations, photos, icons, faces, prices, …

    line 47
  14. Distinctive:

    Use orthogonal polyline arrows with explicit intermediate points instead of diagonal shortcuts when a line would cross another meaningful …

    line 48
  15. Distinctive:

    Prefer entering a target box from the nearest clear side.

    line 51
  16. Distinctive:

    Keep same-category arrows parallel where possible, with at least 20 px visual separation from module borders and labels.

    line 52
  17. Distinctive:

    Avoid arrows that overlap text.

    line 53
  18. Distinctive:

    When a connector would cross a primary shape, first try one of these fixes: move the target, add a side bus, route around the group, split …

    line 54
  19. Distinctive:

    If a crossing is unavoidable, make it an intentional bridge: use a lighter stroke for the background line and keep the crossing away from …

    line 55
  20. Distinctive:

    Before importing any line-based scene, inspect the scene spec or screenshot for these common failures:

    line 57
  21. Very specific:

    Write it to the browser clipboard with tab.clipboard.writeText(...).

    line 80
  22. Very specific:

    Use the active Python interpreter for the current environment.

    line 89
  23. Very specific:

    If no --spec is provided, the script emits an empty valid clipboard payload.

    line 95
  24. Distinctive:

    Check these before finishing:

    line 109
  25. Distinctive:

    Avoid facial-looking marks on food unless explicitly requested.

    line 112
  26. Distinctive:

    Keep key labels readable at the current zoom.

    line 114
  27. Distinctive:

    Use consistent stroke weights inside the same visual region.

    line 115
  28. Distinctive:

    If a decorative detail looks crude, simplify it or replace it with a cleaner SVG image.

    line 116
  29. Distinctive:

    When the user critiques one area:

    line 122
  30. Distinctive:

    Keep the Excalidraw tab open for further editing.

    line 128

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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 Visual Designer

Core Workflow

Use the in-app browser and the existing Excalidraw tab when present.

  1. Read and follow the browser:control-in-app-browser skill before controlling the browser.
  2. Claim the existing https://excalidraw.com/ tab instead of opening a duplicate.
  3. Keep the browser visible when the user is reviewing the drawing.
  4. Prefer Excalidraw clipboard JSON import over manual dragging for complex layouts.
  5. After each substantial visual change, take a screenshot and inspect it for legibility, overlap, and visual quality.
  6. Finalize with the Excalidraw tab kept as deliverable.

Output Types

Choose the structure by intent:

  • Diagrams and flowcharts: use editable Excalidraw rectangles, diamonds, arrows, swimlanes, labels, and grouping.
  • Architecture or system maps: use consistent containers, call paths, data stores, boundaries, and directional arrows.
  • Infographics and teaching visuals: combine editable text/cards with simple charts, numbered sections, icons, and callouts.
  • Product or object explanation graphics: use clean SVG image elements for polished product/object illustrations, then layer editable labels and arrows.
  • Whiteboard sketches: keep a looser Excalidraw style, but still preserve alignment, spacing, and clear reading order.
  • Promotional materials and posters: use structured panels, headline, offer, main visual, information blocks, and CTA.

Use editable Excalidraw text and shape elements for copy, labels, arrows, process structure, prices, CTA, and layout blocks. Use embedded SVG image elements only when a detailed illustration would look crude if built from primitive Excalidraw shapes.

Visual Construction Rules

  • Use a constrained canvas area or frame-like boundary for presentation graphics.
  • Establish a clear reading path before placing decorative details.
  • Keep text editable wherever future changes are likely.
  • Prefer simple, recognizable symbols over overdrawn illustration.
  • Use polished SVG image elements for food, people, products, devices, and other high-detail visuals.
  • Keep stroke weights consistent within each visual region.
  • Avoid floating labels; connect labels to targets with lines or place them in contained cards.
  • Preserve existing user-approved areas when revising one problematic region.

Connector Routing Rules

For any Excalidraw output that uses connectors, arrows, leader lines, callouts, or directional lines, route those lines before finalizing layout. This applies across all output types, including diagrams, architecture maps, process maps, infographics, product explanations, whiteboard sketches, posters, flyers, menu boards, and social graphics.

  • Do not draw connectors through modules, containers, cards, text blocks, badges, product/object illustrations, photos, icons, faces, prices, CTAs, or other primary shapes.
  • Use orthogonal polyline arrows with explicit intermediate points instead of diagonal shortcuts when a line would cross another meaningful visual element.
  • Reserve gutters around grouped content: top/bottom lanes for cross-section calls, left/right lanes for external actors, annotations, legends, and infrastructure.
  • Route many-to-many infrastructure dependencies through a bus line outside the module boundary, then branch from the bus to each external dependency.
  • Prefer entering a target box from the nearest clear side. If the direct side is blocked, route around the group boundary and enter from top, bottom, or an outer side.
  • Keep same-category arrows parallel where possible, with at least 20 px visual separation from module borders and labels.
  • Avoid arrows that overlap text. If an arrow label is needed, put it in a small contained label near the line, not on top of another visual element.
  • When a connector would cross a primary shape, first try one of these fixes: move the target, add a side bus, route around the group, split the connector into an outer lane, or reorder layers.
  • If a crossing is unavoidable, make it an intentional bridge: use a lighter stroke for the background line and keep the crossing away from text.

Before importing any line-based scene, inspect the scene spec or screenshot for these common failures:

  • actor/source arrows crossing target boxes;
  • dependency or callout arrows crossing unrelated modules, cards, or illustrations;
  • diagonal arrows cutting through large containers;
  • connector endpoints landing in the middle of text;
  • multiple arrows sharing the same exact segment without a bus.

Clipboard Import

Excalidraw accepts clipboard JSON with:

{
  "type": "excalidraw/clipboard",
  "elements": [],
  "files": {}
}

Import flow:

  1. Generate or construct the clipboard JSON.
  2. Write it to the browser clipboard with tab.clipboard.writeText(...).
  3. Click the Excalidraw canvas.
  4. Press paste with the platform shortcut.
  5. Press Escape after paste so the final view is not obscured by selection boxes.

Clipboard Generator Script

This skill includes a general clipboard JSON generator. It has no business-domain defaults. Create a task-specific scene spec during the current task, then convert that spec into Excalidraw clipboard JSON.

Use the active Python interpreter for the current environment. In an activated virtual environment this is usually python; in other environments it may be another command. Do not hard-code a machine-specific interpreter path in the skill.

<python> scripts/make_excalidraw_clipboard.py --spec scene-spec.json --output scene.excalidraw-clipboard.json

If no --spec is provided, the script emits an empty valid clipboard payload. A minimal generic spec looks like:

{
  "elements": [
    {"type": "rectangle", "x": 80, "y": 80, "width": 360, "height": 180, "backgroundColor": "#ffffff"},
    {"type": "text", "x": 110, "y": 120, "text": "Editable title", "fontSize": 32},
    {"type": "arrow", "x": 120, "y": 220, "points": [[0, 0], [180, 0]]}
  ]
}

Quality Rules

Check these before finishing:

  • Food, product, or object illustrations must be immediately recognizable. If a user says an illustration looks odd, replace the asset instead of defending it.
  • Avoid facial-looking marks on food unless explicitly requested.
  • Text must not overlap buttons, badges, drawings, arrows, or borders.
  • Keep key labels readable at the current zoom.
  • Use consistent stroke weights inside the same visual region.
  • If a decorative detail looks crude, simplify it or replace it with a cleaner SVG image.
  • For any scene with arrows or connector lines, direction and grouping must be unambiguous, and lines should avoid crossing primary visual elements.
  • For posters and infographics, hierarchy must be obvious at a glance.

Common Revision Pattern

When the user critiques one area:

  1. Name the issue plainly.
  2. Scope the change to that area unless the surrounding layout causes the problem.
  3. Re-import a revised scene or replace the relevant element.
  4. Screenshot-check the revised area and adjacent text.
  5. Keep the Excalidraw tab open for further editing.

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.