Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

orion-server clippy

Advisory checks beyond lint, said only when certain: the cargo clippy to lint’s cargo check. The rules, each with the proof it rests on and when it stays silent, are on Advisory checks. No configuration, no suppression.

Synopsis

orion-server clippy <dir | file> [--deny-warnings] [--format text|json]
                    [--definitions DIR] [--requires-channel NAME]... [--requires-connector NAME]...
orion-server clippy --list
orion-server clippy --explain <rule>

Description

Needs no database or server. It takes the serving config with -c for the two rules that read [vars] and [secrets].

lint runs first. Its findings are re-reported, and when it reports an error the rules do not run — the summary says fix those first. Diagnostics go to stderr in lint’s line format. They carry a file:line:col: prefix wherever the source file has the same coordinates as the compiled form (no use, no $from). The one-line summary goes to stdout.

Options

FlagDescription
<dir> / <file>A directory is checked as a set (every rule); a single file as a set of one — the set-scoped rules have nothing to compare it with.
--deny-warningsExit non-zero on warnings too.
--format jsonOne JSON object per diagnostic on stdout — level, rule, entity, file, path, line, column, message, remedy — and nothing else, for editors and pipelines.
--listEvery rule with its level, scope and summary.
--explain RULEOne rule’s rationale, its proof and when it is silent.
--definitions, --requires-*, --plugin-dir, --model-dirAs lint takes them. A plugin function’s template_at fields are analysed as the server evaluates them once its manifest is in the set; a model manifest is what the lint gate checks literal model_infer references against.
-c FILE (global)The serving instance’s config. Only a config you name counts: the defaults say nothing about [vars] or [secrets].

Returns

Exit codeMeaning
0No error. Warnings may have been printed.
1A lint error, a deny-level rule, or a warning under --deny-warnings.
2The path is not a set, or a usage error.

Examples

$ orion-server clippy ./definitions
definitions/workflows/auth-login.json: warning: [perf.redundant_step_condition] workflow 'Auth - login' at tasks[15].tasks[0].condition: 2 consecutive steps (`send_otp` and `when_unverified`) repeat this condition, and none of them writes what it reads; it is evaluated 2 times for one answer
        fix: wrap them in a task group carrying the condition once: { "id": …, "condition": …, "tasks": [ … ] }
note: [correctness.metadata_var_undeclared] skipped — needs the serving config (-c <config.toml>)
./definitions: 59 workflow(s), 62 channel(s), 9 connector(s) — 0 error(s), 1 warning(s) from 17 rule(s)
orion-server -c config.toml clippy ./definitions --deny-warnings

Last verified 14 September 2026