Macro-RS3B — Registrar Hardening Design Package (Executive Rollup) — 2026-06-21
Macro-RS3B — Registrar Hardening Design Package (Executive Rollup) — 2026-06-21
Class: read-only / KB-design · non-enacting · non-authorizing · no implementation · 0 substrate mutations
Gate consumed: Codex ACCEPT_RS3_PATCH2_AND_PROCEED_TO_RS3B · READY_FOR_RS3B · C1–C4 mandatory
Controlling verdict: RS3B_HOLD_REGISTRAR_SOURCE_NOT_READ
Registration gate: REGISTRATION_HOLD · REGISTRATION_CAN_PROCEED = NO
Live read tier: CLAUDE_READ_ONLY_PACKET 2026-06-21 (query_pg read-only role, VPS read_file allowlist, AgentData KB) · NO_CODEX_LIVE_READ
1. One-paragraph result
RS3B is the bounded read-only registrar-hardening design macro opened after Codex accepted RS3-PATCH2. Its first and gating deliverable — recover and read the registrar implementation source bin/dot/dot-dot-register.ts and reconstruct behavior from code — cannot be satisfied: the only file channel (VPS read_file) is allowlisted to /opt/incomex/docs, /opt/incomex/dot/specs, /var/log/nginx, and the registrar (confirmed live at dot_tools.DOT-REGISTER.file_path = bin/dot/dot-dot-register.ts) is outside every prefix; no KB source copy exists. Per macro §0.5/§5 and the Codex gate, the verdict is RS3B_HOLD_REGISTRAR_SOURCE_NOT_READ — PASS is not forced. The remaining nine deliverables are produced at design/criteria level, each fail-closed, consuming Codex C1–C4. A 13-file package was written to KB. Registration stays HOLD.
2. Package (13 files written)
Index + 01–10 + Codex packet at …/laws-new/reports/rs3b/; this executive rollup at …/laws-new/reports/. All rev1, readback-confirmed. See rs3b-index-…md for the full table and per-file sub-status.
3. Mục tiêu A–J outcomes
- A Source recovery:
SOURCE_NOT_READ(exhaustive ~22-probe proof; allowlist deniesbin/dot/...; no KB copy). Behavior reconstruction HELD; RP-03 prose carried only as UNVERIFIED scope. - B Dual-writer boundary:
PARTIAL_SOURCE_NOT_READ. RegistrarDOT-REGISTER(op=register, pairedDOT-HEALTH-DOT) vs catalog-syncDOT-015(op=NULL, paired NULL, domain sync, on-deploy). Boundary rules: registrar = sole registration writer of closed rows; catalog-sync = read-only reconciliation, no clobber/activation; conflict/drift → reject+HOLD. - C Single-artifact contract v0.1:
CRITERIA_DEFINED_PENDING_SOURCE. One admitted artifact only; broad scan =MASS_REGISTRATION_ATTEMPTED; full reject-code set; post-commit paired verifier; no activation. - D Interface F v0.1:
CARRIER_SOURCE_UNPROVEN_FAIL_CLOSED.request_proposedvstrusted_attestedsplit; lead future carrier =context_pack_manifest(sha256 NOT NULL) but UNPROVEN (no UNIQUE/immutability/observer); resolver fail-closed. - E Replay/attempt state machine v0.1:
REPLAY_DOMAIN_FAIL_CLOSED·REPLAY_SURFACE_NOT_FIT. C1 three identities; C2 atomic Phase-1 + S1/S2/S3 + uncertain-commit recovery; C3 retention/tombstone ≠ freshness;iu_route_attemptrejected as store; required surface defined, not created. - F Audit sink:
SINK_CANDIDATE_SELECTED_FAIL_CLOSED. Lead =event_outbox(richest schema, safe_payload guard, post-rollback writable) but no enforced immutability/retention/idempotency on any candidate; no new ledger. - G Pair/guard:
REPRESENTATION_DERIVED. Registry pair = 1 primary + 1paired_dotverifier (2 rows); guards = 4 content-bound contract components (0 rows); not five rows. - H Triggers / closed-at-registration:
INVENTORIED. 14dot_toolstriggers (1 disabled); the one activation surface =trg_context_pack_dot_register→pg_notify('context_pack_event')on watch-tier {A,B,C}+status='active'; closed-at-registration obligations defined. - I Adversarial matrix:
DEFINED_NOT_EXECUTED, 40 cases (≥35), all required categories covered. - J Decision packet + this rollup + Codex packet: produced.
4. Gap report (single-sufficient blockers)
G1 registrar source unreadable (upstream-most for code-level work) · G2 owner-of-record = 0 rows (deciding authority blocker) · G3 no register_dot action · G4 no artifact-hash carrier · G5 no fit replay surface · G6 no immutable audit sink · G7 activation side-effect. Each alone keeps registration on HOLD.
5. Single next recommendation
Recover the registrar source (extend read_file allowlist to the bin/dot/ directory, or admit a faithful line-level KB source mirror, or provide a read-only git/code channel), then re-run RS3B-01/02/03 against real code. RS-VALIDATOR-HARDENING stays after RS3B; RS2B-RISK-RESIDUE-AND-Đ35-HEALTH-CLOSURE separate; Owner-of-record decision still upstream. No implementation/registration until G1–G7 clear and Owner authorizes.
6. Discipline held
No-mega-system · DOT-only · reuse-first · no new registry/table/collection · hash ≠ signature · caller input ≠ authority · pure validator ≠ replay-state owner · snapshot/QT001 ≠ trusted provider · iu_route_attempt ≠ single-use store · attempt_id ≠ logical-key bypass · consumed-state ≠ erased by staleness · RP-03 prose ≠ source · no PASS while source unread. 35-item must-not-do list confirmed in the index. Only writes = this RS3B package at official KB paths. Engineering criteria ≠ authority PASS; KB admission ≠ runtime registration.
7. Lineage
Builds on / consumes: RS3-PATCH2 (macro-rs3-patch2-…-2026-06-21) + its Codex acceptance; RS3-PATCH1; RS3-BUNDLE; RS2-PATCH1. Next gate: Codex reviews RS3B → confirm HOLD → registrar source recovery.