arazzo-recommended is the default ruleset when vacuum lint detects an Arazzo 1.0 or 1.1 document.

vacuum lint workflows.yaml

It’s 16 rules. Nine of them prove the workflow is correct, one tells you when vacuum couldn’t check something, and six keep the workflow readable for the humans (and agents) who have to use it.

To explicitly extend it from your own ruleset, use vacuum:arazzo.

extends: [[vacuum:arazzo, recommended]]

arazzo-recommended and spectral:arazzo are accepted in place of vacuum:arazzo. All three select the same native rules.

Rules

Rule Severity Function
arazzo-structure error arazzoDocument
arazzo-duplicate-id error arazzoDocument
arazzo-reference error arazzoDocument
arazzo-parameter error arazzoDocument
arazzo-expression error arazzoDocument
arazzo-selector error arazzoDocument
arazzo-dependency error arazzoDocument
arazzo-input-schema error arazzoDocument
arazzo-source-type error arazzoDocument
arazzo-validation-incomplete warn arazzoDocument
arazzo-info-description warn truthy
arazzo-workflow-description warn truthy
arazzo-step-description warn truthy
arazzo-no-script-tags-in-markdown warn pattern
arazzo-info-summary hint truthy
arazzo-workflow-summary hint truthy

Two more rules, arazzo-advisory and arazzo-step-operationPath, are opinionated authoring advice. They only run in the all Arazzo rules ruleset, or with --hard-mode.

Example

Change a severity, switch a rule off, or add your own.

extends: [[vacuum:arazzo, recommended]]
rules:
  arazzo-validation-incomplete: error
  arazzo-info-summary: off

Run it with the normal --ruleset flag.

vacuum lint workflows.yaml --ruleset arazzo-rules.yaml

Start from nothing

Use off to disable everything, then enable rules one at a time.

extends: [[vacuum:arazzo, off]]
rules:
  arazzo-reference: true

Generate the ruleset

Want the whole thing as a file you can edit?

vacuum generate-ruleset arazzo-recommended my-arazzo-rules
RuleSet generated for 'arazzo-recommended', written to 'my-arazzo-rules-arazzo-recommended.yaml'

Coming from Spectral?

spectral:arazzo selects the rules on this page. It does not run Spectral’s JavaScript rule functions, so semantic rule IDs and messages are vacuum’s own. Read the migration notes.