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

ADR-0106: Ruling-gated lift increments are not claimed by their package's parity suite until their ruling lands — the affected gate certifies the landed surface, and the held REQs stay UNLINKED in the RTM

field value
Status Accepted — Accepted (ruling, Mohamed, 2026-10-18, on the adr0106 prompt, verbatim: "Hold the claims, gate green now")
Date 2026-10-18
Register factory (docs/adr, 4-digit ids)
Source docs/adr/0106-ruling-gated-lift-increments-are-not-claimed-by-their-parity-suite-until-their-ruling-lands.md — permalink at b38097466 (unchanged on master since that commit)
Wiki register entry ADR-0106 (wiki status: Accepted)

← ADR-0105 · ADR-0107 →

The record

Status: Accepted (ruling, Mohamed, 2026-10-18, on the adr0106 prompt, verbatim: "Hold the claims, gate green now") · Date: 2026-10-18

Context

ADR-0105 (Accepted, Mohamed: "Remediate the gate, then push") extends the affected-test gate to the packages/** layout. Its completion requires every landed package's parity suite to be green in its own venv. The remediation is green for session (57/57), knowledge_graph (143/143), governance (242/242); kernel and contracts are in flight; volks is 234/272 with 38 residual failures, of which 7 are the in-flight contracts rename (kernel importers, being retargeted now) and 31 are claims on the lander's deliberately STOPPED importers:

stopped importer (land-volks-record v11) increments frozen imports REQs held
agents.tool_executor VK-13, VK-16 (FULL) orchestrata_ultimate.tools.* (25 names) REQ-125-039/040/041/042
agents.volks.architect.volk VK-91 orchestrata_ultimate (bare) REQ-125-058/909
agents.volks.codedirector.volk VK-111 orchestrata_ultimate (bare) REQ-125-067/068/911
agents.volks.codedirector.implementation VK-106 (FULL) orchestrata_ultimate + scripts.serialize_codebase_ast REQ-125-060
verification.spec_completeness VK-143 (FULL) orchestrata_ultimate.openspec.requirements_parser REQ-125-957

These are the N-V3/N-V4 ruling input: the increments README marks the rows "ruling-gated N-V3", the tools/codetools family is un-designed, and the oracle filler flags their re-points ##UNRESOLVED##. AD-65 R3 rules their tools imports as injection seams; AD-91 forbids a landed module from importing frozen code. The parity suite nonetheless emits one test per claimed REQ for these units (vk_parity.py claims from the checklist), so the suite is RED on REQs that are, by documented ruling-gated design, not implemented. The same class also breaks transitively: the package __init__ re-export shims import the stopped .volk modules at module scope, so ~27 additional non-gated tests fail as cascades.

Precedent: the session generator claims only landed units (57/57 green); stopped/NEEDS rows are disposed in the census (AD-40 rulings), never claimed. The volks generator lacks the equivalent disposition.

Decision (proposed)

A package's parity suite claims only LANDED units. REQs whose increment is ruling-gated (N-V3/N-V4 tools family, ##UNRESOLVED## re-points) are HELD — no parity test is emitted for them, the generator records the hold with the increment id, and the REQs grade UNLINKED in the RTM until their ruling lands (the ruling itself re-claims them). Landed modules must not import held units: the __init__ re-export shims that reference the stopped volks classes are removed, so no landed surface breaks transitively. The affected gate then certifies exactly the landed surface, which is what ADR-0105's packet exists to do.

Alternatives rejected

Consequences

Provenance

Rulings cited

None.

Specs cited

None (or no spec page exists for the ones named).