alignmentFailClosed
alignmentFailClosed(
cause,options?):AlignmentDecision
Defined in: packages/core/src/core/shell/alignment.ts:857
[[EXT-133]] — the fail-closed decision for a SPECIFIC cause, carrying the provider’s own account when there was one.
What this changes is what a human is told, and nothing else. kind stays escalate and the
caller contract above is untouched: the classifier’s action still stands on every one of these.
The prefix is kept verbatim at the head of every reason, because isAlignmentFailClosed —
and therefore both call sites’ entire behaviour — keys on that prefix and not on the prose after
it, which is what makes varying the tail safe.
Why the tail must vary. A checker that could not be REACHED and a checker that looked at the command and DECLINED are different events with opposite remedies — one is a broken configuration the user can fix, the other is the gate working — and ALIGNMENT_FAIL_CLOSED rendered all four causes, plus every provider rejection, as one sentence that named none of them. That is the silence [[EXT-133]] was filed about: the failure is invisible because it fails in the SAFE direction, so it is read as a check that declined rather than one that never ran, and the natural response to a gate that seems to decline everything is to turn the rung down.
Deliberately mirrors failClosedVerdict in ./rater.js, down to the shape of the table, because
the two gates fail in the same four ways and a reader comparing an archive’s rater and checker
records should not have to learn two vocabularies.
Parameters
Section titled “Parameters”options?
Section titled “options?”failure?
Section titled “failure?”timeoutMs?
Section titled “timeoutMs?”number