KB-5189

T2 RP Systemic Reality Audit — 05 Full-Population Drill Risk

5 min read Revision 1
terminal2auditdrill-riskfull-population2026-06-05

05 — Full-Population Drill Risk

Score: Drill full-population readiness = 45/100. The proof is curated, not full-population, and at least one structural drill path routes a high-count node to a substrate that does not contain its objects.

The prior proof matrix (12 + v2's 26) is a curated selection of start nodes. This section audits whether every node in the full 87-node population satisfies the drill invariants.

Invariant checks against full population (87 nodes, live)

I1 — Every node with count>1 has grouping? — FAIL (v1) / PASS (v2)

v1 contract: AX-PXT 10 nodes have count_value>1 and grouping_status='NEEDS_GROUPING' with no children (has_children=false hardcoded). They do not group. v2 grouping surface resolves these into 250 children — but v2 is the non-deployed twin. In the deployed-intended v1 path, 10 high-count nodes do not drill.

I2 — Every leaf has substrate? — PARTIAL

AX-PROCESS: 2 nodes have substrate_available=false (live, both v1 and v2). They are classified LEAF_EMPTY_BY_DESIGN (honest), so not a silent failure, but they are genuine leaves with no rows.

I3 — substrate_available=true ⇒ actual rows? — FAIL for AX-PXT (the core risk)

This is the most serious drill-integrity finding. AX-PXT nodes set substrate_available=true and final_substrate_ref='v_process_trigger_actionability_ledger', but:

  • TRIG:db_dml_trigger has count_value=408, drill_action='SHOW_SUBSTRATE' → routes to the actionability ledger, which has ~12 rows total, not 408 db_dml trigger objects.
  • The ledger is a gap ledger, not an object enumeration. The 408 real triggers live in v_trigger_universe_census / host census — not reachable from this node's substrate.
  • So substrate_available=true is true that a substrate ref exists, but false that the substrate contains the counted population. A supervisor drilling "408 db_dml triggers" lands on a 12-row gap summary and sees neither 408 rows nor a warning. Route-to-misleading-page. v2's grouping surface fixes the 10 grouped nodes (DRILL_GROUPS → real children), but again v2 is not deployed, and even v2 does not re-point the substrate of the non-grouped AX-PXT rows.

I4 — Every route/action non-null? — PASS

All 87 nodes have a non-null next_route and drill_action. No null routes found.

I5 — Every missing substrate has a reason? — PASS

The 2 empty AX-PROCESS leaves carry empty_reason via v_rp_empty_substrate_classification. Honest.

I6 — Can any node route to an empty page without warning? — YES (the I3 nodes)

The AX-PXT count>1 nodes with drill_action=SHOW_SUBSTRATE → ledger. The page won't be empty (ledger has rows) but it will be wrong-population without a warning flag distinguishing "these are the 408 objects" from "this is a 12-row gap summary." The internal inconsistency (grouping_status=NEEDS_GROUPING while drill_action=SHOW_SUBSTRATE, finding H8) is the smoking gun: the node knows it needs grouping but tells the UI to show substrate.

Curated-vs-full-population gap

  • Proof matrix v2 = 26 curated cases, not 87. It proves the happy paths and 2 hardcoded blocked nodes (with literal PASS). It does not assert "all 87 nodes drill correctly."
  • The 2 PASS_WITH_EXPECTED_BLOCKER hardcoded-node rows can never FAIL (H4) → the proof cannot detect regression on those nodes.
  • No full-population assertion view exists that says: "for all 87 nodes: count>1 ⇒ (has_children OR grouped); substrate_available ⇒ substrate row-count ≈ count_value; else flagged." That view is the missing safety net.

A v_rp_drill_invariant_violations view over v_rp_universal_node_ui_contract (or the unified v2) that emits one row per violated invariant:

  1. count_value>1 AND NOT has_children AND grouping_status<>'GROUPED'UNGROUPED_HIGH_COUNT
  2. substrate_available AND drill_action='SHOW_SUBSTRATE' AND (rows in final_substrate_ref) << count_valueSUBSTRATE_POPULATION_MISMATCH
  3. NOT substrate_available AND empty_reason IS NULLUNEXPLAINED_EMPTY
  4. drill_action='NEEDS_GROUPING' XOR grouping_status='NEEDS_GROUPING'ACTION_STATUS_CONFLICT (catches H8) If that view returns 0 rows, full-population drill is proven. Today it would return ≥10 rows (the AX-PXT mismatch + H8 conflicts).

Verdict

Drill works for the curated, grouped, deployed-as-v2 happy path. It is not proven for full population, and the AX-PXT substrate-population mismatch is a real correctness risk that the curated proof does not catch. Do not market RP as "drills correctly for everything" until the invariant-violations view returns 0 over all 87 nodes on the deployed contract.

Back to Knowledge Hub knowledge/dev/reports/architecture/parallel-terminal2-rp-systemic-reality-hardcode-autoscale-design-gap-audit-2026-06-05/05-full-population-drill-risk.md