draw-io — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited draw-io (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Create professional, well-structured Draw.io XML diagrams with proper spacing, icons, grouping, and styling.
This skill is organized as follows:
example-diagram.drawio.xml - Complete working example with groups and stylingapi-reference.md - XML structure, icon library, colors, and validation rules💡 Quick tip: Start here for the workflow, refer to references/api-reference.md for detailed XML syntax and icon codes.
When the user requests a diagram:
.drawio.xml fileEvery diagram needs:
background="#ffffff" in mxGraphModel (critical for visibility)Each component box includes:
Connect boxes with:
Extract the flow structure:
Example parsing:
"MTA -> Direct Connect -> HAProxy -> [server1, server2] -> [box a, box b] -> database"
Components: 6 main boxes
Groups: 2 (servers and boxes)
Arrows: 5 connectionsCalculate positions:
Layout patterns:
Select appropriate icons based on component type:
AWS Icons (use fillColor=#FF9900):
cloud_vpn, cloud_routercompute_engine, app_enginecloud_storage, cloud_sqlcloud_pubsubGCP Icons (use fillColor=#5184F3 or #4285F4):
cloud_dataflow, cloud_functionsbigquery, cloud_bigtablecloud_pubsubGeneric Icons:
#34A853 (green)#FBBC04 (yellow)#EA4335 (red)All icons use: shape=mxgraph.gcp2.hexIcon
When you see [x, y, z] notation:
Group color schemes:
Use this template structure:
<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" agent="Claude Code" version="28.1.2">
<diagram id="unique-id" name="Page-1">
<mxGraphModel dx="1554" dy="797" grid="1" gridSize="10" guides="1"
tooltips="1" connect="1" arrows="1" fold="1" page="1"
pageScale="1" pageWidth="1400" pageHeight="900"
background="#ffffff" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<!-- Title Bar -->
<mxCell id="title-bar" value="Architecture: ..." />
<!-- Optional Platform Container -->
<mxCell id="platform-container" value="Cloud Platform" />
<!-- Edges (arrows) -->
<mxCell id="edge-1" style="..." source="box-1" target="box-2" />
<!-- Boxes -->
<mxCell id="box-1" value="" ... />
<mxCell id="box-1-label" value="..." part="1" ... />
<!-- Groups (if needed) -->
<mxCell id="group-1" value="Group Title" ... />
</root>
</mxGraphModel>
</diagram>
</mxfile>IMPORTANT: The background="#ffffff" attribute in mxGraphModel is REQUIRED for proper rendering.
Ensure text fits properly:
Standard sizes:
Grouped boxes:
Minimum dimensions:
Arrow routing needs space:
Use these style patterns:
Title Bar:
fillColor=#4DA1F5;strokeColor=none;shadow=1;fontSize=14;
align=left;spacingLeft=50;fontColor=#ffffffPlatform Container:
fillColor=#F6F6F6;strokeColor=none;shadow=0;fontSize=14;
align=left;spacingLeft=40;fontColor=#717171Component Box:
strokeColor=#dddddd;fillColor=#ffffff;shadow=1;strokeWidth=1;
rounded=1;absoluteArcSize=1;arcSize=2Arrow:
edgeStyle=orthogonalEdgeStyle;rounded=0;strokeColor=#4284F3;
strokeWidth=2;startFill=1;endArrow=blockThin;endFill=1Group Container:
fillColor=#E8F5E9;strokeColor=#81C784;strokeWidth=2;
rounded=1;arcSize=5;shadow=1Before finalizing:
Save the file as:
[descriptive-name].drawio.xmlInform the user:
User: "Create a diagram: API -> Load Balancer -> App Server -> Database"
Result:
- 4 boxes horizontally aligned
- Blue arrows connecting left-to-right
- API (cloud icon), LB (network icon), Server (compute icon), DB (database icon)
- Total width: ~700px, positioned centeredUser: "MTA -> Gateway -> [web1, web2, web3] -> Database"
Result:
- MTA box at x=140
- Gateway box at x=340
- Group container at x=540 containing:
- web1, web2, web3 as smaller boxes
- Green background with "Web Servers" title
- Database box at x=820
- Arrow into group (not into individual servers)User: "Input -> Processor -> [Storage, Analytics, Notifications]"
Result:
- Linear flow to Processor
- Three arrows from Processor to separate endpoints
- Vertical spacing between endpoints (110px each)
- Processor at center, endpoints staggered verticallybox-mta, edge-1-2, group-servers| Component Type | Icon prIcon Value | Hex Color |
|---|---|---|
| API/Gateway | cloud_vpn | #FF9900 |
| Load Balancer | compute_engine | #34A853 |
| Server/Compute | compute_engine | #4285F4 |
| Processing | cloud_dataflow | #5184F3 |
| Functions | cloud_functions | #FBBC04 |
| Message Queue | cloud_pubsub | #5184F3 |
| Database | cloud_sql | #EA4335 |
| Storage | cloud_storage | #4285F4 |
| Analytics | bigquery | #5184F3 |
| Network | cloud_router | #FF9900 |
<mxCell id="box-label"
value="<font color="#000000">Category</font><br>Service Name<hr><font style="font-size: 11px">Description</font>"
style="dashed=0;connectable=0;html=1;fillColor=#5184F3;strokeColor=none;shape=mxgraph.gcp2.hexIcon;prIcon=cloud_dataflow;part=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=top;spacingLeft=5;fontColor=#999999;fontSize=12;spacingTop=-8;"
parent="box-id"
vertex="1">
<mxGeometry width="44" height="39" relative="1" as="geometry">
<mxPoint x="5" y="10" as="offset" />
</mxGeometry>
</mxCell>Boxes overlap:
Text doesn't fit:
Arrows route incorrectly:
Groups look wrong:
XML invalid:
Use descriptive names:
network-flow-diagram.drawio.xmlaws-architecture.drawio.xmldata-pipeline.drawio.xmlmicroservices-diagram.drawio.xmlAfter creating a diagram:
templates/example-diagram.drawio.xml - Complete example of a data flow diagram with groupingreferences/api-reference.md - Detailed XML structure documentation, icon library, and technical specifications~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.