KB-51F7

04 — Seed & Readiness Plan (one transient draft-ruleset seed; ownership stays empty for honest under-coverage; NO seed created; 2026-06-02)

4 min read Revision 1
one-roof-governancephase1operational-readinessseed-planreadiness-gatehonest-undercoverageno-persistent-seed2026-06-02

04 — Seed & Readiness Plan

Minimal seeds required before a dry-run, classified by whether each may be a transient rehearsal seed (rolled back) or must stay empty. No seed is created by this mission.

4.1 Seed inventory

Seed Needed? Mode for first dry-run Persist?
Ruleset row (governance_ruleset) Yes — scan must resolve a ruleset_version one draft ruleset, rehearsal-seeded inside BEGIN..ROLLBACK No (rolled back)
Snapshot row (evolution_snapshots) Reusable — 1 already exists (id present) reference the existing snapshot; do not create n/a (already 1)
Cursor row (gov_worker_cursor) Yes for object-grain; not for collection-grain collection-grain dry-run needs none; if seeded, rehearsal-only No
Scope seed (governance_responsibility_scope) Already seeded (6, reference data) reuse as-is already present
Owner seed (governance_object_ownership) Intentionally empty leave empty — the dry-run must honestly show owner gaps No
Issue-type seed (system_issues buckets) No new bucket issues ride existing buckets; none created in dry-run No
Event-type activation (SB-11) Stays active=false unchanged No
Seam wiring (doc 02) Yes for a non-trivial run CREATE OR REPLACE inside BEGIN..ROLLBACK (collection-grain) No
Axis seeds (axis_registry/axis_assignment) Out of scope — substrate unbuilt not seeded No

4.2 What stays empty (hard invariants for the dry-run)

  • governance_object_ownership = 0 (proves honest under-coverage reporting).
  • governance_candidate_state / candidate_scan_run / governance_candidate_object = 0 persisted.
  • event_outbox governance emit = 0.
  • os_proposal_approvals = 0, approval_requests/apr_approvals unchanged.
  • All 5 governance event types active=false.
  • governance_relations=8, dot_tools=309.

4.3 The honest-result principle

The first dry-run must not seed owners. An empty ownership table means every governed collection shows as an owner gap — and that is the correct result to verify: it proves the path reports reality (under-coverage) rather than a manufactured PASS. Seeding owners to "make it green" would be the exact anti-pattern (a checked-forever / declared-coverage lie) the substrate was designed to prevent.

4.4 Seed classification vs the forbidden list

Every seed above is either (a) reference data already present (scopes, snapshot), or (b) a transient rehearsal seed inside a rolled-back transaction (ruleset, optional cursor, seam wiring). None is a persistent production candidate/owner population. This satisfies the mission's "no production candidate/owner data unless explicitly classified as inert test seed and justified" — here the classification is: no persistent seed at all; only rolled-back rehearsal seeds, justified as the minimum to exercise the path.

4.5 Readiness gate before any dry-run

A dry-run may proceed only when all hold (re-verified read-only immediately prior):

  1. os_proposal_approvals=0 (gate intact) and dry-run is explicitly non-activating.
  2. Substrate census matches doc 01 (8 tables + 6 views, all inert).
  3. Seam wiring spec (doc 02) chosen as collection-grain (object-grain deferred).
  4. Operator has the rollback script staged (doc 02 §2.5 inert-restore is the SB-2 rollback already on disk).
  5. idle_in_transaction=0 at start.

4.6 Seed/readiness verdict

CLEAR. Exactly one transient seed (a draft ruleset) plus inside-transaction seam wiring are required; everything else is reused-as-present or stays empty. The plan forbids persistent candidate/owner seeding and mandates an empty-ownership honest-gap result.

Back to Knowledge Hub knowledge/dev/reports/architecture/one-roof-phase1-operational-readiness-activation-boundary-2026-06-02/04-seed-and-readiness-plan.md