Home / Projects / Orchestrata Ultimate / Decisions / ADR index / ADR-0020

ADR-0020: Amendment direction — syntactic sufficient condition, else the human

field value
Status Accepted
Date 2026-07-24
Register factory (docs/adr, 4-digit ids)
Source docs/adr/0020-amendment-direction-syntactic-then-human.md — permalink at bdafa201a (unchanged on master since that commit)
Wiki register entry ADR-0020 (wiki status: Accepted)

← ADR-0019 · ADR-0021 →

The record

Context

The asymmetric amendment rule (ADR-0009) is only as good as the classifier that decides direction. The proposed test — new_accepts ⊆ old_accepts evaluated over the accumulated fact ledger — is an empirical subset test over sampled history, presented as a logical entailment.

The failure is precise and permanent: a rulebase change that loosens only in fact-space the ledger has never visited classifies as a tightening and passes on quorum alone. And it is exactly the novel behaviours — the ones no prior commit exercised — that matter. The classifier's blind spot is the erosion channel it was introduced to close.

Decision

Direction is decided fail-closed, by a three-step cascade:

  1. Syntactic sufficient condition first. Where a change is provably tightening by construction — e.g. a rule body strictly extended by an additional conjunct, or a clause removed — classify as tightening with no ledger evidence required. This is a logical entailment, not a sample.
  2. Ledger differential as a screen only, explicitly labelled coverage-bounded. It can refute ("this newly accepts a known commit ⇒ loosening") but never establish tightening.
  3. Anything not provably tightening ⇒ human. Unknown direction is treated as loosening.

Alternatives rejected

Consequences

Provenance

Round-3 Fable (C-2: ledger-subset is evidence, not proof; fail-closed on direction) and Opus (#9: the novel-behaviour blind spot; syntactic sufficient condition where available). Converged independently.

Rulings cited

None.

Specs cited