Skip to content

Verification rules

Source: docs/11-profiles-and-reports.md

2. Verification rule catalog

verify returns a Report of located findings. Each finding carries a stable kebab-case rule id and a severity. A rule with an "enabling contract" only fires when that contract is supplied (via a profile or CLI flag); structural rules always run.

A rule is an error (a machine-safety, geometric-validity or contract violation) unless it is a process/quality advisoryReport::ok() is true and the CLI exit code is 0 when the only findings are warnings.

Rule idSeverityTriggers when…Enabled by
finiteerrora quantity is NaN or infinitealways
travel-extrudeserrora travel (non-printing) move deposits materialalways
beaderroran extruding move has a non-positive bead width or heightalways
orientation-not-uniterrorthe toolframe orientation vector is not unit lengthalways
arc-radiuserroran arc's endpoint radius disagrees with its start radiusalways
boundserrora move leaves the build volumemachine.build_volume
max-flowerrorvolumetric flow exceeds the ceilingmaterial.max_volumetric_flow_mm3_s
speederroran extruding feedrate is outside the allowed rangemachine.feedrate_range
monotonic-zerrorZ decreases where it must be non-decreasingprocess.monotonic_z
cold-extrusionerrorextruding below the minimum nozzle temperaturematerial.min_nozzle_temperature_c
retraction-distanceerrora retraction distance exceeds the limitprocess.max_retraction_distance
retraction-speederrora retraction/unretraction speed exceeds the limitprocess.max_retraction_speed
travel-without-retractionwarninga travel run exceeds the allowed distance without a retractionprocess.max_travel_without_retraction
first-layer-heightwarningthe first-layer height is outside the allowed rangeprocess.first_layer_height_range
first-layer-speedwarningthe first-layer speed is outside the allowed rangeprocess.first_layer_speed_range
peak-accelerationerroran arc's centripetal acceleration exceeds the machine's max accelerationmachine.kinematics.max_acceleration_mm_s2
junction-velocitywarninga junction's velocity change exceeds the machine's square-corner velocitymachine.kinematics.max_junction_velocity_mm_s

The rule set is closed: a reader MAY treat an unknown rule id as a forward-compatible addition, but the engine only emits ids from this table. Adding a rule is a minor change; removing or re-typing one, or changing a rule's default severity, is a notable change called out in release notes.