KB-3198

CHECKPOINT — RP Count/Substrate Fix + Registryization Generator + FullPop v2 (2026-06-05)

7 min read Revision 1
checkpointrpfullpop-v2count-fixregistryization2026-06-05

CHECKPOINT — RP Count/Substrate Fix + Registryization Generator + Full-Population v2

Date: 2026-06-05 · Final status: PARTIAL · Verdict: RP_CONTRACT_FULLPOP_PASS_WITH_EXPECTED_BLOCKERS_AND_REGISTRYIZATION_PATH_AND_UI_CURRENT_READY

Final status

PARTIAL — all 20 phases executed; both real count/substrate fails fixed; full-population invariant v2 has 0 real FAIL; registryization generator built; _current UI surfaces repointed to corrected stack. Remaining = governance (synthetic-axis registration, president vote) + operator (UI deploy, real_run) — no engineering blocker.

Execution mode

EXECUTION. Read-only dual-path verification + additive/reversible views + 1 STABLE function + _current alias repoints (no-dependent, reversible) + KB report docs.

Live mutation

YES. 16 new objects (15 views + fn_rp_generate_universal_contract_sql), 5 _current aliases repointed + 2 new aliases. No prod v1 surface dropped/altered except thin _current aliases (restored by rollback). 3 apply files each birth-free (birth_registry before==after: 1,200,113 / 1,200,113 / 1,200,118). Session birth drift 1,194,933→1,200,118 = background only; DDL births = 0.

Dual-path verification

PASS. query_pg RO == ssh→docker exec postgres→psql -U directus -d directus at baseline, after each apply, and at end. Headline identical both paths: invariant v2 83/4/0, dashboard v3 PASS_WITH_EXPECTED_BLOCKERS, residual current count=2, stale_literals=0, no-fake metrics.

Two-fail root causes

  1. PROC:new_candidatesreconciliation-basis bug. count=6 = candidate buckets (group_count), but v1 reconciled against child_total=50 (members). Count was already live-correct.
  2. PROC:residual_reconcilestale literal (8) + grouping-scope mismatch. Live = 2 (v_workflow_residual_evidence_hardening_v4 residual_state_v4=AWAITING_OWNER_RECONCILE); grouping spanned all 7 states / 23 rows.

Two-fail fix status

BOTH FIXED (PASS, dual-path verified).

  • new_candidates: declared count_grain='group_bucket', reconciles count 6 == group_count 6.
  • residual_reconcile: count overridden to live 2 (COUNT_CORRECTED_FROM_LIVE), v_pxt_grouped_children_v2 residual leg scoped to AWAITING_OWNER_RECONCILE → child_total 2.

Static literal status

v_rp_static_literal_live_mismatch_v2: 0 STALE_LITERAL, 0 STATIC_NO_LIVE_SOURCE (12 tracked). owner_gated_runtime upgraded static_no_live→live (wf_orphan_remediation_queue docker_service_no_candidate=11). residual = LIVE_DERIVED_IN_CURRENT (literal 8 deprecated, current uses live 2).

Invariant v2 status

v_rp_full_population_drill_invariant_v2: 87/87 = 83 PASS + 4 PASS_EXPECTED_BLOCKER + 0 FAIL. Grain-aware reconciliation; full FAIL taxonomy (incl. FAIL_NO_LIVE_SOURCE). 4 EB = WF-001/WF-002 (official_workflow, president pending) + WPC-MONITOR-BOOTSTRAP/WPC-UNCLASSIFIED (empty-by-design).

Computed proof v2 status

v_rp_dynamic_drill_proof_matrix_computed_v2: derived from invariant v2 (no literal PASS). ALL_AXES=PASS_WITH_EXPECTED_BLOCKER, fail=0, verdict_is_computed=true, rule_can_structurally_fail=true. AX-PXT (the v1 FAIL axis) = 12/12 PASS.

Acceptance dashboard v3

v_rp_dynamic_drill_acceptance_dashboard_v3: total 87 · pass 83 · expected_blockers 4 · real_fails 0 · synthetic_axes 3 · registry_backed 2 · requires_view_edit 58 · static_literal_fail_count 0 · RP_FULLPOP_DRILL_PASS_WITH_EXPECTED_BLOCKERS.

Generator status

DESIGN + PROTOTYPE complete. v_rp_contract_generator_manifest (5/5 axes generator_inputs_complete) + fn_rp_generate_universal_contract_sql() returns a binding-driven UNION-ALL contract preview (NOT executed — no dynamic DDL). Form: SQL-only function returning text; production replacement is an explicit operator step.

requires_view_edit before/after

v_rp_requires_view_edit_reduction_plan: before 58 (AX-BASE 39 + AX-PXT 12 + AX-TRIGGER 7); reducible_by_generator 58 / residual_pure_view_limitation 0. Remaining is governance (synthetic-axis registration owner-gated), not a view-edit. Current contract still reports 58 until v1 UNION is replaced by the generated view (operator) + axes registered (owner).

Synthetic axis packet

v_rp_synthetic_axis_registryization_packet (NO insert): AX-BASE→REMAIN_DERIVED; AX-PXT→CANDIDATE_REGISTER; AX-TRIGGER→REGISTER_IN_AXIS_REGISTRY (owner+president). axis_registry unchanged (2: AX-PROCESS/AX-TOPIC CANDIDATE).

UI current package

_current aliases repointed to v2/v3: universal contract→current_v2 (residual 2 + badges), proof→computed_v2, acceptance→v3, count_reliability→v2; new invariant_current + static_literal_current. UI source accessible (/opt/incomex/docker/nuxt-repo/web, main, clean); 0 stale v_rp_* references; production handlers on legacy pivot views; new-contract handlers not yet wired (operator). No UI push/deploy.

Regression tests

v_rp_invariant_regression_guard: 6/6 PASS — v1 still shows 2 fails (sentinel), v2 0 fails, proof v2 not FAIL, dashboard v3 verdict↔fails consistent, static v2 0 stale, teeth-test: reintroduced stale literal still FAILs the v2 rule.

Final verdict

PARTIAL — fullpop invariant v2 PASS_WITH_EXPECTED_BLOCKERS (0 real fail), static literals live, generator path built, _current UI-ready. Safe-eng exhausted; governance/operator remain.

Safety / no-fake audit (UNCHANGED)

official RP 0/453 · governance_object_ownership 0 · axis_registry 2 (AX-TRIGGER still synthetic) · axis_assignment 25 · PROC-OWN approved 0 (5 requests) · trigger_guard_alerts 129 · real_run_enabled false · event_type active 30, no event activation · no source IU edit · no UI push · no unsafe birth/canon · all DDL birth-free · nothing hidden (v1 fails retained as regression sentinel).

Exact blockers

  • Governance: AX-PXT candidate-register; AX-TRIGGER owner+president register; president PROC-OWN vote (official RP).
  • Operator: wire UI new-contract handlers to _current; apply generated view to retire v1 UNION (→ NO_HARDCODE_READY); flip real_run_enabled.

Next macro

RP_UI_CURRENT_PRODUCTIONIZATION_WITH_BADGES_AND_SMOKE (primary) ‖ RP_AUTOSCALE_GENERATOR_IMPLEMENTATION_AND_SYNTHETIC_AXIS_REGISTRYIZATION (parallel safe-eng).

Artifacts

  • Reports: knowledge/dev/reports/architecture/rp-count-substrate-fix-registryization-generator-fullpop-v2-2026-06-05/00..19.
  • SQL: /opt/incomex/docs/mcp-writes/rp-count-substrate-fix-2026-06-05/{01_apply_fix_stack,02_apply_generator_dashboards_regression,03_apply_alias_repoints,99_rollback,verify_02}.sql.
  • Prior SSOT: checkpoint-rp-contract-canonical-registry-driven-fullpop-nohardcode-2026-06-05.md.
Back to Knowledge Hub knowledge/dev/reports/architecture/checkpoint-rp-count-substrate-fix-registryization-generator-fullpop-v2-2026-06-05.md