KB-3683

One-Roof Clone Axis/Topic — 01 Production & Clone Safety Gates (PASS)

4 min read Revision 1
one-roofnonprod-cloneaxis-substratesafety-gateproduction-readonlyisolation

01 — Production & Clone Safety Gates (Hard Gate 0)

Verdict: PASS. Production proven read-only-safe and byte-unchanged across the run; clone proven isolated, seeded, bounded, and reversible.

Channels (and the isolation that makes this safe)

DB Channel Mutability
production directus query_pg MCP (read-only role, READ ONLY txn, 5s timeout, LIMIT 500) read-only by construction — cannot DDL/DML
clone directus_gov_test_20260602 ssh contabo docker exec -i postgres psql -U workflow_admin -d directus_gov_test_20260602 -f - read+write; every mutating script self-guards current_database() LIKE 'directus_gov_test_%'

The query_pg allowlist is ['directus','incomex_metadata','workflow'] — it cannot even see the clone. So the two channels are physically incapable of crossing: production proof is read-only-only; clone mutation rides a separate ssh channel that refuses to run anywhere but a clone DB. There is no single channel that can both read production and write it.

Production read-only check (entry, 2026-06-03)

# check required actual
1 production DB = directus directus directus ✓
2 ownership rows = 0 0 0 ✓
3 gap = 210 210 210 ✓
4 os_proposal_approvals = 0 0 0 ✓
5 governance event emit = 0 0 0 ✓
6 axis tables absent 0 0 ✓
7 candidate/ruleset/worker state 0/0/0 0/0/0 ✓
8 idle-in-transaction = 0 0 0 ✓
9 no production write channel opened — none (query_pg read-only) ✓

Clone safety check (entry)

# check required actual
1 clone DB = directus_gov_test_20260602 yes yes ✓
2 clone isolated from app traffic yes separate DB in same instance; no app retargeting ✓
3 ownership seed + 100% collection coverage from prior run own≥1, gap 0 own 30, gap 0 ✓
4 scanner candidate state bounded/idempotent bounded candidate_state 5 / candidate_object 35, cursor 1 ✓
5 event dispatch inert 0 gov emit 0 ✓
6 rollback/drop plan exists yes sql/Z_axis_substrate_drop_clone.sql (written before first commit) ✓
7 axis tables absent/known absent 0 (clean slate) ✓
8 no uncontrolled worker loop none no daemon; scans are single deterministic passes ✓

Production re-verification (exit)

db=directus · ownership 0 · gap 210 · ospa 0 · gov_emit 0 · axis_tables 0 · candidate_state 0 · idle 0 — identical to entry. The clone build did not, and structurally could not, touch production.

Why persistent clone commits were authorized here (vs prototype's withhold)

The prototype withheld commit to avoid a misleading "island" schema implying an un-ratified ownership-model change. This run removes that objection two ways: (1) the mission explicitly authorizes persistent clone commits when isolated, reversible, and TEST_CLONE-marked; (2) the build uses a parallel axis_object_ownership table instead of ALTERing governance_object_ownership, so no pre-existing structure is changed and the existing pipeline is provably byte-intact. The "island" is therefore a clearly-labelled, self-contained, droppable test artifact on a non-production DB — not a silent schema mutation.

Back to Knowledge Hub knowledge/dev/reports/architecture/one-roof-nonprod-clone-axis-topic-substrate-pipeline-2026-06-02/01-production-and-clone-safety-gates.md