RS5B-CLOSEOUT-PATCH2 01 — Source Register & Codex HOLD Reconstruction — 2026-06-21
RS5B-CLOSEOUT-PATCH2 01 — Source Register & Codex HOLD Reconstruction — 2026-06-21
Evidence tier: AgentData KB direct read. No chat summary, memory, local prose, or unread report was used as proof. The controlling Codex HOLD report and every PATCH1 package file were read in full (truncated=false) in the main process via mcp__agent-data__batch_read (full=true); per-file metadata is recorded verbatim from the AgentData JSON.
Gate: REGISTRATION_HOLD · REGISTRATION_CAN_PROCEED = NO · 0 mutations (KB-only, design-only, no live runtime read).
Scope: narrow Job-B oracle/predicate/XBI/C2-I5/gate-wording correction + LEGO #1 Assembly Readiness seal. Job A is not reopened (Codex ACCEPT_RS5B_PATCH2 / closeout §3 carried). The accepted dependency-safe carrier patterns, the 8-edge dependency graph, the C7 approval_mode rule, and invariants I1–I10 are not weakened — only clarified where predicate consistency requires it.
0. Codex-mode reconstruction (mandatory posture)
Recorded before any patch file was authored, per the controlling instruction §0.3. If this section were missing, the only allowed stop state would be RS5B_CLOSEOUT_PATCH2_HOLD_CODEX_MODE_RECONSTRUCTION_MISSING.
- I do not trust
PATCH1 READY. - I reconstruct the predicate system from the governed KB files, not from the prior verdict.
- I test PASS reachability: PASS must be exactly "no reject predicate matches," and must include
¬RBP1. - I test every bad input that Codex would use: plan absent, referenced identity deleted, hash identity deleted, hash payload erased, policy ref orphaned, policy meaning changed, successor-present-but-not-fail-closed, C2 schema authority weakening, silent C2 rewrite, hash deletion under precedence.
- I test successor-present-but-not-fail-closed: a plan can have a successor rule and still let the retired value be used for new acts — that must be rejected, not PASS.
- I test C2 schema authority weakening: a successor schema that drops/optionalizes a required authority reference must be rejected.
- I test hash deletion under precedence: deleting a referenced hash identity must emit the earliest matching code, not a convenient later one.
- I split every multi-variant XBI into single-input / single-code fixtures.
- I test Gate A / Gate B wording for the "Neither gate opens P2" contradiction.
- I only report ready if invalid input cannot reach PASS.
Operational consequence carried into every PATCH2 file: the oracle is reported complete only when (a) the PASS condition is the full conjunction of all reject-predicate negations, (b) I6 has its own reject predicate, (c) every XBI is single-input/single-code under a precedence the fixtures obey, (d) C2 schema evolution cannot weaken forward authority, and (e) no sentence both denies and asserts that a satisfied Gate B opens a named lane. Writing "oracle" is not proof; proving invalid inputs cannot PASS is the proof obligation.
Engineering PASS ≠ authority PASS. Contract PASS ≠ runtime PASS. Oracle PASS (ROLLBACK_CONTRACT_VALID_FOR_REVIEW) ≠ runtime permission. Readiness-for-plan ≠ readiness-to-write.
1. Controlling source — the official Codex HOLD report
| Path | Revision | content_length | truncated | What it proves (controlling) |
|---|---|---|---|---|
knowledge/dev/laws-new/reports/codex/codex-review-rs5b-closeout-patch1-rollback-gate-split-2026-06-21.md |
1 | 14085 | false | STATUS: HOLD · VERDICT: REJECT_ROLLBACK_VALIDITY_ORACLE_INCOMPLETE · stop RS5B_CLOSEOUT_PATCH1_HOLD_ORACLE_PRECEDENCE_I6_AND_GATE_WORDING_REQUIRED · REGISTRATION_HOLD · REGISTRATION_CAN_PROCEED = NO · P2 CLOSED · NOT_OPENED · NOT_AUTHORIZED. Job A not reopened (§2 PASS). PATCH1 structural fixes accepted; the rollback-validity oracle is not yet deterministic. |
2. Codex blocker reconstruction (B1–B9) — verbatim anchors
Reconstructed directly from the controlling Codex sections, not from any summary. Each blocker is the exact defect PATCH2 must close.
| # | Codex § | Blocker (reconstructed) | What was wrong | PATCH2 closure obligation |
|---|---|---|---|---|
| B1 | §6.1, §12.1 | PASS formula omits ¬RBP1. |
PATCH1-04 wrote PASS ⇔ ¬RBP0 ∧ ¬RBP2 ∧ … ∧ ¬RBP9 and said RBP-1 (plan absent) is "not a conjunct of PASS." This contradicts the ordered classifier and the necessary-not-sufficient claim: if ROLLBACK_PLAN_ABSENT matches, PASS must be impossible. |
Controlling formula PASS ⇔ ¬RBP0 ∧ ¬RBP1 ∧ … ∧ ¬RBP10 = "no reject predicate matches" (file 02). |
| B2 | §6.2, §12.2 | I6 has no complete reject predicate. | I6 (new use of a retired value must fail closed) was "enforced jointly by RBP-7 and per-carrier postconditions," but RBP-7 only tests whether a successor rule is absent. A plan can have a successor rule and still admit the retired value, preserve identity/history/refs, avoid weakening, be audited and local — and reach PASS while violating I6. | Add explicit ROLLBACK_FORWARD_FAIL_CLOSED_VIOLATED (RBP-8); add a fixture proving "successor exists but retired value remains admissible" cannot PASS (file 02, file 04 XBI-26). |
| B3 | §6.3, §12.3 | XBI-13 contradicts precedence. | XBI-13 drops a hash record referenced by effect_identity/audit but assigned ROLLBACK_ERASES_HISTORY (RBP-4). The deletion of a referenced identity matches RBP-2; if not classed as identity, it dangles edge E3 → RBP-3. Both precede RBP-4. A sentence cannot override the authoritative precedence. PATCH1-08 A3 repeats the error. |
Make RBP-2/RBP-3/RBP-4 mutually precise; split XBI-13 into 13A (identity deleted → RBP-2) and 13B (payload erased → RBP-4) (file 03, file 04). |
| B4 | §6.4, §12.4 | XBI-14 multi-outcome. | XBI-14 listed both ROLLBACK_ORPHANS_DEPENDENCY and ROLLBACK_CHANGES_HISTORICAL_SEMANTICS, then narrowed the input. One fixture = one input = one code. |
Split into 14A (cannot resolve → RBP-3) and 14B (resolves but re-meant → RBP-5) (file 04). |
| B5 | §6.4, §12.4 | XBI-19 multi-outcome. | XBI-19 described ROLLBACK_NOT_LOCAL but acknowledged an earlier RBP-5 result when meaning changes. |
Split into 19A (silent C2 rewrite, meaning preserved → RBP-10) and 19B (silent C2 rewrite + meaning changed → RBP-5) (file 04). |
| B6 | §7.3 | Missing fixture: successor exists but retired value still admissible. | No fixture covered a present successor rule that fails to block new use of the retired value. | XBI-26 → ROLLBACK_FORWARD_FAIL_CLOSED_VIOLATED (RBP-8) (file 04). |
| B7 | §7.4 | Missing fixture: C2 successor schema weakens authority requirements. | No fixture covered a C2 successor schema that drops/optionalizes forward authorization requirements. | XBI-27 → ROLLBACK_WEAKENS_AUTHORITY (RBP-6) (file 04, file 05). |
| B8 | §4, §12.5 | I5 does not cover C2 schema evolution. | PATCH1-02 §4 marked I5 (authority non-weakening) "not applicable" to C2 and discharged it "transitively." Unsafe: C2 defines which authority references are required in authorization_binding_digest; a successor C2 schema can preserve old packets while weakening required fields for new packets. |
I5 covers C2 wherever schema evolution can weaken required authorization inputs; coverage matrix corrected; RBP-6 fires on forward C2 weakening (file 05). |
| B9 | §9, §12.6 | Gate B wording contradiction. | PATCH1-06 says "Neither gate opens P2," while Gate B is explicitly the P2-open gate emitting P2_OPEN_AUTHORIZED_FOR_NAMED_CARRIER_PLAN_ONLY. Both cannot be true. |
Seal the wording: this package/Gate A do not open P2; a future, actually satisfied Gate B may authorize opening the named lane only; never registration/activation/register_dot/P3/runtime; forbid the bare sentence "Neither gate opens P2" (file 06). |
Codex §13 lists exactly these eight asks (B8 and B9 are §13.6 and §13.7); B1–B7 expand §13.1–§13.5. PATCH2 closes all nine reconstructed blockers and adds the LEGO #1 Assembly Readiness seal (instruction §1/§3.6). No other Codex residual exists; §2/§5/§8/§10 are PASS / PASS_WITH_CAVEAT and are not reopened.
3. PATCH1 package under correction (all read full, truncated=false)
| Path | Revision | content_length | truncated | What PATCH2 touches |
|---|---|---|---|---|
…/rs5b-closeout-patch1/01-source-register-and-codex-hold-reconstruction-2026-06-21.md |
1 | 13026 | false | Reconstruction baseline. Not touched. |
…/rs5b-closeout-patch1/02-dependency-safe-rollback-contract-c1-c7-2026-06-21.md |
1 | 11089 | false | I1–I10 retained; §4 coverage-matrix I5×C2 cell + transitive-discharge parenthetical superseded (B8, file 05). |
…/rs5b-closeout-patch1/03-carrier-dependency-map-and-reference-preservation-2026-06-21.md |
1 | 10450 | false | Edges E1–E8 retained; E3 bad-input note refined (B3, file 03/04). Graph not reopened. |
…/rs5b-closeout-patch1/04-rollback-validity-oracle-and-new-xbi-fixtures-2026-06-21.md |
1 | 16837 | false | PASS formula, RBP numbering, XBI-13/14/19 superseded; XBI-26/27 added (B1–B7, files 02/03/04). |
…/rs5b-closeout-patch1/05-c7-conditionality-policy-mode-resolution-2026-06-21.md |
1 | 5804 | false | C7 approval_mode rule not reopened (Codex §8 PASS_WITH_CAVEAT). |
…/rs5b-closeout-patch1/06-two-gate-sequencing-baseline-vs-p2-open-2026-06-21.md |
1 | 6568 | false | "Neither gate opens P2" sentence(s) superseded (B9, file 06). Gate inputs/outputs not reopened. |
…/rs5b-closeout-patch1/07-impact-map-and-superseded-closeout-wording-2026-06-21.md |
1 | 8696 | false | M7 (oracle) extended (file 08). |
…/rs5b-closeout-patch1/08-codex-style-adversarial-self-review-2026-06-21.md |
1 | 9116 | false | A3 result (hash deletion → RBP-4) superseded to RBP-2/RBP-4 split (B3, file 09). |
…/rs5b-closeout-patch1/09-decision-packet-2026-06-21.md |
1 | 8723 | false | Verdict superseded by Codex HOLD; PATCH2 is the response. |
…/rs5b-closeout-patch1/index-…-2026-06-21.md |
1 | 4117 | false | Index; PATCH2 index is additive. |
…/rs5b-closeout-patch1/codex-review-packet-…-2026-06-21.md |
1 | 5815 | false | Review packet; PATCH2 packet is additive. |
…/reports/macro-rs5b-closeout-patch1-rollback-gate-split-2026-06-21.md |
1 | 8464 | false | Rollup; PATCH2 rollup is additive. |
4. Additivity proof
Before this package, direct list_documents on knowledge/dev/laws-new/reports/rs5b-closeout-patch2/ returned count=0. PATCH2 is therefore strictly additive: it overwrites no PATCH1, closeout, Codex, RS5B, or upstream file. Every supersession recorded here (file 08 impact map) is a wording/pointer correction carried additively; the original rev-1 PATCH1 files are not mutated. Job A is not reopened; I1–I10 are not weakened; no carrier is merged; no mega-registry/mega-graph/mega-birth pipeline is introduced.
5. Carried blockers (UNCHANGED)
G2–G7 + STATUS_DOMAIN_NOT_DB_ENFORCED + U3_PARTIAL_UNIQUE_SURFACE_ABSENT + OWNER_MINT_PATH_FAIL_CLOSED + QUORUM_EFFECT_BINDING_INSUFFICIENT + QUORUM_APPROVER_IDENTITY_UNVERIFIED + BOOTSTRAP_AUTHORITY_UNRESOLVED + CANONICAL_PRINCIPAL_SURFACE_REQUIRED_NOT_PRESENT. No new blocker, no new reject code — ROLLBACK_FORWARD_FAIL_CLOSED_VIOLATED is a new classifier label (oracle code), not a runtime blocker, and resolves nothing.