KB-6C83

Macro Rollup — C1 Dry-Run Capability & Execution (2026-06-22)

4 min read Revision 1

Macro Rollup — BOOTSTRAP_C1_TEST_SANDBOX_AND_PROVE_DRYRUN_READY — 2026-06-22

LABELS: LOCAL_DISPOSABLE_SANDBOX_DOT_EMULATOR · NOT_GOVERNED_RUNTIME · NOT_PRODUCTION · NOT_DIRECTUS_GOVERNED_WRITE · NOT_A_SUBSTITUTE_FOR_DOT_C1_REGISTRATION

Verdict

C1_LOCAL_SANDBOX_DRYRUN_LOGIC_PROVEN_GOVERNED_DOT_RUNTIME_NOT_READY

  • governed sub-stop C1_DRYRUN_CAPABILITY_LOCKED_OPERATOR_ACTION_REQUIRED. REGISTRATION_HOLD · REGISTRATION_CAN_PROCEED=NO · P2 CLOSED · no named lane · 0 governed-runtime mutations · NO subagents. Ready for Codex confirmation: YES · Ready for governed dry-run: NO · Ready for production: NO.

What changed vs prior HOLDs

Prior passes (c1-dryrun-execution, c1-dryrun-true-readiness) stopped at "no governed write channel." This pass exercised the operator-authorized route they hadn't: a newly created isolated disposable local Postgres cluster, and used it to prove the entire C1 dry-run logic end-to-end. The governed-runtime blocker is unchanged; only the sandbox dimension advanced.

Three-way result (mandatory separation)

  • A. LOCAL SANDBOX PROOF — PROVEN. Disposable PG14.17 cluster. C1 surface (6 tables/11 funcs/7 sandbox DOT contracts/4 registry rows); preflight READY; dry-run no-state; manifest hash c9286d3a…ec00 cross-tool recomputable; verifier 11 reject codes single-use; 19/19 bad-input fail-closed; valid apply 14 rows; rollback/dismantle/clean-state (orphan 0, audit retained). Proves logic/shape only.
  • B. GOVERNED DOT RUNTIME — NOT READY. governance_canonical_operation_vocab absent; no DOT_C1_* registered; 0 grants; all write routes read-only/denied/docs-only; DOT-only rule binds.
  • C. GOVERNED GAP — operator action. Operator must, via governed DOT path, create the collection (reuse DOT_SCHEMA_*_ENSURE family), register C1 producer/verifier (DOT_KG precedent) into dot_agent_api_contract+dot_tools/CAT-006, mint one scoped single-use C1 grant. Claude cannot: no DDL/registration tool exposed.

DOT reuse-first (A/B/C/D/E)

Searched governed dot_tools (309). Reused pattern: schema-ensure family + producer/verifier pairing. Rejected with reason: generic DOT_SCHEMA_ENSURE, DOT-062 dot-rollback, *_VERIFY family, dot_iu_create_collection. New DOTs created sandbox-only (category E), deliberately NOT registered as governed. No governed DOT created → C1_DRYRUN_HOLD_DOT_REGISTRY_NOT_UPDATED does not apply.

Package

16 files at …/reports/c1-dryrun-capability-and-execution/ (index + 01 + 02 + 03 + 04 + 04b + 05 + 06 + 07 + 08 + 09 + 10 + 11 + 12 + 13 + codex-review-packet) + this rollup. rev1; pre-write 0; additive. Sandbox artifacts: c1_build.sql c4fd4cf5…4110, c1_exercise.sql 405154f7…8163 (local disposable, not in KB as runtime).

Live evidence anchors (read-only, 2026-06-22)

Prod engine PG16.13 / db directus / directus.incomexsaigoncorp.vn (352 collections). query_pg non-SELECT DENIED; directus_create allowlist DENIED; governance_canonical_operation_vocab=0/absent; governance_build_authorization grants=0; dot_agent_api_contract=DOT_KG pair; dot_tools=309; VPS docker socket read-only; local docker daemon down; initdb/psql present (sandbox route).

Next

GPT → one Codex confirmation of A + the B/C gap statement → separately-authorized governed Gate-B capability (DDL/registration via DOT path to create the C1 collection + register DOT_C1_* + mint scoped grant) → re-run macro against governed runtime for genuine governed dry-run evidence. Residual ⇒ C1-DRYRUN-CAPABILITY-AND-EXECUTION-PATCH1.

Invariants carried

sandbox-logic-proven ≠ governed-DOT-ready; SQL-in-disposable-sandbox ≠ governed DOT registration; authorization ≠ capability; absence-of-governed-surface ≠ demonstrated-fail-closed-on-governed-runtime; reuse-first before any new DOT; no local DOT name masquerades as governed; one fixture → one code → one namespace → one layer.