RS5B-PATCH2-01 — Codex PATCH1 HOLD Closure Map — 2026-06-21
RS5B-PATCH2-01 — Codex PATCH1 HOLD Closure Map — 2026-06-21
Macro: RS5B-PATCH2 · Deliverable 01 of 6 · design-only · scoped correction.
Closes: the two residuals in Codex review NEED_RS5B_PATCH2 (HOLD).
Source of record: knowledge/dev/laws-new/reports/codex/codex-review-rs5b-patch1-effect-authorization-binding-correction-2026-06-21.md (read complete from AgentData KB; not from chat summary or local prose).
1. Codex verdict reconstructed (verbatim anchors)
- STATUS: HOLD · REVIEW VERDICT: NEED_RS5B_PATCH2
- Stop state:
RS5B_PATCH1_EFFECT_BINDING_CORRECTION_INCOMPLETE - Gate:
REGISTRATION_HOLD·REGISTRATION_CAN_PROCEED = NO - Single next step (Codex §11): "RS5B-PATCH2 limited to the operation-domain correction and BI-E1/BI-E6 predicate separation. Do not reopen the accepted digest field set or upstream contracts."
Codex accepted (must not be reopened): package completeness (§2), defect map / binding-direction fix (§3), authorization_binding_digest field set (§5 PASS_WITH_CAVEAT), impact scan coverage (§6), BI-E2–BI-E7 canonical outcomes (§7), KB-only/design-only scope (§8), and all ten §9 accepted points. Codex left two NEEDS_PATCH items (§4, §7) — these are the entire mandate of PATCH2.
2. Residual R1 — effect_identity hardcodes operation = "register_dot"
Codex §4 (verbatim anchor): "PATCH1-02 still defines operation = "register_dot". RS5B-05 is an authorization packet before founding-act writes, including scope and first-owner designation. Hardcoding the effect operation to register_dot makes the supposedly corrected contract registration-specific … and can bind a founding authorization to the wrong business act. PATCH2 must use a canonical governed operation appropriate to the requested effect. register_dot, owner designation, scope creation, and any other act are distinct operation values and therefore distinct effect identities. It must not infer a new effect from authority changes."
Codex §10 (rejected point 1): "Rejected: one fixed operation="register_dot" correctly identifies every RS5B founding/owner-designation effect."
Defect, stated mechanically:
- The general RS5B-05 founding packet must compute
effect_identityfor an act whose business operation is NOT necessarilyregister_dot. RS5B-PATCH1-02 §2pinsoperation = "register_dot"(inherited from the accepted-but-register_dot-specificRS4A-PATCH2-02 §1).RS5B-PATCH1-02 §5's replacement prose already uses a bare genericoperation, so the package is internally inconsistent: §5 generic, §2 hardcoded.
Deterministic contract rule (closure → see 02):
- Replace the hardcoded formula with a general one whose operation field is
canonical_operation= the governed action/effect type for the specific act. register_dotis retained ONLY as the example value for register_dot admission.- Founding owner-designation, scope creation, activation are distinct
canonical_operationvalues → distinct effect identities. - Authority changes (founding_authority_ref / approval / policy) do NOT create a new effect: a new effect requires a change to
canonical_operationor the business target. - The canonical-operation vocabulary is not yet present as runtime rows →
CANONICAL_OPERATION_VOCABULARY_REQUIRED_NOT_PRESENT; design examples only; invent no rows. effect_identitypurity is unchanged: authority/credential/execution fields (includingfounding_authority_ref) stay OUT ofeffect_identityand remain inauthorization_binding_digest.
R1 status: CLOSED_DESIGN_ONLY (see 02). Fail-closed; no PASS path created.
3. Residual R2 — BI-E1 / BI-E6 input domains overlap
Codex §7 (verbatim anchor): "BI-E1 and BI-E6 still overlap at the input-predicate level: BI-E1 describes an authorization binding carrying owner/approval evidence but no effect_identity; BI-E6 describes an authorization_binding_digest that omits effect_identity. The prose reserves APPROVAL_NOT_BOUND_TO_EFFECT_IDENTITY for BI-E1 and AUTHORIZATION_BINDING_MISSING_EFFECT for BI-E6, but it does not make the inputs mutually exclusive or define an evaluation order. One malformed packet can satisfy both descriptions … PATCH2 must distinguish the fixtures structurally … Alternatively define an authoritative precedence. Until then the self-check is not a deterministic executable oracle."
Codex §10 (rejected point 2): "Rejected: BI-E1 and BI-E6 are deterministic solely because prose assigns different codes; their current input domains overlap."
Defect, stated mechanically: both fixtures share the input predicate "the binding does not carry effect_identity", so a single input is contract-compliant under two different reject codes. That violates the one-input-one-canonical-rejection requirement.
Deterministic contract rule (closure → see 03):
- Make the two fixtures structurally disjoint by layering the evaluation:
- Layer 1 — digest-shape: BI-E6 fires iff the
authorization_binding_digestinput schema omitseffect_identity. Evaluated first. - Layer 2 — approval/evidence binding: BI-E1 is evaluated only if the digest schema includes
effect_identity, then fires iff approval evidence is not bound to that exacteffect_identity.
- Layer 1 — digest-shape: BI-E6 fires iff the
- Discriminator is a single binary predicate
P = (effect_identity ∈ digest input schema). The two domains partition the universe byPvs¬P— exhaustive and exclusive. No input matches both. - Defensive total precedence (in case predicates are ever treated as overlapping):
AUTHORIZATION_BINDING_MISSING_EFFECT < APPROVAL_NOT_BOUND_TO_EFFECT_IDENTITY.
R2 status: CLOSED_DESIGN_ONLY (see 03). Both branches fail-closed; no input → PASS/seal/digest.
4. Scope guard — what PATCH2 must NOT touch (carried from Codex §11)
- Do not reopen the accepted
authorization_binding_digestfield set (Codex §5) — only theeffect_identityit carries changes shape (operation → canonical_operation). - Do not reopen RS5A-PATCH4 (total quorum Q-order), G02 domain, bootstrap posture, handler, U1/U2/U3, or registration prerequisites.
- Do not change
effect_identitypurity (R1 generalizes operation/target, it does not admit authority into the hash). - Do not make
authorization_binding_digestomiteffect_identity(that omission is precisely BI-E6's fail-closed input).
5. Closure ledger
| residual | Codex section | closure doc | mechanism | status |
|---|---|---|---|---|
| R1 operation hardcode | §4, §10.1 | 02 | operation="register_dot" → general canonical_operation; register_dot = example only; vocabulary REQUIRED_NOT_PRESENT |
CLOSED_DESIGN_ONLY |
| R2 BI-E1/BI-E6 overlap | §7, §10.2 | 03 | two-layer disjoint domains (digest-shape before approval-binding) + total precedence | CLOSED_DESIGN_ONLY |
No unrelated residual added. REGISTRATION_HOLD retained · REGISTRATION_CAN_PROCEED = NO · 0 mutations.