Install
openclaw skills install drawio-flowchartGenerate clean, well-structured draw.io (.drawio) XML flowcharts with proper swimlane containers, text hierarchy, color coding, and orthogonal arrows for wor...
openclaw skills install drawio-flowchartGenerate production-ready .drawio XML files that render cleanly in app.diagrams.net.
.drawio file and tell the user how to open it (see Output Delivery)These are non-negotiable. Every flowchart MUST follow all of them.
diagrams.net auto-scales to fit the canvas. A canvas too large = tiny text on screen.
| Content complexity | pageWidth | pageHeight |
|---|---|---|
| Simple (≤3 stages, few nodes) | 600 | 1200 |
| Medium (4-5 stages) | 800 | 2800 |
| Complex (6+ stages, nested) | 800 | 3800 |
dx and dy to match or slightly exceed page dimensions.Use swimlane containers for every stage/group — never bare mxgraph.basic.rect:
<mxCell id="g1" parent="1" connectable="0"
style="swimlane;startSize=32;fillColor=#EBF5FF;strokeColor=#2563EB;
strokeWidth=2;fontSize=16;fontStyle=1;fontColor=#1e40af;
rounded=0;collapsible=0;"
value="① Stage Name" vertex="1">
<mxGeometry x="20" y="60" width="720" height="200" as="geometry" />
</mxCell>
Key properties:
startSize=32 — header height for titlerounded=0 — sharp corners (never rounded containers)collapsible=0 — prevent collapse UIconnectable="0" — on the cell tag, not in styleThree tiers of text size — no exceptions:
| Level | fontSize | fontStyle | Example |
|---|---|---|---|
| Stage title (swimlane) | 14-16 | 1 (bold) | ① Skill 上传 |
| Node title (inside box) | 13 with <b> tag | bold via HTML | 格式验证 ✅ |
| Node body text | 12 | normal | SKILL.md & YAML 合法 |
Use inline HTML for mixed sizes within a single cell:
value="<b style="font-size:13px">Title</b><br><br>Body text line 1<br>Body text line 2"
align=center — no exceptions for node contentArrows must be clean and orthogonal. No diagonal lines, no crossing, no spaghetti.
<mxCell id="ea_1to2" parent="1" source="g1" target="g2" edge="1"
style="edgeStyle=orthogonalEdgeStyle;strokeWidth=3;strokeColor=#2563EB;
fontColor=#2563EB;fontSize=12;fontStyle=1;"
value="Label text">
<mxCell id="e30" parent="g2" source="30" target="31" edge="1"
style="edgeStyle=orthogonalEdgeStyle;strokeWidth=2;strokeColor=#82b366;">
Use explicit entry points to prevent crossing:
<!-- Left target: entryX=0.25 -->
style="...entryX=0.25;entryY=0;exitX=0.5;exitY=1;"
<!-- Center target: entryX=0.5 -->
style="...entryX=0.5;entryY=0;exitX=0.5;exitY=1;"
<!-- Right target: entryX=0.75 -->
style="...entryX=0.75;entryY=0;exitX=0.5;exitY=1;"
Use dashed lines routed via explicit waypoints on the left margin:
style="edgeStyle=orthogonalEdgeStyle;dashed=1;strokeColor=#d97706;strokeWidth=2;"
With <Array as="points"> routing along x=5 to avoid crossing content.
Use this consistent 5-stage palette. If fewer stages, use a subset:
| Stage | fillColor | strokeColor | fontColor |
|---|---|---|---|
| 1 (intro/input) | #EBF5FF | #2563EB | #1e40af |
| 2 (validation) | #F0FDF4 | #16a34a | #047857 |
| 3 (evaluation) | #FAF5FF | #7c3aed | #6d28d9 |
| 4 (approval) | #F0FDF4 | #059669 | #047857 |
| 5 (management) | #FFF7ED | #ea580c | #c2410c |
Sub-containers (dashed): use lighter fills (#FEFCE8, #FFF7ED, #FEF2F2) with dashed=1.
Node fills: always #FFFFFF with border color matching the parent stage.
Special nodes:
pageWidth - 40 (e.g., 720 for 800-wide canvas)When two parallel options exist (e.g., manual vs automatic):
<mxCell id="s1or" parent="s1box"
style="text;html=1;align=center;fontSize=16;fontStyle=1;fontColor=#999;"
value="或" vertex="1">
Place centered between the two option boxes, vertically aligned to their midpoint.
For status flow annotations or notes at the bottom of a container:
style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#999;
fontSize=11;align=center;fontStyle=2;"
Height: 22-28px, italic, gray — visually subordinate to main content.
See references/template.md for the complete XML skeleton.
交付本地 .drawio 文件,告诉用户打开方式。
.drawio XML,必须包含 <mxfile> 外层包裹:<mxfile host="app.diagrams.net" type="device">
<diagram id="xxx" name="图表名称">
<mxGraphModel ...>
<root>
...
</root>
</mxGraphModel>
</diagram>
</mxfile>
.drawio 结尾打开方式(告知用户,选其一即可):
.drawio 文件拖拽到已打开的 app.diagrams.net 页面中Before writing the file, verify:
pageWidth ≤ 800swimlane style with rounded=0;collapsible=0align=center<b> tags at fontSize 13<!-- -->) in the output — they cause load errorsedge cells have edge="1" attribute and valid source/targetconnectable="0" on the tag (not in style)parent="containerId"