Home / Projects / Orchestrata Ultimate / Decisions / ADR index / ADR-0015
ADR-0015: DoR is necessary-not-sufficient, with a human floor and forced-choice axes
| field | value |
|---|---|
| Status | Accepted |
| Date | 2026-07-24 |
| Register | factory (docs/adr, 4-digit ids) |
| Source | docs/adr/0015-dor-necessary-not-sufficient-forced-choice-axes.md — permalink at bdafa201a (unchanged on master since that commit) |
| Wiki register entry | ADR-0015 (wiki status: Accepted) |
The record
- Status: Accepted
- Date: 2026-07-24
- Spec: SPEC-033 §6
Context
Three defects in the Definition-of-Ready as specified in v0.3.0:
- A logical contradiction in the document. §6 opens by correctly asserting that completeness is not provable — then defines DoR as the conjunction of non-firing incompleteness detectors, which is a completeness judgement assembled from detectors its own premise says cannot yield one. Detectors are sound when they fire and uninformative when silent; using silence as the pass condition reads a verdict into an absence of evidence.
- C1's enumeration is free-recall. It asks a model to list "every assumption it must make". The dangerous assumptions are the unconscious ones — never made propositional, therefore not enumerable, not from dishonesty but from representation. Free recall also has no denominator: nothing says what a complete enumeration would have contained.
- C2's silence is anticorrelated with its usefulness — it is quiet exactly when the model's posterior is confidently concentrated on one (possibly wrong) reading, and noisy when the spec is merely vague, which the cheap lexical detectors already catch.
Decision
- DoR = no detector fires AND a positive, human-ratified floor. Detectors are labelled in the spec as necessary and not sufficient; the gate reports "no blocking defects found", never "complete".
- C1 becomes forced-choice over a standing axis checklist, replacing free recall. For every requirement the model must answer each axis explicitly — pinned / not-applicable-because / unpinned. Recognition survives where recall fails, and the checklist supplies the missing denominator. Provisional axes (to be replaced by the research-grounded catalogue): error semantics · ordering · absence/null · idempotency & retry · concurrency & atomicity · clock/timezone · encoding/locale · units & precision · boundary/empty · partial failure · authorisation default · pagination/limits · persistence/durability.
- The checklist grows from escaped defects — every defect that reaches production and traces to an unasked question becomes a new axis. This is the only mechanism that widens the blind spot over time.
- Known unknowns are first-class and blocking (Example Mapping's red card): an unresolved question is an artefact that blocks readiness, so omitting one is never cheaper than recording it.
- The blocking surface is bounded by ratified constants — max readings per requirement, a materiality criterion for C2 (a reading counts only if it differs on some AC-observable output), and risk-tiering with batch adjudication for C1 — ratified alongside the escalation constants, not invented by the implementer.
Alternatives rejected
- DoR as pure detector conjunction — the contradiction above.
- Free-recall enumeration alone — no denominator, blind to unconscious assumptions.
- Unbounded detectors — makes the human the bottleneck by construction, the same failure §1's edge budget exists to prevent; §6 must take its own medicine.
Consequences
- DoR becomes honest: it can refute readiness, never certify it.
- Forced-choice raises per-requirement cost but makes the output auditable — "not applicable because X" is reviewable; a silent omission is not.
- The axis checklist becomes a curated, versioned project asset with its own review cadence.
- Requires the detector-memory mechanism (ADR-0014), or the forced-choice cost repeats every change.
Provenance
Round-3 Opus (the "silence as verdict" contradiction, unconscious-assumption limit, anticorrelated C2 silence, forced-choice-over-recall proposal); Fable independently flagged the unbounded blocking surface and the missing ratified constants. The axis list is provisional pending the ambiguity-taxonomy research.
Related ADRs
Rulings cited
None.