Use when creating BPMN 2.0 process diagrams, workflow models, or business process maps in Draw.io. Prevents using wrong shapes for BPMN elements (e.g., rectangles for gateways) or mixing sequence and message flow styles. Covers events, activities, gateways, pools/lanes, and sequence vs message flows per BPMN 2.0 specification. Keywords: BPMN, business process, workflow, gateway, event, pool, lane, sequence flow, message flow, process diagram, model business process, workflow diagram, decision gateway.
Instrucciones de origen · Vista previa de solo lectura
name
drawio-impl-bpmn
description
Use when creating BPMN 2.0 process diagrams, workflow models, or business process maps in Draw.io. Prevents using wrong shapes for BPMN elements (e.g., rectangles for gateways) or mixing sequence and message flow styles. Covers events, activities, gateways, pools/lanes, and sequence vs message flows per BPMN 2.0 specification. Keywords: BPMN, business process, workflow, gateway, event, pool, lane, sequence flow, message flow, process diagram, model business process, workflow diagram, decision gateway.
license
MIT
compatibility
Designed for Claude Code. Requires Draw.io / diagrams.net (current).
metadata
{"author":"OpenAEC-Foundation","version":"1.0"}
Draw.io BPMN 2.0 Implementation
Purpose
This skill enables correct generation of BPMN 2.0 (Business Process Model and Notation) process diagrams in Draw.io mxGraph XML. It enforces BPMN 2.0 shape semantics and prevents the most common AI mistakes: using generic shapes instead of BPMN-specific shapes, mixing sequence flows with message flows, and omitting mandatory pool containers for inter-organizational processes.
Critical Rules (Memorize These)
ALWAYS use shape=mxgraph.bpmn.shape for events and gateways -- NEVER use generic ellipse for events or for gateways. BPMN shapes carry semantic meaning through and properties.
rhombus
outline
symbol
ALWAYS use dashed lines for message flows -- Message flows between pools MUST have dashed=1;endArrow=open;endFill=0;startArrow=oval;startFill=0;. NEVER use solid arrows for message flows.
ALWAYS use solid arrows for sequence flows -- Sequence flows within a pool MUST have endArrow=classic;html=1;. NEVER use dashed arrows for sequence flows.
NEVER connect elements in different pools with sequence flows -- Cross-pool communication ALWAYS uses message flows. Sequence flows are ONLY valid within a single pool.
ALWAYS wrap activities in a pool or lane -- Every BPMN diagram with more than one participant MUST use pool containers. NEVER place BPMN elements directly on the canvas without a pool when modelling inter-organizational processes.
ALWAYS use the correct gateway symbol -- Exclusive (X) uses symbol=exclusiveGw, Parallel (+) uses symbol=parallelGw, Inclusive (O) uses symbol=inclusiveGw, Event-based uses symbol=eventGw. NEVER use a blank diamond.
ALWAYS label gateway outgoing edges -- Every edge leaving a gateway MUST have a value attribute describing the condition (except for parallel gateways where all paths execute).
ALWAYS set perimeter=ellipsePerimeter on events and perimeter=rhombusPerimeter on gateways -- This ensures edges connect correctly to the shape boundary.
BPMN Element Categories
Events
Events are circles that represent something that happens during a process. They differ by position (start/intermediate/end) and type (none, message, timer, error, signal, terminate).
Pool and lane rules follow the same container hierarchy as drawio-impl-swimlanes. ALWAYS set container=1 and collapsible=0. ALWAYS use container-relative coordinates for children.
Every event uses shape=mxgraph.bpmn.shape with correct outline and symbol -- NOT generic ellipse.
Every gateway uses shape=mxgraph.bpmn.shape with correct symbol -- NOT generic rhombus.
Every event has perimeter=ellipsePerimeter and every gateway has perimeter=rhombusPerimeter.
Events are 40 x 40. Gateways are 50 x 50. Activities are 120 x 70.
Sequence flows use solid arrows (endArrow=classic). Message flows use dashed open arrows (dashed=1;endArrow=open;endFill=0;startArrow=oval;startFill=0;).
Cross-pool communication uses message flows ONLY -- NEVER sequence flows.
Every exclusive/inclusive gateway outgoing edge has a condition label.
All elements within a pool use container-relative coordinates.
Every pool and lane has container=1 and collapsible=0.
Both structural cells (id="0" and id="1") are present.
All cell IDs are unique and all edges have valid source and target.
Cross-References
Swimlane containers: See drawio-impl-swimlanes for pool/lane container hierarchy and coordinate rules.
XML fundamentals: See drawio-core-xml-format for file structure and structural cells.
Style syntax: See drawio-syntax-styles for the complete style property reference.
Connection details: See drawio-syntax-connections for edge routing and waypoints.
Geometry: See drawio-core-geometry for coordinate system and positioning.