Rulvar API reference / @rulvar/cli / strictExitCode
Function: strictExitCode()
function strictExitCode(
outcome,
base,
io): number;Defined in: packages/cli/src/drive.ts:411
--strict (the v1.40.0 improvement plan's completion contract): a settled ok run whose orchestration acceptance envelope reports a completion other than 'complete' exits nonzero, with the degraded reasons printed. Outcomes without an acceptance envelope (a workflow that never opted into orchestrate acceptance) and nonzero exit codes pass through unchanged, so the flag never masks the ordinary status exit and never bites a plain workflow.
Completion answers for the CHILDREN, never for the artifact, so strict also reads the deliverable verdict (RV2604): a deliverableAccepted: false exits nonzero even under a green completion, the row the twenty-fifth comparison run landed on when its child roster passed and its declared contract refused every synthesis. An ABSENT verdict is left alone, because nothing judged anything and a host that declares no contract is its own judge.
Completion is a MECHANICAL verdict, and the eighteenth comparison benchmark showed how easily completion: 'complete' reads as semantic green while the claim judge saw 40 of 144 citing sentences. So strict also reads the claim-coverage grade (RV1702) when the outcome carries a claim-consistency meta: 'judge-failed' (nothing was judged), 'judge-declined' (RV2508: the judge was refused admission and never dispatched, so nothing was judged either) and 'critical-uncovered' (declared claims went unverified) exit nonzero, because all three previously slipped through strict as green; 'partial' prints its counts to stderr and keeps the exit, because the bounded pass is the documented default and declaring critical anchors is the opt-in that makes the subset enforceable, and 'vacuous' (RV2508: the draft cited nothing, so the configured pass verified nothing) prints and keeps the exit too, because citing nothing breaks no contract the pass declares.
Parameters
| Parameter | Type |
|---|---|
outcome | RunOutcome<unknown> |
base | number |
io | CliIo |
Returns
number