Stage 2.6A — Plan Registry SSOT
02 — Plan Registry SSOT (SUPERTRACK B)
The plan is now a first-class governed object, not a literal list.
Objects
- Table
qt001_plan_registry— columns: plan_id, plan_version, generated_at, source_metadata_hash, collection_name, src_rows, existing_births, expected_delta, unresolvable, divergence, policy_decision, identity_strategy, tier_code, parity_status, validation_status, blocked_reason, checksum, status, superseded_by. PK (plan_id, collection_name). - Function
fn_qt001_build_plan_registry(p_plan_id text)— refreshes the live snapshot (metadata-drivenfn_qt001_plan_allovercollection_registry), computes asource_metadata_hashover canonical eligible plan facts, retires the prior CURRENT generation (status→SUPERSEDED, superseded_by set), and inserts the new generation with per-rowchecksum. - Views
v_qt001_plan_registry_current,v_qt001_plan_registry_diff_vs_hardcoded,v_qt001_plan_registry_no_go_guard.
Generation (live)
First generation: plan_id PLAN-20260606-093413, plan_version 1, source_metadata_hash f8d2272fd9ff4fdbdfc8d362847d485b, 13 rows (the eligible/expected_delta>0 collections across all tiers).
Tier is derived from DATA, not a code list
tier_code is computed by: ineligible/zero-delta/unresolvable → TIER_INELIGIBLE; else divergence≠0 → TIER3; else if a non-superseded validated-collection review row exists for the collection → TIER1; else → TIER2. The 5-collection Tier1 membership comes from qt001_review_validated_collection (a recorded Codex review), replacing the hardcoded IN-list (HC-01).
Reproduction parity (the proof hardcode elimination is faithful)
The data-driven tiers reproduce the prior hardcoded classification exactly:
| Tier | Collections | Total delta | Members |
|---|---|---|---|
| TIER1_CODEX_VALIDATED | 5 | 137 | apr_action_types, apr_approvals, dot_domain_rules, field_type_equivalences, normative_relations |
| TIER2_METADATA_CONSISTENT_UNVALIDATED | 2 | 137 | law_catalog, measurement_registry |
| TIER3_PARITY_DIVERGENT_RECLASSIFY | 6 | 505 | approval_requests, governance_relations, law_dot_enforcement, law_jurisdiction, table_registry, workflows |
Currency is provable (supersedes HC-10)
Each generation carries source_metadata_hash (whole-plan) + per-row checksum + generated_at. Freshness is no longer "row count > 0". (Atomic versioned snapshot pointer + TTL remains a NEXT-layer hardening.)
No-go guard
v_qt001_plan_registry_no_go_guard.pass = true: exactly one CURRENT plan_id, all 13 rows carry a blocked_reason, all 13 rows are hashed. Every plan row's blocked_reason states APPLY_FORBIDDEN (tier apply_allowed=false; independent signoff NOT_SAFE; SCALE_NOT_SAFE).
Drift comparator
v_qt001_plan_registry_diff_vs_hardcoded FULL JOINs the registry against the legacy hardcoded v_birth_qt001_dryrun_result (HC-03) for transparency — it is a drift signal, never an authority gate.