skills/drawio-diagrams-enhanced/SKILL.md
This skill should be used when the user asks to "create a diagram", "draw a flowchart", "make a swimlane diagram", "create WBS", "generate RACI matrix", "build network diagram", "create org chart", or mentions draw.io, diagrams.net, BPMN, UML, Gantt, PERT, or project management diagrams. Integrates with next-ai-draw-io MCP server for real-time diagram creation and editing.
npx skillsauth add jim60105/copilot-prompt 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.
Create professional diagrams using the next-ai-draw-io MCP server. Generate mxGraphModel XML for real-time browser preview and editing.
Call start_session tool first to open browser with real-time preview.
Use create_new_diagram tool with mxGraphModel XML (not full mxfile wrapper):
<mxGraphModel>
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- shapes here -->
</root>
</mxGraphModel>
Critical constraints:
For modifications, call get_diagram first to see current structure, then use edit_diagram with operations array.
Use get_diagram to retrieve current XML including user's manual edits.
Agents 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, Agents 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
For MCP tools, output only mxGraphModel (not full mxfile):
<mxGraphModel>
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- shapes here -->
</root>
</mxGraphModel>
For standalone files, use full mxfile wrapper:
<mxfile host="app.diagrams.net">
<diagram id="diagram-1" name="Page-1">
<mxGraphModel dx="1434" dy="759" grid="1" gridSize="10">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- shapes 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!
development
Diátaxis Documentation Expert. An expert technical writer specializing in creating high-quality software documentation, guided by the principles and structure of the Diátaxis technical documentation authoring framework.
testing
Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.
tools
Comprehensive guide for building, configuring, customizing, and deploying Docsify documentation sites. Use when the user wants to (1) initialize a new Docsify site, (2) add or organize Markdown pages, sidebars, navbars, or cover pages, (3) configure `window.$docsify` options, (4) customize themes / CSS variables / fonts, (5) install built-in or third-party Docsify plugins (search, GA, emoji, zoom, copy-code, comments, pagination, tabs, etc.), (6) write a custom Docsify plugin using lifecycle hooks, (7) use Docsify Markdown helpers (callouts, link attributes, image attributes, heading IDs, task lists, embed files with `:include`), (8) deploy to GitHub Pages, GitLab Pages, Netlify, Vercel, Firebase, Docker, Nginx, etc., (9) enable PWA / offline mode, virtual routes, or Vue compatibility, or (10) upgrade a Docsify site from v4 to v5. Triggers on mentions of "docsify", "_sidebar.md", "_navbar.md", "_coverpage.md", "$docsify", or `docsify-cli`.
testing
Writing guidelines for producing high-quality Traditional Chinese (zh-TW) content. Use when writing any kind of content. Including blog posts, notes, technical articles, technical writing, chitchat, social media posts, etc., even when you are just sending a text message. Also use when reviewing or editing existing Chinese content for tone, style, and terminology compliance.