Skip to content

Presets ​

  • plugin:@miragon/rules/recommended-for-modeling — for purely business/technical models, and for modeler applications that surface linting to their users. Layout hints only: bpmnlint's standard-size and the layout rules at warn, the naming/id rules off — a modeler is never blocked on execution-only conventions.
  • plugin:@miragon/rules/recommended-for-automation — for developers automating processes, locally and in CI, on models wired up to a Camunda engine. Every Miragon rule on but as a non-blocking warn (standard-size too), so ids and layout get flagged without failing the build.
  • plugin:@miragon/rules/all — every Miragon rule at error, engine-agnostic. The strict gate to opt into when you want findings to fail the build.

Severity per rule ​

Rulerecommended-for-modelinglayout hints onlyrecommended-for-automationeverything, non-blockingallfails the build
Naming
no-generated-idsIDs generated rather than chosen (Activity_0049ryx, StartEvent_1)offwarnerror
element-id-namingIDs that don't follow the type-prefix + case conventionoffwarnerror
Layout
flow-through-elementA sequence flow routed through an unrelated shape's bodywarnwarnerror
flow-connection-sideA sequence flow docked onto the wrong side of a shapewarnwarnerror
flow-target-alignmentA flow's target drawn off the row, sloping the main pathwarnwarnerror
flow-crossingTwo sequence flows whose drawn paths cross each otherwarnwarnerror
flow-orthogonalA sequence flow that runs diagonally instead of horizontal and verticalwarnwarnerror
Bundled from bpmnlint
bpmnlint/standard-sizeElements resized away from the BPMN standard sizewarnwarnoff

Only all reports at error, so only all can fail a build on a Miragon finding. Override any single rule in your own config:

jsonc
// .bpmnlintrc
{
  "extends": [
    "bpmnlint:recommended", // structural rules
    "plugin:@miragon/rules/recommended-for-modeling", // your preset
  ],
  "rules": {
    "@miragon/rules/no-generated-ids": "error", // raise one rule
    "@miragon/rules/flow-crossing": "off", // silence another
  },
}