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

Advisory checks (clippy)

The rules orion-server clippy runs beyond lint. Each has its own page with the proof it rests on and where it stays silent.

orion-server clippy runs lint’s gate over a definition set, then a fixed set of rules. They cover things lint accepts but an author would want to know. A workflow whose condition can never match, steps that can never run, a call cycle that always fails. Work the engine does for nothing, and things the set says three times that it could say once.

It has no configuration and no suppression. That is what sets the bar. An author cannot silence a wrong rule, so every rule here fires only when its finding is certain. Each one states the proof it rests on and the shapes on which it stays silent. orion-server clippy --explain <rule> prints both. Silence is never wrong; a wrong warning is.

The command, its flags and exit codes are on the CLI reference.

RuleLevelScopeSummary
correctness.workflow_never_matchesdenyworkflowthe workflow-level condition is false for every request, so the workflow never runs
correctness.task_never_runswarnworkflowa step’s condition folds to a constant false, so the step never runs
correctness.unreachable_stepdenyworkflowsteps after an unconditional terminal step can never run
correctness.unconditional_call_cycledenysetchannel_call edges that are all unconditional form a cycle, so every request into it fails at the depth limit
correctness.payload_vardenyworkflowa read of payload — which is not in the data context — is always null
correctness.mapping_overwrittenwarnworkflowtwo mappings in one map write the same path with nothing reading it in between
correctness.metadata_var_undeclareddenyworkflowa read of metadata.vars.<name> that the config given with -c does not declare
correctness.secret_undeclareddenyseta {“secret”: name} that the config given with -c does not declare
correctness.response_cookie_typewarnworkflowa response cookie attribute is a literal of the wrong type, so the cookie is always dropped
correctness.unknown_input_keydenyworkflowa task input key the function does not declare, which is silently ignored
correctness.unordered_pagedenyworkflowa read that skips rows without ordering them, so the page it skips is undefined
perf.parse_result_overwrittenwarnworkflowa parse/publish target is overwritten by a later unconditional task before anything reads it
perf.redundant_step_conditionwarnworkflowconsecutive steps repeat one condition that none of them can change; a task group evaluates it once
perf.group_condition_repeatedwarnworkflowa group member repeats the group’s own condition, which was already true on entry
duplication.fragment_availablewarnseta run of steps is exactly what an existing fragment expands to; a use would say it once
duplication.repeated_task_sequencewarnsetthe same run of two or more steps appears three or more times across the set
duplication.repeated_valuewarnsetthe same object literal appears three or more times across the set
style.terminal_on_last_stepwarnworkflowterminal: true on the last top-level step is a no-op
PageHolds
Levelsdeny and warn, what each does to the exit code, and how a rule is promoted.
Where certainty comes fromthe proof sources a rule may rest on, and nothing else.
What is not a rule, and whythe candidates turned down, each with its reason.
Adding a rulewhat a new rule must ship with, and the tests that check it.

Last verified 14 September 2026