RS5B-CLOSEOUT-PATCH2 04 — Single-Input/Single-Code XBI Corrections & New Fixtures — 2026-06-21
RS5B-CLOSEOUT-PATCH2 04 — Single-Input/Single-Code XBI Corrections & New Fixtures — 2026-06-21
Scope: close Codex blockers B3 (XBI-13 split), B4 (XBI-14 split), B5 (XBI-19 split), B6 (add successor-but-not-fail-closed fixture), B7 (add C2-authority-weakening fixture). Every fixture is one input · one expected code · one invariant tested · one reason no other code competes · PASS/seal/digest possible? No · result REJECTED. No fixture lists two outcomes.
Gate: REGISTRATION_HOLD · REGISTRATION_CAN_PROCEED = NO · 0 mutations. Design fixtures (DEFINED_NOT_EXECUTED), not executed tests. RUNTIME_MUTATION_REJECTED (RBP-0) short-circuits any fixture if a runtime write appears.
Supersession: PATCH1-04 XBI-13 (single, → RBP-4), XBI-14 (multi-outcome), XBI-19 (multi-outcome) are SUPERSEDED_BY_RS5B_CLOSEOUT_PATCH2 by the split fixtures below (file 08 M13/M14/M15). PATCH1 XBI-11/12/15/16/17/18/20–25 are retained unchanged.
1. XBI-13 split (closes B3) — hash deletion vs hash-payload erasure
The single PATCH1 XBI-13 ("drop a hash referenced by effect_identity/audit ⇒ ROLLBACK_ERASES_HISTORY") contradicted the precedence (deletion of a referenced identity is RBP-2, which precedes RBP-4). It is split into two single-code fixtures discriminated by does the hash identity still resolve? (file 03 §2).
XBI-13A — hash identity deleted
- Input (one): C4 rollback deletes the hash record/identity that an existing
effect_identityand audit reference; the identity no longer resolves. - Expected code (one):
ROLLBACK_DELETES_REFERENCED_IDENTITY(RBP-2). - Invariant tested (one): I1 stable identity (edge E3).
- Why no other code competes: the identity itself is gone (file 03 RBP-2 card); orphan (RBP-3) and erasure (RBP-4) are downstream consequences but RBP-2 is rank 2 and dominates. RBP-2 precedes RBP-3/RBP-4.
- PASS/seal/digest possible? No.
- Result: REJECTED.
XBI-13B — hash identity remains, evidence payload erased
- Input (one): C4 rollback keeps the hash record/identity resolvable (and its edge E3 resolves) but erases the stored hash payload / reproducibility data, so the historical artifact proof is unreadable.
- Expected code (one):
ROLLBACK_ERASES_HISTORY(RBP-4). - Invariant tested (one): I2 historical evidence / reproducibility (edge E3).
- Why no other code competes: identity resolves (not RBP-2) and the edge resolves (not RBP-3); the meaning is unchanged, only the payload is unreadable (not RBP-5). Only RBP-4 names unreadable evidence while identity+edge survive.
- PASS/seal/digest possible? No.
- Result: REJECTED.
Distinct-code proof: XBI-13A → RBP-2 and XBI-13B → RBP-4 because they differ on the single discriminator "does the identity resolve?" (No vs Yes). They are disjoint inputs with disjoint codes. (B3 closed; self-review A11, file 09.)
2. XBI-14 split (closes B4) — orphaned reference vs re-meant reference
The PATCH1 XBI-14 listed both ROLLBACK_ORPHANS_DEPENDENCY and ROLLBACK_CHANGES_HISTORICAL_SEMANTICS. Split by does the old C2 reference still resolve?
XBI-14A — policy ref disabled, old C2 reference cannot resolve
- Input (one): C5 rollback disables a referenced status/U3/audit policy so an old C2
*_policy_refcannot resolve (the reference dangles); the policy object is not deleted as an identity. - Expected code (one):
ROLLBACK_ORPHANS_DEPENDENCY(RBP-3). - Invariant tested (one): I3 reference integrity (edge E4).
- Why no other code competes: no identity is deleted (not RBP-2); the reference does not resolve at all, so there is no surviving meaning to change (not RBP-5); no payload is selectively erased while the edge resolves (not RBP-4). Only RBP-3 names a dangling edge.
- PASS/seal/digest possible? No.
- Result: REJECTED.
XBI-14B — old C2 reference resolves but policy meaning changed
- Input (one): C5 rollback keeps the old C2
*_policy_refresolvable, but the slot now points at a re-meant policy, so the old envelope silently means something different. - Expected code (one):
ROLLBACK_CHANGES_HISTORICAL_SEMANTICS(RBP-5). - Invariant tested (one): I4 semantic immutability (edges E4/E7).
- Why no other code competes: the reference resolves (not RBP-3) to a readable policy (not RBP-4) and no identity is deleted (not RBP-2); the fault is reinterpretation. Only RBP-5 names silent meaning change.
- PASS/seal/digest possible? No.
- Result: REJECTED.
Distinct-code proof: XBI-14A → RBP-3 (does not resolve) and XBI-14B → RBP-5 (resolves but re-meant) differ on "does the reference resolve?" RBP-3 (rank 3) precedes RBP-5 (rank 5), consistent with the inputs. (B4 closed; self-review A12, file 09.)
3. XBI-19 split (closes B5) — non-local rewrite vs meaning-changing rewrite
The PATCH1 XBI-19 described ROLLBACK_NOT_LOCAL but acknowledged RBP-5 when meaning changes. Split by does the silent cross-carrier rewrite change prior meaning?
XBI-19A — silent C2 reference rewrite, meaning preserved
- Input (one): a carrier rollback only "works" if C2 digest/envelope references for already-emitted effects are silently rewritten, but the rewrite does not change the prior envelope meaning (e.g. a pointer is re-homed to an identical-meaning record).
- Expected code (one):
ROLLBACK_NOT_LOCAL(RBP-10). - Invariant tested (one): I9 locality (the mega-registry tell).
- Why no other code competes: the producer's own surface is fine and prior meaning is unchanged (not RBP-5); no identity deleted (not RBP-2), no orphan (not RBP-3), no erasure (not RBP-4). The sole fault is the cross-carrier silent mutation requirement — only RBP-10 names non-locality.
- PASS/seal/digest possible? No.
- Result: REJECTED.
XBI-19B — silent C2 rewrite that changes prior envelope meaning
- Input (one): the carrier rollback silently rewrites C2 and the rewrite changes the meaning of a prior envelope.
- Expected code (one):
ROLLBACK_CHANGES_HISTORICAL_SEMANTICS(RBP-5). - Invariant tested (one): I4 semantic immutability.
- Why no other code competes: although the input is also non-local (RBP-10), RBP-5 (rank 5) precedes RBP-10 (rank 10); the dominant, earliest-matching harm is the silent meaning change. The fixture emits the single earliest code per the precedence, not two.
- PASS/seal/digest possible? No.
- Result: REJECTED.
Distinct-code proof: XBI-19A → RBP-10 (meaning preserved) and XBI-19B → RBP-5 (meaning changed) differ on "does the rewrite change prior meaning?" Each emits exactly one code by precedence. (B5 closed; self-review A13, file 09.)
4. New fixture XBI-26 (closes B6) — successor exists but retired value still admissible
- Input (one): a rollback retires value v and defines a successor v′ (so a successor/compatibility rule exists, Q holds), but the forward path still accepts v for a new act (new use of the retired value is not fail-closed).
- Expected code (one):
ROLLBACK_FORWARD_FAIL_CLOSED_VIOLATED(RBP-8). - Invariant tested (one): I6 forward fail-closed.
- Why no other code competes: a successor rule exists, so RBP-7 (
SUCCESSOR_RULE_ABSENT) does not fire (disjoint on Q, file 02 §3.2); identity/history/references/semantics/authority are intact (not RBP-2..RBP-6); the plan is auditable and local (not RBP-9/RBP-10). The unique fault — retired value still usable for new effects — is named only by RBP-8. - PASS/seal/digest possible? No. (This is the exact input that reached PASS under PATCH1; under PATCH2 it matches RBP-8 ⇒
¬RBP8false ⇒ PASS impossible, file 02 proof P-B2.) - Result: REJECTED.
5. New fixture XBI-27 (closes B7) — C2 successor schema weakens forward authorization
- Input (one): a C2 schema rollback introduces a successor
protocol_versionwhose schema drops or optionalizes a required authority reference for new packets — e.g. dropsfounding_authority_ref, makesapproval_modeoptional, or omits approval/quorum/principal refs whileapproval_mode = APPROVAL_USED(file 05 §2). - Expected code (one):
ROLLBACK_WEAKENS_AUTHORITY(RBP-6). - Invariant tested (one): I5 authority non-weakening — forward branch, now covering C2 (file 05).
- Why no other code competes: the successor schema exists (so RBP-7 does not fire) and old packets remain readable/resolvable under their original version (not RBP-2/RBP-3/RBP-4) with unchanged old meaning (not RBP-5); the retired schema is not the issue (not RBP-8). The fault is that the forward schema requires fewer authority inputs. RBP-6 (rank 6) is the earliest and only code that names authority weakening, and precedes RBP-7/RBP-8.
- PASS/seal/digest possible? No.
- Result: REJECTED.
5.1 XBI-27 sub-cases (each single-coded, all → RBP-6)
For self-review coverage (file 09 A8/A9/A10), the C2-weakening input has three governed sub-shapes; each is one input → the one code RBP-6:
- 27-a: successor C2 schema drops
founding_authority_ref⇒ROLLBACK_WEAKENS_AUTHORITY. - 27-b: successor C2 schema makes
approval_modeoptional ⇒ROLLBACK_WEAKENS_AUTHORITY. - 27-c: successor C2 schema omits approval/quorum/principal refs while
approval_mode = APPROVAL_USED⇒ROLLBACK_WEAKENS_AUTHORITY. All three share code RBP-6 because they are instances of one invariant violation (forward I5); they are distinct inputs but not competing codes — this is allowed (one input → one code; several inputs may map to the same code).
6. Consolidated XBI ledger after PATCH2
| Fixture | Input (one) | Code (one) | RBP | Status |
|---|---|---|---|---|
| XBI-11 | drop referenced vocabulary value | ROLLBACK_DELETES_REFERENCED_IDENTITY |
2 | retained |
| XBI-12 | delete referenced owner/scope row | ROLLBACK_DELETES_REFERENCED_IDENTITY |
2 | retained |
| XBI-13A | delete referenced hash identity | ROLLBACK_DELETES_REFERENCED_IDENTITY |
2 | PATCH2 (split) |
| XBI-13B | hash identity remains, payload erased | ROLLBACK_ERASES_HISTORY |
4 | PATCH2 (split) |
| XBI-14A | policy ref disabled, C2 ref cannot resolve | ROLLBACK_ORPHANS_DEPENDENCY |
3 | PATCH2 (split) |
| XBI-14B | C2 ref resolves but policy re-meant | ROLLBACK_CHANGES_HISTORICAL_SEMANTICS |
5 | PATCH2 (split) |
| XBI-15 | approval evidence erased | ROLLBACK_ERASES_HISTORY |
4 | retained |
| XBI-16 | old approval-required envelope weakened | ROLLBACK_WEAKENS_AUTHORITY |
6 | retained |
| XBI-17 | no successor rule | ROLLBACK_SUCCESSOR_RULE_ABSENT |
7 | retained |
| XBI-18 | no audit trail | ROLLBACK_AUDIT_TRAIL_ABSENT |
9 | retained (renum 8→9) |
| XBI-19A | silent C2 rewrite, meaning preserved | ROLLBACK_NOT_LOCAL |
10 | PATCH2 (split) |
| XBI-19B | silent C2 rewrite, meaning changed | ROLLBACK_CHANGES_HISTORICAL_SEMANTICS |
5 | PATCH2 (split) |
| XBI-20 | C7 omitted while APPROVAL_USED |
C7_REQUIRED_WHEN_APPROVAL_USED |
— | retained |
| XBI-21 | C7 demanded while APPROVAL_NOT_USED_BY_POLICY |
C7_OPTIONALITY_CONFLICT |
— | retained |
| XBI-22 | baseline acceptance → open P2 | BASELINE_ACCEPTANCE_NOT_P2_OPEN_AUTHORIZATION |
— | retained |
| XBI-23 | plan reviewed, no Chairman token | G2_EXECUTION_REQUIRES_SEPARATE_AUTHORIZATION |
— | retained |
| XBI-24 | generic/wrong-scope Chairman token | CHAIRMAN_AUTHORIZATION_SCOPE_MISMATCH |
— | retained |
| XBI-25 | P2-open plan omits rollback proof | P2_OPEN_GATE_ROLLBACK_PROOF_MISSING |
— | retained |
| XBI-26 | successor exists but retired value still admissible | ROLLBACK_FORWARD_FAIL_CLOSED_VIOLATED |
8 | PATCH2 (new, B6) |
| XBI-27 | C2 successor schema weakens forward authority | ROLLBACK_WEAKENS_AUTHORITY |
6 | PATCH2 (new, B7) |
Every row is single-input/single-code. The RBP-coded rows belong to the closed RBP set (file 02 §1); the dash-coded rows belong to the gate/C7 classifiers (files 05/06 of PATCH1), which compose with — not replace — the RBP set.
7. Oracle totality (classifier-scoped, unchanged posture)
The RBP oracle maps each declared rollback-plan input to exactly one code from the closed set { RUNTIME_MUTATION_REJECTED, ROLLBACK_PLAN_ABSENT, ROLLBACK_DELETES_REFERENCED_IDENTITY, ROLLBACK_ORPHANS_DEPENDENCY, ROLLBACK_ERASES_HISTORY, ROLLBACK_CHANGES_HISTORICAL_SEMANTICS, ROLLBACK_WEAKENS_AUTHORITY, ROLLBACK_SUCCESSOR_RULE_ABSENT, ROLLBACK_FORWARD_FAIL_CLOSED_VIOLATED, ROLLBACK_AUDIT_TRAIL_ABSENT, ROLLBACK_NOT_LOCAL, ROLLBACK_CONTRACT_VALID_FOR_REVIEW } (12 codes). Per caveat C2 this totality is classifier-scoped, not runtime-totality: arbitrary malformed serialization / parser failure / implementation behavior requires its own guards in a future authorized lane.
8. Self-result
All fixtures (XBI-11..XBI-27, including the splits) fail closed; none yields PASS/seal/digest/certificate/authority-token/registration-ready output. No destructive, orphaning, history-erasing, semantics-changing, authority-weakening, unsafe-successor, or non-local rollback can reach ROLLBACK_CONTRACT_VALID_FOR_REVIEW. These codes are classifier labels, not new runtime blockers (no carried blocker is resolved or added). Therefore this file does not stop at RS5B_CLOSEOUT_PATCH2_HOLD_XBI_NOT_SINGLE_CODE. REGISTRATION_HOLD retained.