Codex Review - Read-Only R2-B2 Evidence Owner-Path Macro - 2026-06-18
Codex Review - Read-Only R2-B2 Evidence Owner-Path Macro
STATUS: PASS_WITH_CAVEATS REPORT_DATE: 2026-06-19 OFFICIAL_KB_PATH: knowledge/dev/laws-new/reports/codex/codex-review-readonly-r2-b2-evidence-owner-path-macro-2026-06-18.md REVIEW_SCOPE: Independent control review of the 30-file read-only R2-B2 Evidence & Owner-Path Macro.
Executive Summary
- The 30-file macro is accepted as read-only/design-only with caveats.
- 30/30 target KB files exist at exact paths, all revision 1: 29 consolidation files and 1 execution report.
- FQ-1 through FQ-20 are internally grounded by the full FQ ledger and individual full-read evidence deliverables; no FQ was found overclaiming a write, TD, channel authority, or blocker closure.
- Review caveat: this Codex session did not have a callable
query_pgtool, so I did not independently re-run live SQL. I re-grounded FQ claims by full AgentData readback of the per-FQ evidence docs plus execution ledger, and by checking the recorded read-only method. That is sufficient for PASS_WITH_CAVEATS, not PASS. - Trigger-count reconciliation is accepted: 171 pattern-scoped triggers vs prior 192/191 is a scope-pattern difference; material facts remain unchanged.
- G-5/S2 owner remains inherited/Owner-decision open, not fresh-readonly and not resolved.
- Aggregate B2 TD remains NO-GO. Path 2 is recommendation-only; no channel is selected as authority.
- No runtime mutation, DDL/DML, implementation, technical design, blocker resolution, current corpus, staging corpus/schema, source edit, or draft adoption was performed or authorized.
Source Discipline
Mandatory local/process sources read:
.claude/skills/incomex-rules.md.AGENTS.md.
Mandatory KB/context reads through AgentData:
search_knowledge("operating rules SSOT"): OR v7.58 / VPS operating rules context observed.search_knowledge("hiến pháp v4.0 constitution"): active constitution context observed; current hit isknowledge/dev/laws/constitution.mdv4.6.3 plus v4.0 review history.search_knowledge("Điều 32 approval owner gate DOT governance no manual SQL read-only"): owner-gate / no auto-DDL context observed.
No background agent or sub-agent was used.
File / Metadata Audit
| Check | Verdict | Issue |
|---|---|---|
| Exactly 30 target files exist | PASS | 30/30 exact KB paths read via AgentData. |
| 29 consolidation + 1 report | PASS | 29 under newlaws/consolidation, 1 under newlaws/reports. |
| All target revisions | PASS | Every target readback showed revision 1. |
| Execution report metadata | PASS | readonly-r2-b2-evidence-owner-path-macro-execution-report-2026-06-18.md, revision 1, content_length 17461. |
| Bodies use editorial rev only | PASS | Target bodies consistently use editorial rev1 and defer storage metadata to AgentData. |
| No 31st required file | PASS | Target list contains exactly 30; no schema/corpus/code file was needed or accepted. |
| Official report destination | PASS | This Codex review report is written to knowledge/dev/laws-new/reports/codex/, not local scratch. |
Target metadata observed: files 1-30 all revision 1; content_length values observed include 11927, 7122, 6816, 4566, 5214, 4978, 4753, 4604, 4785, 5626, 4096, 4933, 3220, 4450, 5370, 6156, 4213, 4994, 4713, 4146, 4873, 5211, 4432, 5719, 5589, 4544, 7104, 4612, 3689, 17461.
Fresh Read-Only Evidence Audit
| FQ | Verdict | Issue |
|---|---|---|
| FQ-1 | PASS | Full B3 doc confirms birth_registry has 22 columns; inspect_pen/stamp/gate are timestamp with time zone; certify/canonical/owner/jsonb co-resident. |
| FQ-2 | PASS | Certification snapshot confirms 1,211,635 uncertified and 1,402 certified. |
| FQ-3 | PASS | Certified buckets are all 2026-03-21 (backfill:s157b, backfill:dot-birth-backfill, `SYSTEM-s157b |
| FQ-4 | PASS | Last born 2026-06-18 10:34:37; 0 uncertified rows with any inspect_*; +78 uncertified vs R2a. |
| FQ-5 | PASS | pg_cron absent; installed extensions are btree_gist, pgcrypto, plpgsql, postgres_fdw. |
| FQ-6 | PASS | pg_settings app.% = 0; persisted GUC empty. |
| FQ-7 | PASS_WITH_CAVEATS | 171 birth-pattern triggers all enabled; 0 inspect-named producer triggers. Caveat: count differs from prior broader 192/191. |
| FQ-8 | PASS | trg_birth_auto_certify enabled. |
| FQ-9 | PASS | Only fn_birth_auto_certify names inspect_*; B4 consumer remains healthy/starved. |
| FQ-10 | PASS | Host cron snapshot 54 entries; 0 birth/inspect/certify; 1 nrm-lifecycle. |
| FQ-11 | PASS | pg_db_role_setting = 0; persisted GUC role/db layer empty. |
| FQ-12 | PASS | universal_edges = 2199 total, 0 provenance; R1/KG issue remains separate/open. |
| FQ-13 | PASS | kg_quality_log = 0; S7 writers not built. |
| FQ-14 | PASS | fn_iu_enact, fn_birth_auto_certify, fn_birth_gate, fn_description_birth_guard present. |
| FQ-15 | PASS | list_docker evidence: agent-api executor up 2 weeks healthy on :8090; no birth-inspection service. |
| FQ-16 | PASS | dot_config switches off: execute=false, real_run=false, dry_run=true; queue worker/substrate off. |
| FQ-17 | PASS | Queue heartbeat idle since 2026-05-26; none birth-related. |
| FQ-18 | PASS | 2 KG-EXPLAIN contracts; 0 birth-bound contracts. |
| FQ-19 | PASS | event_outbox = 215,597 undrained. |
| FQ-20 | PASS | Shape check confirms process_dot_runtime is not a table; switches are dotted dot_config keys. |
Safety audit for FQ method: accepted with caveat. The macro records query_pg as AST-validated READ ONLY with read-only role, statement timeout and hard limit; list_docker read-only. I found no recorded job/cron/worker/DOT/KG/birth/certify/promote execution. Codex did not independently re-run SQL in this session because no callable query_pg tool was exposed.
Trigger-Count Reconciliation Audit
| Check | Verdict | Issue |
|---|---|---|
| 171 vs prior 192/191 | PASS_WITH_CAVEATS | Accepted as name-pattern/coverage-scope difference. Future read-only tgrelid census could reconcile exact count. |
| Material fact: births mint certified=false | PASS | Certification snapshot confirms live backlog grows uncertified; no new certify after 2026-03-21. |
| Material fact: auto-certify consumer enabled | PASS | trg_birth_auto_certify enabled; fn_birth_auto_certify present. |
| Material fact: inspect producer absent | PASS | 0 inspect-named triggers and 0 uncertified rows with stamps. |
| B3/B4 conclusion undermined? | PASS | No; material compatibility conclusion remains valid. |
G-5 / S2 Owner Audit
| Check | Verdict | Issue |
|---|---|---|
| G-5 fresh-readonly? | PASS | It is not upgraded to FRESH_READONLY; explicitly remains inherited. |
| G-5 status | PASS | NO_GO_OWNER_DECISION. |
| Owner assignment authorized? | PASS | No owner assignment authorized. |
| Blocker resolved? | PASS | No; G-5 remains open. |
| Caveat | PASS_WITH_CAVEATS | governance_object_ownership=0 was not re-queried in the macro; this is correctly labeled inherited. |
Gate Delta Audit
| Gate | Verdict | Issue |
|---|---|---|
| G-1 contract | PASS | GO, design fact only. |
| G-2 B3/B4 | PASS_WITH_CAVEATS | PARTIAL_READONLY_VERIFIED; not full Go-for-TD. |
| G-3 Đ0-G | PASS_WITH_CAVEATS | NO_GO_SOURCE_AUTHORITY; working source re-read, not recovered/adopted. |
| G-4 channel selected+live | PASS | NO_GO_OWNER_DECISION; substrate fail-closed; no channel selected. |
| G-5 S2 owner | PASS_WITH_CAVEATS | NO_GO_OWNER_DECISION; inherited, open. |
| G-6 staging | PASS | NO_GO_WRITE_GATED; no staging built. |
| G-7 S7 | PASS_WITH_CAVEATS | PARTIAL_READONLY_VERIFIED; contract/read surface only, writers not built. |
| G-8 S8 | PASS_WITH_CAVEATS | PARTIAL_READONLY_VERIFIED; HOLD-2 open, no rollback script. |
| G-9 bad-input runtime tests | PASS | NO_GO_WRITE_GATED; producer absent, no tests run. |
| G-10 B7 warn/GUC | PASS_WITH_CAVEATS | persisted GUC empty; transient session remains OOB/unreadable. |
| G-11 CONS/CELL + Đ0-G | PASS_WITH_CAVEATS | NO_GO_OUT_OF_BAND / source-authority; downstream materialization still gated. |
| Aggregate | PASS | NO-GO unchanged; no actual B2 TD opened. |
Owner Path Audit
| Path | Verdict | Issue |
|---|---|---|
| Path 1 read-only reverify | PASS | Largely done by macro; optional future pass only. |
| Path 2 Owner channel decision | PASS_WITH_CAVEATS | Recommended as next, but recommendation-only; no authority selected. |
| Path 3 Đ0-G source authority | PASS_WITH_CAVEATS | Recommended parallel/OOB; not recovered/adopted. |
| Path 4 S2 owner assignment | PASS_WITH_CAVEATS | Recommended bundled with Path 2; not authorized. |
| Path 5 staging build readiness | PASS | Safe later; no staging built now. |
| Path 6 actual B2 TD now | PASS | Rejected; non-waivable gates open. |
| Path 7 expand B5/B7 now | PASS | Rejected as scope creep. |
Channel Audit
| Channel | Verdict | Issue |
|---|---|---|
| Host cron | PASS | Candidate only; 54 snapshot entries, 0 birth; no cron created. |
| Agent-api executor | PASS | Candidate only; healthy :8090, 0 birth-bound, switches off; no contract promotion. |
| pg_cron | PASS | Risky/future-gated; extension absent; no install. |
| job_queue worker | PASS | Risky/future-gated; worker/substrate off, idle, outbox undrained; no enable. |
| Manual one-shot | PASS | Rejected as standing channel; B5 remains separate. |
| Channel authority | PASS | No channel selected, wired, installed, promoted, or built. |
Scope-Control Audit
| Check | Verdict | Issue |
|---|---|---|
| B2 only primary block | PASS | Inspect-only boundary preserved. |
| B5/B7 dependency-only | PASS | No B5 backlog pass or B7 policy design opened. |
| R1/KG cross-check only | PASS | R1/KG invariant CLEAN as cross-check; no KG work opened. |
| Actual TD absent | PASS | No actual B2 TD written or authorized. |
| Staging schema/corpus absent | PASS | No staging schema, corpus, extraction, or build. |
| Bad-input/no-touch/delete-fast | PASS_WITH_CAVEATS | Requirements/readiness only; no runtime test or pilot proof. |
| Mega-birth / hidden shared write surface | PASS | No mega-pipeline or shared write surface found. |
| Owner gate preserved | PASS | Future writes/decisions remain Owner-gated. |
Non-Authorization Audit
- DB write/DDL/DML performed/authorized? no.
- restart/reload performed/authorized? no.
- runner/job/cron/worker execution performed/authorized? no.
- DOT/KG/birth/certify/promote execution performed/authorized? no.
- inspect/certified writes performed/authorized? no.
- channel authority selected? no.
- gate flip / owner assignment / contract promotion authorized? no.
- pg_cron install / queue worker enable authorized? no.
- source/prior-report patch performed/authorized? no.
- current corpus created/authorized? no.
- staging corpus/schema created/authorized? no.
- actual TD authorized? no.
- implementation authorized? no.
- blocker falsely resolved? no.
- v0.1-stable overwritten? no.
- v0.2-hardening promoted/used as authority? no.
Next-Step Decision
- Is the 30-file macro accepted? yes, with caveats.
- Are FQ-1…FQ-20 accepted as fresh read-only? yes, with the review caveat that Codex did not independently re-run live SQL in this session.
- Is trigger-count reconciliation accepted? yes, with caveat/future exact census.
- Is G-5 correctly still inherited / Owner-decision open? yes.
- Is actual B2 TD authorized now? no.
- Is write-enabled remediation authorized now? no.
- Is channel selected as authority now? no.
- Recommended next Owner path: Macro-2 as recommendation-only: Owner channel decision + Đ0-G source-authority OOB + S2 owner assignment; reject actual TD now and reject B5/B7 expansion.
Final Recommendation
Further Claude patch needed? no for safety; optional note only if Owner wants an exact trigger-count census or explicit Codex caveat about no independent SQL rerun.
Owner can use this macro for next decision? yes, with caveats.
Default next action: Owner decides whether to open Macro-2. Do not open actual B2 TD until gate prerequisites are cleared or explicitly waived where waivable; G-4 and G-5 remain non-waivable/open.
Do not implement confirmation: this review performed and authorizes no runtime mutation, no DDL/DML, no implementation, no technical design, no blocker resolution, no current corpus, no staging corpus/schema, no source law edit, and no draft adoption.