Checkpoint — RP Aggregate Pivots Ratify/Add + DOT Drill Fix 2026-06-03
Checkpoint — RP Aggregate Pivots Ratify/Add + DOT Drill Fix (MCP-readable short proof)
Date: 2026-06-03 Macro: REGISTRIES_PIVOT_AGGREGATE_PIVOTS_RATIFY_ADD_AND_DOT_DRILL_FIX Final status: PASS Execution mode: EXECUTION_MODE (read query_pg RO; write ssh contabo → docker exec postgres psql -U workflow_admin, superuser, read_only off)
Live mutation
YES — 3 in-scope mutations. pivot_definitions 37→39 (active 35→37, roots 24→26, children 13, parents 6). birth_registry 1,132,011→1,132,013. parent-graph hash 91576fb6… → 8c5d25a8….
Added pivots (FINAL, LIVE)
- PIV-311 Information Units — Total = 219 (source information_unit), pivot_backed L1 root, born.
- PIV-313 System Issues (open) — Total = 207,940 (source system_issues, status='open'), pivot_backed L1 root, born.
- Inserted in ONE statement (1 refresh, 2 births); rehearsed BEGIN..ROLLBACK net-0 first (entry hash == exit hash).
Candidate pivots status (surfaced in additive register v_rp_aggregate_candidate_register, NOT canon)
- PIV-301 orphan=59 → CANDIDATE_REPORT_ONLY (birth-grain; ≠ per-collection orphan_count).
- PIV-302 phantom=289 → CANDIDATE_REPORT_ONLY (birth-grain; ≠ dot_tools record_surplus 146; no retire mechanism).
- PIV-303 count_drift=3 rows → CANDIDATE_REPORT_ONLY (row-count drift flag; ≠ surplus-equation drift 21,197).
- PIV-312 KG edges=2,259 → NEEDS_LAW_DEFINITION (edge-as-registry-object undefined; not completeness).
- None added to canon (would birth unretirable rows + assert unratified law); all live-counted in the register.
PIV-104 / DOT drill decision
FIXED (option 1 = smallest clean). Dropped stray status='published' filter (metadata UPDATE, no birth). DOT-by-category now 25 groups summing to 309; v_rp_drill_reconciliation shows PIV-007 RECONCILES (309=309), also PIV-009=168 & PIV-016=42 RECONCILE; NO WARNING_DRILL_MISMATCH remains. Separate dot_tools record-surplus drift (counted 309 vs actual 163 = 146 phantom-candidate) retained/surfaced honestly — different signal.
PIV-500 / PIV-304 decision
- PIV-500 grand total = NOT_A_PIVOT_BUT_EQUATION_VIEW; UNVERIFIABLE until a ratified anchor set defines "a system object"; equation = counted + orphan + phantom + unmanaged; no number faked.
- PIV-304 unmanaged = NEEDS_LAW_DEFINITION; law draft provided (no birth AND no governed registry/dot_tools/file entry); surfaced as NULL, never 0.
Count integrity status
Honest/non-fake-green. unmanaged NULL + PIV-500 missing ⇒ count_integrity_status=unverifiable_at_grand_total (warning). Taxonomy live for UI: FINAL / DRILLDOWN / CANDIDATE / PIVOT_MISSING / LAW_DEFINITION_NEEDED / WARNING_DRILL_MISMATCH(none) / UNVERIFIABLE. UI reads node contract + 2 additive views; no Nuxt math, no hardcoded depth.
Done-for-information-work
YES. Also DONE_FOR_UI_IMPLEMENTATION (read-only). Graph live, key aggregates live, DOT drill honest, PIVOT_MISSING explicit, final substrate present, no dot-pivot-update dependency.
Exact remaining blocker
Owner ratification only (not engineering): unmanaged + grand-total law defs; candidate→FINAL promotion criteria. Engineering complete.
Rollback
/tmp/rp_agg_rollback.sql — restore PIV-104 filter; DELETE PIV-311/313 (optional birth cleanup line; else 2 phantom births); DROP the 2 views. Base node contract untouched.
Reports
knowledge/dev/reports/architecture/registries-pivot-aggregate-pivots-ratify-add-dot-drill-fix-2026-06-03/ (docs 00–10). This file is the MCP-readable short SSOT.
Next macro
REGISTRIES_PIVOT_AGGREGATE_LAW_RATIFY_AND_REGISTRY_PIN (or proceed to information-piece work on the live contract).