KB-4793

01 · Current-State Read-Only Check (live evidence, 2026-06-05)

10 min read Revision 1
terminal2read-onlylive-evidencerp-contractaxis-registryproof-matrix2026-06-05

01 · Current-State Read-Only Check (live evidence)

Captured: 2026-06-05, READ-ONLY, directus.public, via query_pg (RO, AST-validated, 5s/10s timeout, LIMIT 500). All facts below are live; where a checkpoint value is cited it is marked [ckpt]. Live evidence wins over old report (law §1).


1. Object inventory (does the new direction exist yet?)

v_rp% / rp_% objects present (35): contracts v_rp_universal_node_ui_contract (v1), …_v2, …_reliability; proof v_rp_dynamic_drill_proof_matrix, …_v2; acceptance …_dashboard, …_dashboard_v2; reliability v_rp_count_reliability_baseline, …_dashboard, …_label_model; lanes v_rp_axis_lane_split, v_rp_headline_safe_counts; adapters v_rp_source_adapter_coverage, …_scope_warnings, v_rp_uncovered_source_classes; detectors v_rp_static_literal_detector, v_rp_referenced_not_built_detector, v_rp_stale_parallel_source_detector, v_rp_dedup_signature_gap, v_rp_synthetic_axis_register_gap, v_rp_partition_law_status; grouping v_rp_pxt_grouping_surface + rp_grouping_policy (BASE TABLE); substrate v_rp_node_final_substrate_contract, v_rp_empty_substrate_classification; registers v_rp_aggregate_candidate_register, v_rp_classification_governance_map; blocker dashboards v_rp_officialization_blocker_dashboard, v_rp_ui_deploy_blocker_dashboard; PXT v_rp_process_trigger_*, v_rp_trigger_visibility_gap, v_rp_process_canon_gate_summary, v_rp_drill_reconciliation.

Absent (the new direction is NOT built yet):

  • v_rp_universal_node_ui_contract_current (or any _current alias) — no canonical view.
  • axis_source_binding / rp_axis_source_bindingno registry-driven binding object.
  • v_rp_full_population_drill_invariantno full-population invariant.
  • v_rp_dynamic_drill_proof_matrix_computedno computed proof.

2. Governance / registry counts (no drift vs checkpoints)

Object Live Note
axis_registry 2 AX-TOPIC, AX-PROCESS — both status=CANDIDATE. AX-BASE/AX-PXT/AX-TRIGGER absent.
axis_assignment 25 all AX-TOPIC [ckpt].
pivot_definitions 39
governance_object_ownership 0 no owners.
approval_requests 230 PROC-OWN-01..05 pending, 0 votes [ckpt].
event_type_registry 52 30 active; process.* 0/7 [ckpt].
dot_tools 309
wf_process_candidate 19
wf_process_candidate_member 143

axis_registry columns (the binding schema already exists): axis_code, axis_name, domain, node_source, node_filter(jsonb), relation_source, root_rule, child_rule, lifecycle_field, owner_governance_ref, substrate_resolver, pivots_ref, status, approval_ref, notes, _dot_origin. AX-PROCESS row: node_source=workflows, substrate_resolver=fn_process_node_substrate, pivots_ref=v_axis_process_pivots, status=CANDIDATE, owner GOV-MOW (pending). AX-TOPIC row: node_source=taxonomy, substrate_resolver=fn_topic_node_substrate, status=CANDIDATE.

3. Contract column shapes (the field contract delta)

  • v1 v_rp_universal_node_ui_contract — 19 cols: axis_code, node_code, label, count_value, count_status, lifecycle_status, governance_status, warning_flags(jsonb), has_children, child_count, child_node_codes(array), grouping_status, final_substrate_ref, substrate_available, drill_action, next_route, owner_blocker, related_axes(jsonb), proof_source.
  • v2 …_v2 — 21 cols = v1 + empty_reason, grouping_children_source.
  • reliability …_reliability — 29 cols = v2 + reliability_label, source_scope, confidence_score(int), lane_code, count_semantics, warning_flags_v2(jsonb), blocker_type_v2, next_action_v2.

Viewdef sizes prove a thin-decorator chain: v1 = 8239 chars (the hardcoded base), v2 = 1306, reliability = 2320.

Dependency chain (from pg_get_viewdef)

v_rp_universal_node_ui_contract            (v1)  = 6-way UNION ALL of hardcoded axis literals/routes [base]
   └─ v_rp_universal_node_ui_contract_v2   (v2)  = SELECT FROM v1
                                                    LEFT JOIN v_rp_pxt_grouping_surface (DRILL_GROUPS override)
                                                    LEFT JOIN v_rp_empty_substrate_classification (empty_reason)
        └─ …_reliability                          = SELECT FROM v2
                                                    LEFT JOIN axis_registry ar (source_scope label only)
                                                    LEFT JOIN v_rp_count_reliability_label_model lm (confidence default)

All node generation + business logic is in v1. v2/reliability only decorate. To registry-drive, rewrite the v1 base; v2/reliability inherit automatically.

Reliability field computation (literal/proxy — F5)

reliability_label = CASE count_status WHEN 'official_workflow'→'AUTHORITY_BLOCKED'
                    WHEN 'verified'/'candidate'→'CANDIDATE' WHEN 'PIVOT_MISSING'→'UNKNOWN' ELSE 'CANDIDATE'  -- only 3 of 15 labels
source_scope      = CASE WHEN ar.axis_code IS NULL THEN 'synthetic_axis' ELSE 'registered_axis'  -- binary
confidence_score  = COALESCE(lm.default_confidence, 50)   -- per-label default, not evidence
lane_code         = u.axis_code                            -- NOT the 23-lane split
count_semantics   = u.count_status                         -- raw, not ADDITIVE/NON_ADDITIVE/PARTIAL
warning_flags_v2  = warning_flags ∪ [SYNTHETIC_AXIS?] ∪ [NEEDS_GROUPING?] ∪ [SUBSTRATE_UNAVAILABLE?]  -- good, but no STALE/NOT_ADDITIVE/DEDUP
blocker_type_v2   = register_axis | president_vote | object_owner | none   -- computed, good
next_action_v2    = COALESCE(drill_action,'display')       -- weak; not a governance action

4. Drill-invariant violations live in v1 (the deployed-intended contract) — F3

SELECT axis_code, grouping_status, drill_action, substrate_available, count(*) FROM v_rp_universal_node_ui_contract GROUP BY …:

axis grouping_status drill_action substrate_available n verdict under invariant
AX-BASE OK DRILL true 5 PASS
AX-BASE OK SHOW_SUBSTRATE true 34 PASS
AX-PROCESS EMPTY SHOW_SUBSTRATE false 2 FAIL_DEAD_END (v1) → EXPECTED_EMPTY (v2 banner)
AX-PROCESS OK DRILL true 18 PASS
AX-PROCESS OK SHOW_SUBSTRATE true 2 PASS
AX-PXT NEEDS_GROUPING SHOW_SUBSTRATE true 10 FAIL_MISLEADING_SUBSTRATE (v1) → GROUPED (v2)
AX-PXT OK SHOW_SUBSTRATE true 2 PASS
AX-TOPIC OK SHOW_SUBSTRATE true 7 PASS
AX-TRIGGER OK DRILL true 7 PASS

12 of 87 nodes violate the invariant in v1; v2/reliability fix all 12 (10 GROUPED, 2 EMPTY_BANNER) but are not deployed.

5. Proof matrix v2 — curated, not computed — F4

26 rows: 22 PASS + 4 PASS_WITH_EXPECTED_BLOCKER + 0 FAIL. Verdict logic (pg_get_viewdef):

  • base-12 FROM v_rp_dynamic_drill_proof_matrixcurated verdicts baked in, incl. case 12 (count 408, has_children=false, grouping_status=NEEDS_GROUPING, actual_action=SHOW_SUBSTRATE → verdict=PASS) = false-green.
  • GRP twins — verdict = CASE WHEN grouping_status_v2='GROUPED' AND group_count>0 THEN 'PASS' ELSE 'FAIL'computed but only checks grouping existence, not child-sum coverage of count.
  • EMPTY — verdict = e.proof_verdict (from classification view).
  • BLK — verdict = 'PASS_WITH_EXPECTED_BLOCKER' LITERAL, WHERE node_code = ANY(ARRAY['PROC:official_rp','PROC:jobcut_verified']) → can never FAIL (H4).

6. Reliability dashboard (systemic)

v_rp_count_reliability_dashboard: labeled_metrics 21 · adapter 94 · dot 60 · trigger 75 · dot_executable_confirmed 186 · stale_static_literals 2 · referenced_not_built 6 · synthetic_axes_unregistered 3 · overall 83 · verdict RP_COUNT_RELIABILITY_HARDENED_WITH_PARTIAL_SOURCES.

7. Reuse assets discovered (discover-first / reuse-first, law §5)

  • rp_grouping_policy (base table): scope=default, threshold=50, active=true — "lists longer than 50 must drill". The contract does NOT read it (grouping logic hardcoded). Reuse target.
  • v_process_trigger_actionability_ledger (12 rows): gap_code, axis, category, object_count, severity, recommended_owner, recommended_action, blocker_type, safe_now, note. A strong model for a real per-node next_action (vs current next_action_v2=drill_action).
  • axis_registry: already the binding SSOT — extend, don't replace (reuse-first; do NOT create a parallel axis_source_binding).
  • v_rp_axis_lane_split (23 lanes), v_rp_static_literal_detector, v_rp_synthetic_axis_register_gap, v_rp_dedup_signature_gap — systemic detectors to join onto the node for true reliability labels.

8. No-drift / no-fake confirmation

All governance-engineering counts match prior checkpoints (axis_registry 2, ownership 0, votes 0, REAL_RUN 0, process.* 0/7). This audit performed zero mutations to DB/FS/UI/git; only KB docs written.

Back to Knowledge Hub knowledge/dev/reports/architecture/parallel-terminal2-rp-canonical-contract-design-alignment-technical-spec-2026-06-05/01-current-state-readonly-check.md