04 — Step 2: SB-12 + SB-13 Build Results — COMMITTED (Phase-1 Test-Mode Build, 2026-06-02)
04 — Step 2: SB-12 + SB-13 Build Results — COMMITTED
sql/sb12_sb13_ddl.sql,sql/sb12_sb13_rollback.sql.
4.1 SB-12 — governance_ruleset (source-snapshot/ruleset registry)
Committed (matches rehearsal doc 58, Option B): ruleset_version PK, content_hash, status NOT NULL DEFAULT 'draft', owner_gov_code, activated_at/by, components jsonb, created_at. Empty at build (no ruleset activated — C-7.2 gate respected; ruleset versioning is operational config, no law/version bump). Reuse of evolution_snapshots is read-only and was NOT written (the optional governance snapshot row from the rehearsal was not committed — keeps the production snapshot table untouched).
4.2 SB-13 — gov_worker_cursor (worker-cursor family)
Committed (matches design doc 39 §39.4 + rehearsal doc 59): PK (worker_name, source_name); type-generalized last_watermark_id text (uniform across int birth-id and uuid outbox-id sources); last_watermark_ts, retry/DLQ counters (events_seen/attempts_written/dead_lettered), phase, metadata jsonb, timestamps. Empty at build — no worker rows seeded, no worker started, no cron, queue_heartbeat not written (reuse is a runtime concern).
4.3 Rehearsal + commit
Combined BEGIN..ROLLBACK rehearsal: both tables compiled, in-txn visible, post-rollback NULL (entry==exit). Staged COMMIT: both present, both 0 rows. Independent verify: present + empty. No triggers fire on these new tables (DDL event-guard ignores non-trigger objects); no out-of-scope mutation.
4.4 Verdict
SB-12 = BUILT + VERIFIED. SB-13 = BUILT + VERIFIED. Both inert/empty.