Install
$ agentstack add skill-impertio-studio-draw-io-claude-skill-package-drawio-impl-flowcharts ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
About
Draw.io Flowchart Implementation
Purpose
This skill enables correct generation of flowcharts, process flows, and decision trees in Draw.io mxGraph XML. It enforces ISO 5807 shape semantics and prevents the most common AI mistakes: wrong shapes for flowchart elements and missing decision branch labels.
Critical Rules (Memorize These)
- ALWAYS use
rhombusfor decisions — NEVER use a rectangle, rounded rectangle, or any other shape. - ALWAYS label decision branches — Every edge leaving a decision MUST have a
valueattribute (e.g.,value="Yes",value="No"). - ALWAYS use consistent flow direction — Pick one primary direction (top-to-bottom or left-to-right) and maintain it throughout the entire diagram.
- NEVER mix flow directions — A flowchart that flows both downward and leftward creates confusion and violates readability standards.
- ALWAYS include
whiteSpace=wrap;html=1;in every shape style — Without it, text overflows and does not wrap. - ALWAYS use
rounded=1;arcSize=50;for terminators (Start/End) — This produces the ISO 5807 stadium/pill shape. NEVER useellipse.
ISO 5807 Shape Reference
| Shape | Style | Dimensions | Purpose | |-------|-------|-----------|---------| | Process | rounded=0;whiteSpace=wrap;html=1; | 140 x 60 | Standard task or step (rectangle) | | Decision | rhombus;whiteSpace=wrap;html=1; | 120 x 80 | Yes/No or conditional branch (diamond) | | Terminator | rounded=1;whiteSpace=wrap;html=1;arcSize=50; | 120 x 40 | Start or End (stadium shape) | | Data (I/O) | shape=parallelogram;whiteSpace=wrap;html=1; | 140 x 60 | Input or output (parallelogram) | | Document | shape=document;whiteSpace=wrap;html=1; | 140 x 60 | Document output (wavy bottom) | | Predefined Process | shape=process;whiteSpace=wrap;html=1; | 140 x 60 | Subprocess reference (double-barred rectangle) | | Manual Input | shape=manualInput;whiteSpace=wrap;html=1; | 140 x 60 | User input (sloped top edge) | | Preparation | shape=hexagon;whiteSpace=wrap;html=1; | 140 x 60 | Setup or initialization step (hexagon) | | Database | shape=cylinder3;whiteSpace=wrap;html=1; | 120 x 80 | Data store (cylinder) |
Decision Tree: Shape Selection
What does this step represent?
A condition/question --> rhombus (decision diamond)
Start or End --> rounded=1;arcSize=50 (terminator)
A task/action --> rounded=0 (process rectangle)
Reading/writing data --> shape=parallelogram (data I/O)
Producing a document --> shape=document
Calling a subprocess --> shape=process (predefined process)
User entering data --> shape=manualInput
Setup/initialization --> shape=hexagon (preparation)
Storing to database --> shape=cylinder3 (database)
Color Conventions
Use consistent colors to signal shape purpose:
| Shape Type | Fill Color | Stroke Color | |------------|-----------|-------------| | Terminator (Start) | #d5e8d4 (light green) | #82b366 | | Terminator (End) | #f8cecc (light red) | #b85450 | | Process | #dae8fc (light blue) | #6c8ebf | | Decision | #fff2cc (light yellow) | #d6b656 | | Data I/O | #e1d5e7 (light purple) | #9673a6 | | Document | #f5f5f5 (light gray) | #666666 | | Database | #e1d5e7 (light purple) | #9673a6 |
Connection Patterns
Standard Edge Style
ALWAYS use endArrow=classic;html=1; as the base edge style for flowchart connections.
For clean orthogonal routing, add edgeStyle=orthogonalEdgeStyle;:
Decision Branch Edges
Decision branches MUST carry labels. The value attribute on the edge mxCell renders as an inline label:
Multi-Way Branching
For decisions with more than two outcomes, use multiple labeled edges:
Layout Strategy
Top-to-Bottom (Default)
For top-to-bottom flow, use these coordinate guidelines:
- Vertical spacing: 40px between shapes (bottom of shape N to top of shape N+1).
- Horizontal center: Align the primary flow on a single x-axis center (e.g., x=200 for shapes of width 120-140).
- Decision branches: The "Yes" (or primary) path continues downward. The "No" (or alternate) path exits to the right.
- Merge points: When branches reconverge, place the merge target on the primary vertical axis.
Coordinate Calculation
For a top-to-bottom flowchart with center at x=260:
Shape 1 (terminator): x=200, y=40, width=120, height=40
Shape 2 (process): x=190, y=120, width=140, height=60
Shape 3 (decision): x=200, y=220, width=120, height=80
Shape 4a (Yes path): x=190, y=340, width=140, height=60
Shape 4b (No path): x=400, y=240, width=140, height=60
Shape 5 (terminator): x=200, y=440, width=120, height=40
Left-to-Right Alternative
For left-to-right flow, rotate the coordinate logic: x increases for sequential steps, y changes for branches.
Complete Example: Order Processing Flowchart
This example demonstrates:
- 12 shapes across 7 different shape types
- 2 decision points with labeled branches
- Consistent top-to-bottom flow
- Side exits for alternate paths (No branches go right)
- Reconvergence of branches back to the main flow
- Proper use of Data I/O, Document, Database, and Predefined Process shapes
Auto-Layout Hints
When the flowchart is rendered via the Draw.io editor or MCP server, these mxGraphModel attributes improve layout:
grid="1"andgridSize="10"— Shapes snap to a 10px grid for alignment.guides="1"— Snap guides appear when shapes align.pageWidth="1169"andpageHeight="827"— A4 landscape page size.
Checklist: Before Outputting a Flowchart
- Every decision uses
rhombusstyle. - Every decision edge has a
valuelabel. - All shapes include
whiteSpace=wrap;html=1;. - Terminators use
rounded=1;arcSize=50;. - Flow direction is consistent (no backtracking).
- Cell IDs are unique.
- Both structural cells (
id="0"andid="1") are present. - All edges have
sourceandtargetattributes pointing to valid cell IDs.
Cross-References
- XML fundamentals: See
drawio-core-xml-formatfor file structure and structural cells. - Style syntax: See
drawio-syntax-stylesfor the complete style property reference. - Connection details: See
drawio-syntax-connectionsfor edge routing and waypoints. - Geometry: See
drawio-core-geometryfor coordinate system and positioning.
Reference Links
- [Complete Reference](references/methods.md)
- [Working Examples](references/examples.md)
- [Anti-Patterns](references/anti-patterns.md)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Impertio-Studio
- Source: Impertio-Studio/Draw.io-Claude-Skill-Package
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.