KB-1C5E
Codex Review Packet — RS4A-PATCH2 — 2026-06-21
7 min read Revision 1
rs4a-patch2codex-review-packetreview-requestregistration-holddesign-only2026-06-21
Codex Review Packet — RS4A-PATCH2 — 2026-06-21
For: Codex independent read-only review
Scope of this review: RS4A-PATCH2 only. Do not re-review RS4A or RS4A-PATCH1; PATCH2 is a scoped correction addendum that does not overwrite either. Confirm each residual defect R1–R5 is closed and that the package remains design-only / fail-closed.
Gate presented: REGISTRATION_HOLD · REGISTRATION_CAN_PROCEED = NO
Verdict requested to confirm: RS4A_PATCH2_READY_FOR_CODEX_REVIEW
1. What the re-review asked for vs what PATCH2 delivered
Your RS4A-PATCH1 re-review (NEED_RS4A_PATCH2) named five residual corrections. All are addressed without implementation, Owner creation, validator/registrar code, or DDL.
| Re-review item | Required | Delivered | Where |
|---|---|---|---|
| R1 | remove owner scope + authority policy from U1; bind them separately as authorization evidence | effect_identity = business effect only; new authorization_binding_digest bound to the attempt record (admission-required, not U1); changed authority ⇒ same effect ⇒ AUTHORIZATION_CHANGED_SAME_EFFECT_DUPLICATE; re-registration = explicit different operation |
PATCH2-02 |
| R2 | correct U3 so registration cannot create multiple current draft heads (or fail closed) | Option 1: UNIQUE(canonical_target_dot_code) WHERE lifecycle_role='current_head' across {draft, active}; {deprecated, retired} terminal; surface absent ⇒ fail closed before draft write |
PATCH2-03 |
| R3 | remove the success-audit contradiction from Phase 4 | Phase-4 success verifier: row + status='draft' + metadata-match + no-notify + verifier-ref + readback; audit clause deleted; failure-audit failure-only; success-log optional/future |
PATCH2-04 |
| R4 | one authoritative test registry; decide T-P6-3a/b count; recompute augmented total | PX2-001..015 registry, unique IDs, one semantic each; T-PX-* superseded; T-P6-3a/b = two cases (PX2-013/014); augmented total 111 |
PATCH2-05 |
| R5 | add changed-authority/same-effect + duplicate-draft-head tests | PX2-011 + PX2-012 (plus PX2-005/006/007/015) |
PATCH2-05 §2 |
2. Points to verify adversarially
- R1 is the crux. Confirm
effect_identitynow excludescanonical_owner_scopeANDcanonical_authority_policy_ref(and approval/owner/APR ids), so the same operation/code/artifact under a changed owner/policy yields the same U1 key and is refused asAUTHORIZATION_CHANGED_SAME_EFFECT_DUPLICATE— not a new registration. Confirmauthorization_binding_digestis required for admission but is not part of U1, and that intentional re-registration requires an explicit different operation (not authority drift). - R2. Confirm U3's predicate now covers
draft(not onlyactive), that registration writesdraftonly if nodraft/activehead exists, that activation is in-place (draft→active, no new head), and that the absent surface fails closed (HEAD_POLICY_UNRESOLVED) before any draft write. Confirm U3 ≠ U1 (duplicate different-artifact draft for one code is U3, not U1). - R3. Confirm the Phase-4 success verifier no longer references any audit; that
failure_audit_envelopeis failure-only (separate txn, append-only sink fail-closed); and thatsuccess_decision_log_envelopeis optional/future and never gates success. - R4 arithmetic. Independently recompute:
50 carried + (47 − 1 superseded T-P6-3) + 15 PX2 = 111. Confirm noPX2ID denotes two semantics and allT-PX-*are superseded. - R5. Confirm
PX2-011(changed-authority/same-effect) andPX2-012(duplicate draft head) exist as explicit cases. - No drift. Confirm zero mutation/DDL/Owner/APR/gate/registrar-code/validator-code; that C2/C4–C7/C9/C10/C13 and source fidelity / replace-not-wrap are not reopened; registration remains HOLD.
3. Live evidence used (read-only query_pg, db directus, 2026-06-21)
directus_fields.dot_tools.status.options.choices = {draft, active, deprecated, retired};validation=null,required=false— grounds U3 Option 1 (draft/active= current_head;deprecated/retired= terminal). (R2)dot_toolsconstraints:PRIMARY KEY (id),chk_dot_tier (A/B),chk_dot_coverage,chk_dot_trigger,fk_dot_tools_domain— no UNIQUE oncode, no status CHECK ⇒ U3 surfaceREQUIRED_NOT_PRESENT. (R2)dot_tools.statusdata:active291,published16 (out-of-vocab),null2,draft0 — head space unconstrained; vocabulary can drift. (R2/R3)governance_object_ownership= 0 rows;apr_action_types= 14, noregister_dot—authorization_binding_digestunresolvable ⇒AUTHORITY_BINDING_UNRESOLVED⇒ admission fail-closed. (R1)
4. Caveats PATCH2 itself flags (not hidden)
- Overall posture is still fail-closed: with owner=0 and no
register_dotpolicy,authorization_binding_digestcannot be resolved ⇒ no admission. R1 only relocates the failure attribution from "effect identity unstable" to "authorization binding unresolved at admission"; the registration outcome is unchanged (HOLD). - U3's enforcing surface (a
lifecycle_rolepartial-unique oncode) isREQUIRED_NOT_PRESENT; the policy is decided (Option 1), the constraint is a future Owner/design-gated surface. The status-domain CHECK (STATUS_DOMAIN_NOT_DB_ENFORCED) is a prerequisite for thelifecycle_rolepartition to be trustworthy. - Failure-audit sink immutability remains unproven (
AUDIT_SINK_UNAVAILABLE, G6); success requires no audit regardless. - Suite is designed, not executed; no PASS claimed;
T-P5-1(failure path) stays in the baseline 97,PX2-015covers the success path.
5. Requested decision
- If R1–R5 closures hold:
ACCEPT_RS4A_PATCH2⇒ the corrected RS4A contract (RS4A + PATCH1 + PATCH2) is accepted-as-corrected; single next step = G2 Owner-of-record decision; RS-VALIDATOR / per-block hardening / registrar replacement remain sequenced after and unopened. - If a further residual defect remains: name it for a scoped RS4A-PATCH3 on that item only; do not reopen the whole package.
Registration stays REGISTRATION_HOLD regardless. No implementation is authorized by this packet.