KB-5C94

58 — SB-12 Snapshot/Ruleset Rehearsal Results (BEGIN..ROLLBACK, entry==exit PASS, no COMMIT, 2026-06-01)

4 min read Revision 1
one-roof-governanceimplementation-indexgcossb-12rehearsal-resultsbegin-rollbackgovernance-rulesetevolution-snapshots-reuseentry-equals-exitno-law-writedraft-not-activatedcommit-forbiddenpass2026-06-01

58 — SB-12 Snapshot/Ruleset Rehearsal Results (R-2)

Doc: 58. Role: Live BEGIN..ROLLBACK rehearsal result for SB-12 (source-snapshot + ruleset-version registry; doc 38). Executes doc 48 Prompt 1 via the operator channel. Status: REHEARSAL RESULT — PASS. Author-mode BEGIN..ROLLBACK, ZERO COMMIT, entry==exit proven. Build NO-GO. Date: 2026-06-01. Channel: ssh contabo → docker exec -i postgres psql -U workflow_admin -d directus. Entry baseline: doc 57.


58.1 What was rehearsed

  • CREATE TABLE governance_ruleset (Option B, doc 38 §38.3): ruleset_version PK, content_hash, status DEFAULT 'draft', owner_gov_code (= GOV-COUNCIL per C-7.2, nullable until ruled), activated_at/by, components jsonb, created_at.
  • Reuse evolution_snapshots (zero schema change): one governance snapshot row (scope='governance.backfill').
  • One draft governance_ruleset row to prove the table functions; status stays draft (NOT activated — C-7.2 gate).
  • Proof law tables (normative_registry, law_catalog, governance_docs) untouched inside the txn.

ruleset_version hash recipe (documented, doc 38 §38.5): 'gov-rs-' || left(sha256(canonical_json(140 enabled measurement_registry rows ⊕ profile ⊕ axis ⊕ scope, canonical ordering, absent-component marker)),12). Rehearsal used a placeholder hash; no law version bump — ruleset versioning is operational config versioning (C-7.2).

58.2 Transcript (verbatim)

===R2_SB12_PRE===
 pre_ruleset | pre_evo | pre_evo_gov
-------------+---------+-------------
             |       1 |           0
BEGIN  SET SET SET  CREATE TABLE
===R2_INTX_TABLE_VISIBLE===  intx_ruleset = governance_ruleset
INSERT 0 1   (evolution_snapshots governance row)
INSERT 0 1   (governance_ruleset draft row)
===R2_INTX_COUNTS===
 intx_evo | intx_evo_gov | intx_ruleset_rows | ruleset_status
----------+--------------+-------------------+----------------
        2 |            1 |                 1 | draft
===R2_INTX_LAW_UNTOUCHED===  norm=47 | law=5 | govdocs=12
ROLLBACK
===R2_SB12_POST===
 post_ruleset | post_evo | post_evo_gov
--------------+----------+--------------
              |        1 |            0

Separate-session query_pg re-read after ROLLBACK: governance_ruleset = NULL, evolution_snapshots = 1, governance-scope = 0.

58.3 Entry==Exit

Object Pre In-tx Post (same session) Post (separate session) Equal?
to_regclass('governance_ruleset') NULL governance_ruleset NULL NULL
evolution_snapshots count 1 2 1 1
evolution_snapshots governance-scope 0 1 0 0
normative_registry / law_catalog / governance_docs 47/5/12 47/5/12 47/5/12 (doc 64)

58.4 Success criteria (all met)

  • governance_ruleset created then fully removed by ROLLBACK (DROP-equivalent reversibility; greenfield, empty at create).
  • ✅ Zero row persisted in evolution_snapshots / law tables (byte-identical; doc 38 §38.10 #4).
  • ✅ Ruleset recorded status='draft', not activated (C-7.2/C-7.3 gate respected).
  • ✅ Ruleset-version hash recipe documented; no law/version bump.
  • os_proposal_approvals still 0; no COMMIT. Entry==Exit proven.

58.5 Verdict

R-2 SB-12 = PASS. DDL additive and reversible; reuse of evolution_snapshots works with no schema change. No drift on this object (the doc-48 evolution_snapshots insert column list matched live: snapshot_at, scope, metrics(NOT NULL), delta_previous, notes). Build remains NO-GO (needs C-7.2/C-7.3 ruling + sovereign + os_proposal_approvals>0).

Back to Knowledge Hub knowledge/dev/reports/architecture/one-roof-governance-technical-addendum-and-implementation-index-2026-06-01/58-sb12-snapshot-ruleset-rehearsal-results.md