.cursor/skills/drawio-diagrams-enhanced/SKILL.md
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
npx skillsauth add nilecui/SkillsBase drawio-diagrams-enhancedInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill enables Claude to create professional, pixel-perfect diagrams in draw.io's native XML format with enterprise-grade capabilities including project management methodologies, extensive icon libraries, and industry-standard templates.
Claude can reference and incorporate shapes from extensive custom libraries:
Icon & Symbol Libraries:
Technology & Infrastructure:
Business & General Purpose:
How to Use Custom Libraries: When generating diagrams that would benefit from specific icons, Claude can note which libraries to enable:
To use this diagram optimally, open it with these custom libraries:
https://app.diagrams.net/?clibs=Uhttps://jgraph.github.io/drawio-libs/libs/templates.xml
Draw.io files are XML-based with the .drawio extension (or .xml). The basic structure is:
<mxfile host="app.diagrams.net" modified="[timestamp]" agent="Claude" version="24.7.17">
<diagram id="[unique-id]" name="Page-1">
<mxGraphModel dx="1434" dy="759" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- Shapes and connectors go here -->
</root>
</mxGraphModel>
</diagram>
</mxfile>
Everything in draw.io is a cell - shapes, connectors, containers, and even the root elements.
Basic Shape Cell:
<mxCell id="2" value="Process Step" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="120" height="60" as="geometry"/>
</mxCell>
Connector Cell:
<mxCell id="3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="4">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
x, y: Position (top-left corner)width, height: Dimensionsrelative="1": For connectors (relative positioning)Styles are semicolon-separated key-value pairs:
rounded=1, ellipse, rhombusfillColor=#dae8fc, strokeColor=#6c8ebf, fontColor=#000000fontSize=12, fontStyle=1 (bold=1, italic=2, underline=4)align=center, verticalAlign=middlespacingLeft=10, spacingTop=5WBS uses hierarchical tree structure with boxes connected by lines.
WBS Package Box:
shape=rectangle;rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontStyle=1;fontSize=10;
WBS Levels:
Activity Node (AON - Activity on Node):
shape=rectangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=0;
Node Structure (divided into sections):
┌─────────────────┐
│ Early Start ES │ Duration
├─────────────────┤
│ Activity Name │
├─────────────────┤
│ Late Start LS │ Late Finish LF
└─────────────────┘
Critical Path Highlighting:
fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=3;
Matrix Container:
swimlane;html=1;startSize=40;fillColor=#f5f5f5;strokeColor=#666666;fontStyle=1;
RACI Cells:
fillColor=#d5e8d4;strokeColor=#82b366;fillColor=#dae8fc;strokeColor=#6c8ebf;fillColor=#fff2cc;strokeColor=#d6b656;fillColor=#e1d5e7;strokeColor=#9673a6;Timeline Bar:
rounded=0;whiteSpace=wrap;html=1;fillColor=#60a917;strokeColor=#2D7600;fontColor=#ffffff;
Milestone Diamond:
rhombus;whiteSpace=wrap;html=1;fillColor=#fa6800;strokeColor=#C73500;fontColor=#000000;
Dependency Arrow:
edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=block;endFill=1;strokeWidth=2;
Risk Matrix Structure:
5x5 grid with:
- X-axis: Impact (Very Low, Low, Medium, High, Very High)
- Y-axis: Probability (Very Low, Low, Medium, High, Very High)
Risk Level Colors:
fillColor=#d5e8d4;strokeColor=#82b366; (Green)fillColor=#fff2cc;strokeColor=#d6b656; (Yellow)fillColor=#ffe6cc;strokeColor=#d79b00; (Orange)fillColor=#f8cecc;strokeColor=#b85450; (Red)Quadrant Structure:
┌─────────────────┬─────────────────┐
│ Manage │ Partner │
│ Closely │ Closely │
│ (High Power, │ (High Power, │
│ High Interest) │ High Interest) │
├─────────────────┼─────────────────┤
│ Keep │ Keep │
│ Satisfied │ Informed │
│ (High Power, │ (Low Power, │
│ Low Interest) │ High Interest) │
└─────────────────┴─────────────────┘
Process (Rectangle):
rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;
Decision (Diamond):
rhombus;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;
Start/End (Rounded Rectangle):
ellipse;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;
Document:
shape=document;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;
Data (Parallelogram):
shape=parallelogram;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;
Swimlane Container:
swimlane;html=1;startSize=20;fillColor=#f5f5f5;strokeColor=#666666;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;
Vertical Swimlane:
swimlane;html=1;startSize=20;fillColor=#f5f5f5;strokeColor=#666666;horizontal=0;fontStyle=1;
<mxfile host="app.diagrams.net">
<diagram id="WBS-1" name="Project WBS">
<mxGraphModel dx="1434" dy="759" grid="1" gridSize="10" guides="1">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- Level 0: Project -->
<mxCell id="2" value="Project Name" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1ba1e2;strokeColor=#006EAF;fontColor=#ffffff;fontStyle=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="280" y="40" width="200" height="80" as="geometry"/>
</mxCell>
<!-- Level 1: Major Deliverables -->
<mxCell id="3" value="Deliverable 1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#60a917;strokeColor=#2D7600;fontColor=#ffffff;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="40" y="160" width="160" height="60" as="geometry"/>
</mxCell>
<mxCell id="4" value="Deliverable 2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#60a917;strokeColor=#2D7600;fontColor=#ffffff;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="240" y="160" width="160" height="60" as="geometry"/>
</mxCell>
<mxCell id="5" value="Deliverable 3" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#60a917;strokeColor=#2D7600;fontColor=#ffffff;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="440" y="160" width="160" height="60" as="geometry"/>
</mxCell>
<!-- Connectors -->
<mxCell id="6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="3">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="4">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="2" target="5">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
<mxfile host="app.diagrams.net">
<diagram id="RACI-1" name="RACI Matrix">
<mxGraphModel dx="1434" dy="759" grid="1" gridSize="10" guides="1">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- Matrix Container -->
<mxCell id="2" value="RACI Matrix" style="swimlane;html=1;startSize=40;fillColor=#f5f5f5;strokeColor=#666666;fontStyle=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="40" y="40" width="720" height="400" as="geometry"/>
</mxCell>
<!-- Header Row -->
<mxCell id="3" value="Activities / Tasks" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontStyle=1;" vertex="1" parent="2">
<mxGeometry x="10" y="50" width="180" height="40" as="geometry"/>
</mxCell>
<mxCell id="4" value="Role A" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontStyle=1;" vertex="1" parent="2">
<mxGeometry x="200" y="50" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="5" value="Role B" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontStyle=1;" vertex="1" parent="2">
<mxGeometry x="330" y="50" width="120" height="40" as="geometry"/>
</mxCell>
<!-- Task Rows with RACI Assignments -->
<mxCell id="6" value="Task 1: Define Requirements" style="rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=10;" vertex="1" parent="2">
<mxGeometry x="10" y="100" width="180" height="50" as="geometry"/>
</mxCell>
<mxCell id="7" value="R" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontStyle=1;fontSize=16;" vertex="1" parent="2">
<mxGeometry x="200" y="100" width="120" height="50" as="geometry"/>
</mxCell>
<mxCell id="8" value="A" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;fontSize=16;" vertex="1" parent="2">
<mxGeometry x="330" y="100" width="120" height="50" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
<mxfile host="app.diagrams.net">
<diagram id="Stakeholder-1" name="Stakeholder Map">
<mxGraphModel dx="1434" dy="759" grid="1" gridSize="10" guides="1">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- Grid Background -->
<!-- High Power, High Interest -->
<mxCell id="2" value="Manage Closely<br><b>(Key Players)</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;verticalAlign=top;fontSize=12;fontStyle=0;" vertex="1" parent="1">
<mxGeometry x="400" y="80" width="320" height="280" as="geometry"/>
</mxCell>
<!-- High Power, Low Interest -->
<mxCell id="3" value="Keep Satisfied<br><b>(Keep Informed)</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;verticalAlign=top;fontSize=12;fontStyle=0;" vertex="1" parent="1">
<mxGeometry x="400" y="360" width="320" height="280" as="geometry"/>
</mxCell>
<!-- Low Power, High Interest -->
<mxCell id="4" value="Keep Informed<br><b>(Show Consideration)</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;verticalAlign=top;fontSize=12;fontStyle=0;" vertex="1" parent="1">
<mxGeometry x="80" y="80" width="320" height="280" as="geometry"/>
</mxCell>
<!-- Low Power, Low Interest -->
<mxCell id="5" value="Monitor<br><b>(Minimal Effort)</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;verticalAlign=top;fontSize=12;fontStyle=0;" vertex="1" parent="1">
<mxGeometry x="80" y="360" width="320" height="280" as="geometry"/>
</mxCell>
<!-- Axis Labels -->
<mxCell id="6" value="Interest" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;fontStyle=1;rotation=90;" vertex="1" parent="1">
<mxGeometry x="20" y="320" width="100" height="40" as="geometry"/>
</mxCell>
<mxCell id="7" value="Power / Influence" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="350" y="660" width="200" height="40" as="geometry"/>
</mxCell>
<!-- Sample Stakeholders -->
<mxCell id="8" value="CEO" style="ellipse;whiteSpace=wrap;html=1;fillColor=#1ba1e2;strokeColor=#006EAF;fontColor=#ffffff;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="520" y="150" width="80" height="60" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
fillColor=#dae8fc;strokeColor=#6c8ebf;fillColor=#b1ddf0;strokeColor=#10739e;fillColor=#f8cecc;strokeColor=#b85450;fillColor=#d5e8d4;strokeColor=#82b366;fillColor=#fff2cc;strokeColor=#d6b656;fillColor=#e1d5e7;strokeColor=#9673a6;fillColor=#f5f5f5;strokeColor=#666666;fillColor=#e1d5e7;strokeColor=#9673a6;fillColor=#ffe6cc;strokeColor=#d79b00;fillColor=#8B0000;strokeColor=#600000;fontColor=#ffffff; (Dark Red)fillColor=#FF0000;strokeColor=#CC0000;fontColor=#ffffff; (Red)fillColor=#FFA500;strokeColor=#CC8400;fontColor=#000000; (Orange)fillColor=#FFFF00;strokeColor=#CCCC00;fontColor=#000000; (Yellow)fillColor=#90EE90;strokeColor=#66AA66;fontColor=#000000; (Light Green)edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;
rounded=0;html=1;jettySize=auto;orthogonalLoop=1;
curved=1;rounded=1;html=1;jettySize=auto;orthogonalLoop=1;
edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=classic;endFill=1;
edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;dashed=1;dashPattern=5 5;
edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=3;strokeColor=#b85450;
#d5e8d4)#dae8fc)#ffe6cc)#fff2cc)#e1d5e7)#f5f5f5)#dae8fc)#d5e8d4)#ffe6cc)#f8cecc)#e1d5e7)#b1ddf0)#fff2cc)#f8cecc)#e1d5e7)Use Case: Business process across departments Structure: Horizontal swimlanes, one per department Key Features: Clear handoffs, decision points, subprocess indicators
Use Case: Project scope decomposition Structure: Hierarchical tree, 3-4 levels deep Key Features: Numbered packages (1.1, 1.2, etc.), deliverable-oriented
Use Case: Activity sequencing and critical path analysis Structure: Activity nodes with duration, early/late start/finish Key Features: Critical path highlighted, float calculations
Use Case: Role and responsibility assignment Structure: Grid with tasks (rows) and roles (columns) Key Features: R, A, C, I assignments with color coding
Use Case: Visual risk assessment Structure: 5x5 grid (Probability vs Impact) Key Features: Color-coded zones, risk items plotted on grid
Use Case: Stakeholder analysis and engagement strategy Structure: 2x2 or 3x3 grid Key Features: Quadrant labels, stakeholder names plotted
Use Case: Project team hierarchy Structure: Hierarchical tree similar to org chart Key Features: Names, roles, reporting relationships
Use Case: Resource allocation over time Structure: Bar chart with time on X-axis, resources on Y-axis Key Features: Color-coded resource types, over-allocation indicators
source and target must match existing shape IDsWhen creating diagrams that benefit from specific icon libraries, include instructions like:
## How to Open with Custom Libraries
To access additional icons and shapes for this diagram, open it with:
https://app.diagrams.net/?clibs=Uhttps://jgraph.github.io/drawio-libs/libs/templates.xml;Uhttps://jgraph.github.io/drawio-libs/libs/un-ocha-icons.xml
Or manually in draw.io:
1. Open the diagram in app.diagrams.net
2. File → Open Library from → URL
3. Enter: https://jgraph.github.io/drawio-libs/libs/[library-name].xml
Always output the complete .drawio file with:
.drawio or .xml extensionThe following template patterns can be adapted for various use cases:
Remember: The goal is to create diagrams that are immediately usable, professional-looking, accurately represent the user's process or system, and follow PMP/PMBOK best practices when applicable!
documentation
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
testing
Design a PostgreSQL-specific schema. Covers best-practices, data types, indexing, constraints, performance patterns, and advanced features
content-media
Production-ready PDF processing with forms, tables, OCR, validation, and batch operations. Use when working with complex PDF workflows in production environments, processing large volumes of PDFs, or requiring robust error handling and validation.
tools
Generate and edit high-quality AI images using Google's Gemini 3 Pro Image model (Nano Banana Pro) via MCP. Use when user wants to create images, edit photos, generate graphics, or needs visual content with text rendering.