Core documentation

6. Fail open on health, fail closed on policy

Specification metadata
adr: 6
title: Fail open on health, fail closed on policy
status: accepted
date: 2026-06-16

§Context

When a judge cannot evaluate, the host must decide whether to block. Blocking on every hiccup makes the gate a nuisance that gets disabled; never blocking makes it theatre. The existing hooks already learned the right asymmetry the hard way and encoded it by string-matching error text.

§Decision

The host decides from the error’s typed failClass and the call-site:

failClassinteractive editcommit / ship gate
health (could not run)fail open (warn, allow)fail closed (block)
contract (ran wrong / skew)fail closedfail closed
policy / inputfail closedfail closed

§Consequences