Codex Review — RS2 Registration-Path Authority-Trust Reconciliation — 2026-06-20
Codex Review — RS2 Registration-Path Authority-Trust Reconciliation — 2026-06-20
STATUS: HOLD
VERDICT: NEED_RS2_PATCH
Registration gate: REGISTRATION_HOLD · REGISTRATION_CAN_PROCEED = NO
Next-macro gate: RS2_PATCH_REQUIRED_BEFORE_RS3
Runtime observation: NO_CODEX_LIVE_READ
Class: independent read-only review · non-enacting · non-authorizing · no implementation · no runtime mutation
Date: 2026-06-20
1. Verdict
RS2 is strong on evidence labeling, RISK-BYPASS decomposition, trust-interface framing, and keeping registration closed. It is not yet acceptable as the registration proof-obligation baseline because its central transaction model has material contradictions and omits an existing registrar candidate.
The required outcome is one substantive RS2 patch, not a set of cosmetic edits. RS3 must not start from the current transaction map.
2. Source Register
| Source | Revision / length | Read status | Evidence tier | Use / caveat |
|---|---|---|---|---|
| RS2 official report | rev1 / 53,927 | FULL_READ | REVIEW TARGET | Main target |
| Codex RS1/PATCH1 gate | rev1 / 17,335 | FULL_READ | PRIOR GATE | ACCEPT_RS1_PATCH1_AND_PROCEED_TO_RS2; registration HOLD |
| RS1 official report | rev1 / 46,040 | FULL_READ | SECONDARY_REPORT | Blocker and reuse baseline |
| RS1 PATCH1 | rev1 / 23,725 | FULL_READ | SECONDARY_REPORT | Corrected source coverage |
| Operating Rules | v7.58 | READ | GOVERNING SSOT | Assembly First, DOT-only, no bypass |
| Constitution | v4.6.3 | READ | ENACTED | PG-first, DOT pair, fail-closed |
| laws-new matrix SSOT set | rev33/rev5/rev8/rev14 | READ / COVERAGE_READ | PRIMARY_LAWS_NEW | Temporary-first, reuse-first, no parallel governance |
| LAW_READING_INDEX | rev2 | COVERAGE_READ | PRIMARY_NEWLAWS POINTER | Map, not decree; two-corpus discipline |
| DOT/Collections handbooks | rev11/rev11 | TARGETED_READ | PRIMARY_HANDBOOK | DOT-only and no disposable workbench |
| Macro-9B contract/guards/validator/evidence | rev2/rev2/rev2/rev1 | READ / source-inspected | PRIMARY_CONTRACT | Unregistered; N07/N12/N16/N22 open |
| Macro-9B1 admission | rev9 | READ | PRIMARY_CONTRACT | KB admission is not runtime registration |
| P0/P1 containment records, 2026-06-06 | rev1 selected records | FULL_READ | SECONDARY_RUNTIME_REPORT | Supports INSERT and apply-time containment |
| P1 apply-time quorum re-proof | rev1 | READ | SECONDARY_RUNTIME_REPORT | quorum_passed applied before NULL early return |
| RP DOT registration staged record | rev1 / 3,069 | FULL_READ | SECONDARY_RUNTIME_REPORT | Identifies existing dot-dot-register registrar and its limitations |
| Điều 32/35 compatibility notes | rev1/rev1 | READ | PRIMARY_NEWLAWS NOTE | Documentary conflict and production-readiness HOLD |
| 142 S142b primary authorization | — | SOURCE_NOT_READ | NONE | “Sanctioned” not accepted as proven |
| Claude Macro-AB | — | SOURCE_NOT_READ | NONE | Not used |
RS2 reports fresh read-only runtime observations. This Codex session had no callable live DB/runtime tool, so those observations are treated as RS2 packet evidence, not primary Codex observation.
3. Accepted RS2 Points
- RS2 read and retained the prior gate: registration remains HOLD.
- Evidence provenance labels distinguish
RS2_LIVE_READ,RS1_REPORTED,CODEX_REPORTED, and secondary reports. fn_auto_approve_addcontainment andauto_apply_approvalquorum gating are credibly supported at packet level and corroborated by P0/P1 records.quorum_passedis described as fail-closed on NULL action/risk, reject presence, self-approval, and insufficient quorum.- The NULL-mapping behavior in
fn_apr_quorum_checkis an approval-state integrity defect, not by itself proof of a current applied-transition bypass. approval_requests.action DEFAULT 'add'remains a hazardous default even though the old INSERT auto-approval effect is reported contained.- The 18 auto-apply rows are correctly separated from the 142 S142b rows.
- The 18 rows are actual bypass lineage requiring governed disposition; no bulk deletion or relabeling is acceptable.
- Registration remains blocked independently by authority, trusted snapshot, registration-path, executor, and rollback gaps.
- N07/N12/N16/N22 remain open.
- The five trust-interface areas are relevant and belong before runtime work.
REUSE_PATH_PLAUSIBLE_BUT_UNPROVENis directionally correct.DOT_GOVERNANCE_DOT_ADMISSION = DEFERis correct.- RS2 did not authorize registration, Macro-9A/9C, schema creation, or runtime changes.
4. Corrected RS2 Points
C1 — 142 rows are not proven “sanctioned”
RS2 correctly marks the primary S142b authorization source SOURCE_NOT_READ, but still classifies the population as SANCTIONED_BATCH_NEEDS_RATIFICATION.
Correct classification:
UNVERIFIED_S142B_BATCH_NEEDS_SOURCE_AND_DISPOSITION
The count and reviewer label are packet evidence. Sanctioning, authority scope, and required disposition are not proven until the primary authorization source is found.
C2 — Containment is packet-supported, not Codex-live-confirmed
Codex accepts:
RISK_BYPASS_MECHANISMS_PACKET_SUPPORTED_CONTAINED_WITH_RESIDUE
Codex does not claim LIVE_CONFIRMED because no Codex live read occurred. Overall RISK-BYPASS remains unresolved due historical residue, NULL mapping, unsafe default, Điều 35 health, and stale documentary state.
C3 — NULL mapping is not irrelevant to registration
RS2 says the NULL-mapping pass-through is irrelevant to a real registration APR because such an APR should use a non-NULL high-risk code. That is too weak: RS2 also found no implemented DOT-registration action code. The mapping contract is therefore an unresolved prerequisite, not an assumed property.
The defect cannot currently produce an applied write if P1 remains intact, but it can still create falsely approved records and pollute authority evidence. It must close before the Điều 32 lane is trusted for registration.
C4 — quorum_passed should not be labeled globally “CLEARED”
The function body is credible evidence of a fail-closed supporting control. “CLEARED” is too broad without current Codex observation, regression proof, caller analysis, and change-control binding.
Use:
FAIL_CLOSED_CONTROL_PACKET_SUPPORTED
5. Rejected RS2 Points
R1 — Current atomic transaction boundary
RS2 states that steps 1–8 must form one atomic unit while also saying Owner resolution and APR approval are pre-resolved/pre-approved. Both cannot be true.
Owner grant and APR approval are durable governance prerequisites with independent lifecycles. They must not be created and rolled back as part of the DOT-registration transaction.
R2 — Gate activation inside registration transaction
RS2 includes a dot_config gate flip in the registration write set while requiring it to open only post-registration.
Registration must leave the runtime gate closed. Activation is a later, separate Owner-gated operation after registration verification. A closed config row may be created with registration; opening it cannot be part of the same transaction.
R3 — Durable audit emitted by a rolled-back transaction
RS2 requires failed registration writes to roll back while also emitting a durable audit record from the same transaction.
A PostgreSQL transaction that rolls back also rolls back its audit INSERT. Durable failure evidence needs a separately governed attempt ledger/outbox or a post-rollback writer. The current criterion is not implementable as written.
R4 — Existing registrar omitted from the reuse and transaction baseline
The governed registration record identifies dot-dot-register (DOT-REGISTER) as an existing registrar that scans bin/dot-* and registers through Directus REST.
It has serious limitations:
- admin credentials are required;
- it registers all untracked files rather than one explicitly admitted artifact;
- derived domain/tier/pair metadata can be wrong;
- law mapping and config are not proven atomic;
- the documented fallback uses optional manual Directus polish.
Those limitations may make it unsuitable, but reuse-first requires an explicit capability and hardening assessment. RS2's APR action-code search does not replace analysis of this existing registrar.
R5 — Transaction map is missing deployed-artifact identity
A lawful DOT birth requires deployment in the governed path plus registration. The map has package/hash proof but no explicit deployed executable path/hash/immutability step.
A KB artifact cannot be registered as a runnable DOT without proving the deployed artifact identity.
6. RISK-BYPASS Assessment
Overall classification: RISK_BYPASS_SOURCE_CONFLICT_UNRESOLVED.
Sub-classification:
| Surface | Codex assessment |
|---|---|
fn_auto_approve_add |
Packet-supported contained with residue |
auto_apply_approval |
Packet-supported quorum-gated with residue |
quorum_passed |
Packet-supported fail-closed control |
fn_apr_quorum_check NULL mapping |
HIGH integrity/fail-open-at-approval defect; not proven applied bypass |
DEFAULT action='add' |
MEDIUM latent hazard |
| 18 auto-apply rows | HIGH actual bypass lineage; governed disposition required |
| 142 S142b rows | SOURCE_NOT_READ on authorization; separate unverified batch |
| 8 system-auto-approve rows | Historical residue; ratify/reconcile/inert split must remain explicit |
| Điều 35 health | HOLD; not independently cleared |
| Documentary notes | Stale/conflicted; cannot silently rewrite authority state |
The mechanism-level containment evidence is sufficient to continue read-only analysis. It is insufficient to clear RISK-BYPASS or authorize registration.
7. Registration Transaction Map Assessment
Verdict: NOT YET ACCEPTABLE AS BASELINE.
The corrected phase model must be:
-
Governance prerequisites, outside transaction
- admitted artifact;
- deployed artifact identity/hash;
- Owner grant already valid;
- registration action type/handler already governed and implemented;
- APR already quorum-approved;
- isolated executor and trusted observer available.
-
Registration transaction, gate remains closed
- register the exact intended DOT row(s);
- write required paired-DOT/law mapping;
- create or verify a closed
dot_configrow; - bind immutable package/deployment hashes;
- write success audit in-transaction;
- enforce idempotency/concurrency;
- commit only after in-transaction postconditions pass.
-
Post-commit independent verification
- paired read-only verifier;
- trusted protected-surface after snapshot;
- durable success evidence.
-
Separate activation
- optional
dot_agent_api_contractbinding after channel decision; - explicit Owner-gated runtime gate opening;
- no activation implied by registration.
- optional
-
Failure and compensation
- pre-commit failure: automatic transaction rollback;
- rollback evidence: entry equals exit;
- durable failed-attempt audit recorded outside the rolled-back transaction;
- post-commit reversal: governed disable/archive or compensating action, respecting ID conservation, not casual deletion.
8. Proof-Obligation Assessment
The 19 obligations are useful but incomplete. PATCH1 must add or strengthen:
- Existing registrar reuse proof: exact
dot-dot-registerbehavior, source selection, credential boundary, single-artifact targeting, hooks, and whether it can be safely narrowed without a new governance island. - Deployment identity proof: executable path, hash, admitted artifact hash, origin, and drift detection all bind to one artifact.
- Idempotency and concurrency proof: retries and two concurrent attempts cannot create duplicates or inconsistent pair/mapping/config state.
- Closed-at-registration proof: registration cannot open execute/real-run gates.
- Durable failure-audit proof: audit survives transaction rollback without weakening atomicity.
- Compensation/ID-conservation proof: committed registration reversal archives/disables safely and does not reuse identity.
- Pair cardinality proof: expected number and identity of registry rows are derived from the paired-DOT contract, not assumed as “exactly one.”
- Failure injection: each mutating step is independently forced to fail and entry/exit state is compared.
- Authorization replay/freshness proof: Owner/APR evidence is target-, operation-, artifact-, scope-, and time-bound and cannot be replayed.
These additions are bounded proof obligations, not implementation.
9. Trust Interface Assessment
The five interfaces are directionally useful but not yet sufficient inputs for implementation.
Owner resolver
Add target object, operation (register_dot), scope, artifact hash, expiry/revocation, authority chain, and replay prevention. A valid Owner grant for another object or operation must reject.
Snapshot provider
Add a bounded protected-surface manifest, freshness window, completeness proof, monotonic snapshot identity, same-observer continuity, and observer trust-root verification. Avoid an undefined full-database content hash.
Executor/manual-path boundary
Add non-superuser, non-BYPASSRLS, non-owner constraints; controlled SET ROLE; fixed search_path; SECURITY DEFINER review; no caller-settable authorization marker; and exact permissions for the registration transaction only.
Transient GUC
Correctly treated as unprovable from persisted settings. Authorization must not rely on caller-settable GUC values.
Validator closure
N07/N12/N16/N22 criteria are sound, but N07 should consume a signed/prevalidated authority-and-snapshot envelope rather than make a pure validator perform runtime lookups. The interface must define issuer, audience, target, artifact hash, run ID, expiry, and replay protection.
Missing interface
Add an explicit deployed-artifact resolver binding KB admission to the governed executable path and hash.
10. Reuse-First and Governance DOT Decision
Reuse verdict: REUSE_PATH_PLAUSIBLE_BUT_INCOMPLETELY_ASSESSED.
RS2 has not exhausted reuse because it did not evaluate dot-dot-register and the catalog-sync path as registrar candidates. Their current broad/admin behavior is unsafe, but that is not proof that reuse is impossible.
DOT_GOVERNANCE_DOT_ADMISSION = DEFER remains correct.
Do not author or design it until the existing registrar and existing registry/APR primitives are proven insufficient under the corrected proof obligations.
11. Single Next Macro
RS2-PATCH1 — Existing Registrar Reuse and Atomic Registration Boundary Correction
Timebox: 60–90 minutes.
Mode: read-only / KB-design only.
Purpose: repair the load-bearing baseline, not implement it.
Required outputs:
- Full capability/security/reuse assessment of
dot-dot-register,dot-catalog-sync, Directus hooks, and any exact single-artifact registration option. - Correct phase-separated registration map: prerequisites → closed registration transaction → post-commit verification → separate activation → compensation.
- Revised proof-obligation matrix including deployment identity, concurrency/idempotency, durable rollback audit, gate-closed registration, pair cardinality, and replay/freshness.
- Revised trust-interface set including deployed-artifact resolver.
- Reclassified 142 population without “sanctioned” until its primary source is read.
- One decision: existing registrar reusable with bounded hardening, or reuse insufficient with evidence.
Stop states:
REUSE_REGISTRAR_READY_AS_CRITERIA, REUSE_REGISTRAR_NOT_SUFFICIENT, HOLD_TRANSACTION_BOUNDARY_INVALID, SOURCE_NOT_READ_BLOCKER, READY_FOR_RS3_BUNDLE.
This is one coherent 60–90 minute macro and is not a cosmetic patch. It stays within one registration block and does not become a mega-system.
After Codex accepts PATCH1, the next macro may be the larger Option-B bundle: Owner resolver + trusted snapshot + validator N07/N12/N16/N22 closure criteria + residue disposition criteria.
12. Must-Not-Do Confirmation
Confirmed no:
- runtime mutation;
- DDL/DML/manual SQL/psql;
- Directus generic mutation;
- DOT registration, wiring, or run;
- schema creation;
- Macro-9A/9C or B2 build;
- validator or Điều 32/35 patch;
- gate flip;
- APR creation/approval;
- Owner authority action;
- registry/table/collection creation;
DOT_GOVERNANCE_DOT_ADMISSIONauthoring/design;- old-law override;
- RS3 or RS-Validator implementation;
- RISK-BYPASS clearance;
- merging of the 18 and 142 populations.
The only write is this Codex report in AgentData KB.
13. Self-Check
| Check | Result |
|---|---|
| RS2 full report read | PASS — rev1 / 53,927 |
| Prior Codex gate read | PASS |
| Contained distinguished from cleared | PASS |
| 18/142 kept separate | PASS |
| RS2 live evidence distinguished from Codex observation | PASS — NO_CODEX_LIVE_READ |
| Transaction map reviewed | PASS — material defects found |
| 19 proof obligations reviewed | PASS — additions required |
| Five trust interfaces reviewed | PASS — one interface missing |
| Existing registrar reuse checked | PASS — omission found |
| Registration HOLD retained | PASS |
| Governance admission DOT retained DEFER | PASS |
| Single next macro selected | PASS |
| LEGO / DOT-only / no-mega boundary retained | PASS |
Three Declarations
- Permanent/root-cause: the required patch corrects the registration control boundary and reuse decision, not individual registry rows.
- Cannot be mistaken: registration, activation, and compensation are separate fail-closed phases; admission/engineering evidence cannot substitute for authority.
- 100% automatic: not claimed. It remains unproved until the governed path has machine-enforced identity, authority, idempotency, snapshots, rollback, and audit.
OR/TD/handoff update: not required because this is an independent review with no operating-rule, runtime, or implementation change.
14. Final Verdict
NEED_RS2_PATCH.
RS2 may not yet open RS3. Registration remains HOLD. Complete the single bounded RS2-PATCH1 macro above, then return for Codex review.