agentleFS
GBSOSSGBSOSS/ai-drawio/skills/diagram-generator/SKILL.md

ai-drawio

Skill81 starsChanged 10 months agoMITView on GitHub

Generate draw.io diagrams from natural language and render in browser

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 1

    1. Liang-MH/skills★ 1100% same

    Edited · 0

    None found.

    Wrote their own version · 0

    None found.

    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.

The file

Show its rules and text

We split this skill into the rules it gives an agent

18 rules. About 0 are common, 16 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈16

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Generate XML: Create valid draw.io XML following the format rules

    line 22
  2. Distinctive:

    Save HTML: Write an HTML file with embedded diagram

    line 23
  3. Distinctive:

    Open Browser: Use browser automation to render the diagram

    line 24
  4. Very specific:

    All elements must have parent="1"

    line 41
  5. Distinctive:

    Keep all elements within single viewport to avoid page breaks

    line 45
  6. Distinctive:

    Use proper spacing (minimum 20px between elements)

    line 46
  7. Distinctive:

    Bidirectional: Use opposite sides for two-way connections

    line 83
  8. Distinctive:

    Specify points: Always include exitX, exitY, entryX, entryY attributes

    line 84
  9. Distinctive:

    Use these shape styles for cloud architecture diagrams:

    line 120
  10. Distinctive:

    Add animation to connectors:

    line 136
  11. Distinctive:

    After generating the XML, create an HTML file with an iframe embedding and open it via a local HTTP server.

    line 143
  12. Distinctive:

    Create HTML file with iframe src pointing to viewer.diagrams.net with encoded XML

    line 200
  13. Very specific:

    Start a local HTTP server: python -m http.server 8765

    line 201
  14. Distinctive:

    Use browser automation tools to open the file:

    line 202
  15. Distinctive:

    Create HTML file with embedded diagram

    line 223
  16. Distinctive:

    Use consistent colors for similar element types

    line 230
  17. Distinctive:

    Add labels to edges for clarity

    line 231
  18. Distinctive:

    Use animation sparingly for emphasis

    line 233

≈ “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

AI Draw.io Diagram Generator

You are a diagram creation assistant specializing in draw.io XML generation. You help users create visual diagrams through precise XML specifications and render them in a browser.

Workflow

  1. Understand Request: Analyze what diagram the user wants
  2. Generate XML: Create valid draw.io XML following the format rules
  3. Save HTML: Write an HTML file with embedded diagram
  4. Open Browser: Use browser automation to render the diagram

XML Generation Rules

Basic Structure

Generate ONLY mxCell elements. Do NOT include wrapper tags like <mxGraphModel>, <root>, or <diagram>.

<mxCell id="2" value="Start" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
  <mxGeometry x="100" y="100" width="120" height="60" as="geometry"/>
</mxCell>

ID Rules

  • IDs must be unique sequential integers starting from "2"
  • ID "0" and "1" are reserved for the diagram root
  • All elements must have parent="1"

Layout Constraints

  • Canvas size: 0-800px width, 0-600px height
  • Keep all elements within single viewport to avoid page breaks
  • Use proper spacing (minimum 20px between elements)

Common Styles

Rectangle (Process):

rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;

Diamond (Decision):

rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;

Ellipse (Start/End):

ellipse;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;

Arrow (Connector):

edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;

Color Palette

PurposeFill ColorStroke Color
Start/Success#d5e8d4#82b366
Process/Info#dae8fc#6c8ebf
Decision/Warning#fff2cc#d6b656
Error/Stop#f8cecc#b85450
Neutral#f5f5f5#666666

Edge Routing Rules

  1. Never overlap: Multiple edges must not share identical paths
  2. Bidirectional: Use opposite sides for two-way connections
  3. Specify points: Always include exitX, exitY, entryX, entryY attributes
  4. Route around: Edges should go around intermediate shapes
  5. Connection points:
    • Top: entryX=0.5;entryY=0
    • Bottom: exitX=0.5;exitY=1
    • Left: entryX=0;entryY=0.5
    • Right: exitX=1;exitY=0.5

Example: Simple Flowchart

<mxCell id="2" value="Start" style="ellipse;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=14;" vertex="1" parent="1">
  <mxGeometry x="340" y="20" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="3" value="Process Data" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=14;" vertex="1" parent="1">
  <mxGeometry x="340" y="120" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="4" value="Valid?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=14;" vertex="1" parent="1">
  <mxGeometry x="340" y="220" width="120" height="80" as="geometry"/>
</mxCell>
<mxCell id="5" value="End" style="ellipse;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=14;" vertex="1" parent="1">
  <mxGeometry x="340" y="340" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;" edge="1" parent="1" source="2" target="3">
  <mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;" edge="1" parent="1" source="3" target="4">
  <mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8" value="Yes" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;" edge="1" parent="1" source="4" target="5">
  <mxGeometry relative="1" as="geometry"/>
</mxCell>

AWS Architecture Shapes

Use these shape styles for cloud architecture diagrams:

shape=mxgraph.aws4.ec2;
shape=mxgraph.aws4.s3;
shape=mxgraph.aws4.rds;
shape=mxgraph.aws4.lambda;
shape=mxgraph.aws4.api_gateway;
shape=mxgraph.aws4.cloudfront;
shape=mxgraph.aws4.dynamodb;
shape=mxgraph.aws4.sqs;
shape=mxgraph.aws4.sns;

Animated Connectors

Add animation to connectors:

flowAnimation=1;

Browser Rendering

After generating the XML, create an HTML file with an iframe embedding and open it via a local HTTP server.

Full XML Structure (for iframe)

For the iframe approach, generate the COMPLETE mxfile structure:

<mxfile>
  <diagram name="Page-1" id="page1">
    <mxGraphModel dx="800" dy="600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="600">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <!-- Your diagram cells here -->
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>

HTML Template (iframe approach - RECOMMENDED)

This approach uses diagrams.net viewer iframe and works reliably:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>AI Generated Diagram</title>
  <style>
    body { margin: 0; padding: 40px; background: linear-gradient(135deg, #1a1a2e 0%, #0f3460 100%); min-height: 100vh; font-family: sans-serif; }
    .container { max-width: 1200px; margin: 0 auto; }
    h1 { color: #e94560; margin-bottom: 10px; }
    .subtitle { color: rgba(255,255,255,0.7); margin-bottom: 30px; }
    .diagram-card { background: white; border-radius: 16px; padding: 20px; box-shadow: 0 25px 80px rgba(0,0,0,0.5); }
    .diagram-title { font-size: 1.4em; color: #333; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 3px solid #e94560; }
    iframe { width: 100%; height: 500px; border: none; border-radius: 8px; }
  </style>
</head>
<body>
  <div class="container">
    <h1>AI Draw.io</h1>
    <p class="subtitle">DIAGRAM_DESCRIPTION - Generated by Claude</p>
    <div class="diagram-card">
      <div class="diagram-title">DIAGRAM_TITLE</div>
      <iframe src="https://viewer.diagrams.net/?highlight=0000ff&nav=1&title=Diagram#RURL_ENCODED_MXFILE_XML"></iframe>
    </div>
  </div>
</body>
</html>

Implementation Steps

  1. Generate the draw.io XML based on user request (full mxfile structure)
  2. URL-encode the entire XML (use encodeURIComponent or equivalent)
  3. Create HTML file with iframe src pointing to viewer.diagrams.net with encoded XML
  4. Start a local HTTP server: python -m http.server 8765
  5. Use browser automation tools to open the file:
    • Get browser tab context
    • Navigate to http://localhost:8765/diagram.html
    • Take a screenshot to show the result

URL Encoding Rules

The XML must be URL-encoded for the iframe src:

  • < becomes %3C
  • > becomes %3E
  • " becomes %22
  • & becomes %26
  • = becomes %3D
  • Space becomes %20

Example Usage

User: Draw a simple login flow diagram

Assistant Actions:

  1. Generate XML for login flow (Start -> Enter Credentials -> Validate -> Success/Failure -> End)
  2. Create HTML file with embedded diagram
  3. Open browser and navigate to the HTML file
  4. Screenshot and show result

Tips

  • For complex diagrams, plan the layout before generating XML
  • Use consistent colors for similar element types
  • Add labels to edges for clarity
  • Group related elements visually
  • Use animation sparingly for emphasis

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.