KB-2A8A rev 2

RS5B-PATCH2-06 — Decision Packet — 2026-06-21

6 min read Revision 2
rs5b-patch2g2decision-packetverdictcanonical-operationbi-domain-separationregistration-hold2026-06-21

RS5B-PATCH2-06 — Decision Packet — 2026-06-21

Macro: RS5B-PATCH2 · Deliverable 06 of 6 · design-only · scoped correction.

Verdict: RS5B_PATCH2_READY_FOR_GPT_REVIEW (not forced). PASS level: design-review-ready / engineering-design only — NOT authority / implementation / runtime / registration PASS. Gate: REGISTRATION_HOLD retained · REGISTRATION_CAN_PROCEED = NO · 0 runtime mutations (KB-only).

1. One-screen summary

field value
Closes Codex NEED_RS5B_PATCH2 (HOLD) residuals R1 (operation hardcode) + R2 (BI-E1/BI-E6 overlap)
R1 fix effect_identity operation field operation="register_dot" → general canonical_operation; target generalized to (canonical_target_object_type, canonical_target_object_ref); register_dot = example only; vocabulary REQUIRED_NOT_PRESENT
R2 fix BI-E6 = Layer-1 digest-shape (schema omits effect → AUTHORIZATION_BINDING_MISSING_EFFECT); BI-E1 = Layer-2 approval-binding (schema has effect, approval not bound → APPROVAL_NOT_BOUND_TO_EFFECT_IDENTITY); disjoint by predicate P; precedence MISSING_EFFECT < NOT_BOUND
Purity unchanged — authority/credential/execution fields (incl. founding_authority_ref) stay OUT of effect_identity
Binding digest unchanged (Codex §5 PASS) — still REQUIRES effect_identity as input
Design-level labels introduced WRONG_CANONICAL_OPERATION_FOR_EFFECT, AUTHORITY_CHANGE_IS_NOT_NEW_EFFECT, CANONICAL_OPERATION_VOCABULARY_REQUIRED_NOT_PRESENT (clarifications, fail-closed, not new runtime blockers)
New runtime blocker none
Files 8 under rs5b-patch2/ (index + 01–06 + codex-review-packet) + 1 macro rollup
Registration gate REGISTRATION_HOLD; CAN_PROCEED = NO
Single next step GPT review RS5B-PATCH2 only → if accepted, Codex review. No P2, no runtime write, no registration

2. R1 closure (canonical operation)

The general founding effect_identity no longer hardcodes the business operation:

effect_identity = H(protocol_version, canonical_operation,
                    canonical_target_object_type, canonical_target_object_ref,
                    canonical_artifact_identity, canonical_artifact_hash)
  • canonical_operation = governed action/effect type for the specific act; register_dot is one value (used only for register_dot admission).
  • Founding owner-designation and scope creation are distinct operations → distinct effect identities; they MUST NOT be identified as register_dot.
  • Authority changes do not mint a new effect (purity preserved).
  • Canonical-operation vocabulary not present as runtime rows ⇒ CANONICAL_OPERATION_VOCABULARY_REQUIRED_NOT_PRESENT; design examples only; no rows invented.
  • RS4A-PATCH2-02 §1 register_dot formula remains valid as the register_dot specialization (PATCH2-02 §6).

Detail: PATCH2-02. Self-attestation: PATCH2-02 §8 (all six R1 checks pass).

3. R2 closure (BI-E1/BI-E6 domain separation)

  • BI-E6 (Layer 1, first): digest input schema omits effect_identityAUTHORIZATION_BINDING_MISSING_EFFECT.
  • BI-E1 (Layer 2, only if Layer 1 passed): digest schema includes effect_identity, but approval evidence not bound to that exact effect → APPROVAL_NOT_BOUND_TO_EFFECT_IDENTITY.
  • Disjoint by the binary predicate P = (effect_identity ∈ digest input schema): ¬P ⇒ BI-E6 only; P ⇒ BI-E1 only. No input matches both.
  • Secondary safeguard precedence: AUTHORIZATION_BINDING_MISSING_EFFECT < APPROVAL_NOT_BOUND_TO_EFFECT_IDENTITY.
  • Oracle is total: every input → exactly one outcome; no invalid input → PASS/seal/digest.

Detail: PATCH2-03. Updated BI-E1..BI-E7 + self-test: PATCH2-05 (all seven gates pass).

4. Bad-input self-check result

  • BI-E1..BI-E7: all FAIL/rejected, one canonical code each, no fail-open (PATCH2-05 §1–§2).
  • OP-BI-1..4 (R1 operation domain): all fail-closed (PATCH2-02 §5).
  • Codex-style 7-question self-test: all pass (PATCH2-05 §3) — no HOLD_OPERATION_STILL_HARDCODED, no HOLD_BI_DOMAIN_STILL_OVERLAPS, no REJECT_RUNTIME_MUTATION, no REJECT_AUTHORITY_OVERCLAIM.

5. Carried blockers (unchanged — none resolved, none added)

Carried from RS5B / RS5B-PATCH1, all still open: 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. The three design-level labels in §1 are clarifications of the canonical-operation contract, not new gaps. RS5A-PATCH4 CQ01–CQ09 caveat carried; no change to quorum/G02/total-Q-order.

6. Scope / non-overclaim attestation

PATCH2 performed no runtime mutation, DDL/DML, Owner/scope/principal/APR/approval/register_dot/handler creation, registrar/validator patch, RS-VALIDATOR, registration, or activation. It did not open a P2 lane, Chairman execution, RS5B final acceptance, or registration readiness. It did not change effect_identity purity, and did not make authorization_binding_digest omit effect_identity. Design PASS is not promoted to authority/runtime/registration PASS.

7. Single next step

GPT review of RS5B-PATCH2 only. On accept → Codex review; the corrected canonical-operation formula and the layered BI-E1/BI-E6 domains carry into RS5B. Residual ⇒ RS5B-PATCH3. No P2, no runtime write, no registration in this lane.

REGISTRATION_HOLD retained · CAN_PROCEED = NO · 0 mutations.