KB-1D49
One-Roof Prod Release Ultra-Macro — 02 Artifact Inventory & Conflict Resolution (2026-06-03)
6 min read Revision 1
one-roof-governanceproduction-releaseartifact-inventoryconflict-resolution2026-06-03
02 — Artifact Inventory & Conflict Resolution
A. Inventory and classification
| Artifact (source package) | Class | Disposition in canonical release |
|---|---|---|
G_prod_01_axis_ddl_and_seed.sql (axis-substrate) |
incomplete | 6 base tables + only 3 of 9 axis views + responsibility seed. Tables & 3 views absorbed into prod/10_structure.sql; responsibility seed split to prod/20_responsibility_axis.sql. |
G_prod_10_structure.sql (topic-promotion) |
superseded (partial) | Self-contained Tier-5 structure, but 10-branch drift + non-facet reconcile. Superseded by finalization A/D bodies; merged into prod/10_structure.sql. |
G_prod_60_finalization_structure.sql (finalization) |
stale / pointer-only | Non-executable ("apply the structural subset of A and D"). Replaced by self-contained prod/10_structure.sql. |
A_reconcile_decision.sql (finalization) |
canonical (structure) | Facet-aware v_reconcile_collection_topic_vs_label + decision-aware v_reconcile_topic_projection_gap + topic_label_reconcile_decision table → folded into prod/10_structure.sql (structure) and prod/50_topic_finalization.sql (decisions). |
D_projection_lag_timing.sql (finalization) |
canonical (structure) | v_projection_lag_timing + 11-branch v_drift_finding + 11-entry v_drift_event_map → prod/10_structure.sql. |
F_prod_01_ownership_seed_commit.sql (extended) |
canonical (seed) | 30-anchor responsibility ownership; sovereign-gated. Adopted as prod/30_ownership_seed.sql. |
G_prod_20_containment_seed_GATED.sql (finalization) |
canonical (seed, extended) | Containment rule + 35 assignments + 35 ownership. Made self-contained (adds axis registry + 5 values) as prod/40_containment.sql. |
G_prod_30_topic_finalization_GATED.sql (finalization) |
canonical (seed, extended) | Auto-derive decisions. Extended with portable vocabulary + guarded assignments as prod/50_topic_finalization.sql. |
D_scanner.sql / D_scanner_fix.sql (topic-promotion) |
canonical (in structure) | fn_governance_scan (ON CONFLICT collision bug already fixed: axis_code in uniq key + SELECT DISTINCT). In prod/10_structure.sql. |
E_issue_event.sql, UI views |
canonical (in structure) | issue/event payload views + 7 UI views. In prod/10_structure.sql. |
G_prod_00_preflight.sql (×3 packages) |
superseded (merged) | Three different preflights → one consolidated prod/00_preflight.sql (gate + prereq + greenfield + baseline). |
G_prod_90_verify.sql, G_prod_99_rollback.sql, Z_rollback_finalization.sql |
superseded | Verify merged into prod/90_verify.sql; rollbacks replaced by greenfield teardown prod_rollback/99_rollback_full.sql + per_tier_rollback.sql. |
*_clone*.sql build/test files (all packages) |
clone-only | Test scaffolding (BEGIN..ROLLBACK rehearsals, RAISE 'UNDO_*'). Not for production; retained in source packages. |
| F1–F5 dry-run SQL | clone-only / historical | Read-only & rollback-only rehearsals. Superseded by committed clone state. |
B. Conflicts resolved
- Scattered / incomplete DDL — the 6 axis views
v_axis_assignment_quality,v_axis_coverage_summary,v_axis_registry_coverage,v_axis_missing_assignment,v_axis_topic_parentage_conflict,v_axis_issue_payloadwere clone-proven but never packaged as production DDL. → Extracted byte-exact from clone and included, dependency-ordered, inprod/10_structure.sql. - Pointer-only file —
G_prod_60was non-executable prose. → Replaced with self-contained executable DDL. - Superseded view bodies coexisting — chose the LATEST finalization-era bodies: facet-aware reconcile (A), decision-aware projection gap (A), 11-branch drift + 11-entry event map (D). The pre-finalization bodies in
_clone_defs.txtare archival (rollback reference) only. - Missing-cast risk (F2-1) —
collection_nameisvarchar(255); the prereq seam views already cast::text. Axis views key onobject_ref text— no cast conflict. - Stale thresholds — confidence/staleness thresholds live in
coverage_rulerows (CR-CONTAIN confidence 0.5, staleness 0); no hardcoded thresholds in views. Stale-candidate-value detector uses a 30-day interval (carried as designed). - Event-trigger assumption — confirmed: governance event types are inactive;
v_drift_issue_payload.emit_blocked = NOT etr.active; no dispatcher and no trigger writes toevent_outbox. Boundary stays fail-closed; event activation is a separate future tier. - Axis-ownership model divergence — two orthogonal models kept distinct: responsibility coverage uses the app-owned
governance_object_ownership(Tier 3); axis (containment/topic) ownership uses the parallelaxis_object_ownership(Tier 4). The app table is never altered. - source_system label — clone payload views carry
'governance_clone'/'axis_substrate_clone'. Canonical production sets'governance_production'(documented, cosmetic — never emitted while event types are inactive). This is the only deliberate body divergence from clone. - Three different preflights — consolidated into one gate.
- Environment-specific topic content — prior package warned "do NOT copy clone collection names blindly." Canonical Tier 5 seeds portable vocabulary unconditionally, guards topic assignments to collections that exist in
v_governance_object_inventory, and auto-derives reconcile decisions from the reconcile views (no clone collection names hardcoded into decisions).