KB-4101
T2 UI-Current Audit — 05 Next UI-Productionization Acceptance Checklist
5 min read Revision 1
terminal2auditchecklistui-productionizationreliability-badgessmokenext-macro2026-06-05
05 · Acceptance Checklist — RP_UI_CURRENT_PRODUCTIONIZATION_WITH_RELIABILITY_BADGES_AND_SMOKE
The exact, ordered checklist so the next macro is writable without rediscovery. Each item is birth-free / reversible / no-authority unless marked [OPERATOR] or [AUTHORITY].
A — Pre-bind gates (DB, query_pg RO + one CREATE OR REPLACE)
- [T1, may already be in substrate-fix-v2] Resolve the 2 invariant FAILs (
PROC:new_candidates6≠50,PROC:residual_reconcile8≠23): either fix count semantics / repoint residual to live count (8→2), or put them on an explicit known-FAIL allow-list withreliability_label=STALEsurfaced on the node. Do not deploy with silent CANDIDATE labels on FAIL nodes. - Build
v_rp_contract_current_guard(missing today): single-row PASS/FAIL asserting — rowcount==87; 0 nulldrill_action/next_route/reliability_label/source_scope; 0 unexpectedinvariant_status LIKE 'FAIL_%';_currentdefinition == reliability decorator (identity check);v_rp_contract_divergence_detectordivergences are all v1-only (not in_current). Ship99_rollback.sql. - Confirm
_currentstill = 87 rows and carries all reliability fields (live: ✓).
B — UI package authoring (the missing artifact)
- Author the
_currentroute package — pass-throughrpQueryroutes bound exclusively to:v_rp_universal_node_ui_contract_current,v_rp_dynamic_drill_proof_matrix_current,v_rp_dynamic_drill_acceptance_dashboard_current,v_rp_node_final_substrate_contract_current, andv_rp_full_population_drill_invariant(for the status branch). No business math in Nuxt. - Render model = axis-agnostic: switch on
drill_action+invariant_status(never onaxis_code). Add a lint forbidding anaxis_codeswitch. - Badges: every count renders with
source_scope+reliability_label; chips forconfidence_score,lane_code,count_semantics(NOT_ADDITIVE warning),warning_flags_v2,next_action_v2. Distinguish SYNTHETIC (source_scope=synthetic_axis/is_registry_backed=false), CANDIDATE/OFFICIAL (governance_status), PARTIAL (source scope), STALE (from static-literal detector / invariant — NOT fromreliability_labelalone). - Status branch:
invariant_status LIKE 'FAIL_%'→ red, never green;PASS_EXPECTED_BLOCKER→ amber status chip;NEEDS_GROUPING→ capped list + "grouping pending"; missing substrate + SHOW_SUBSTRATE → safe FAIL fallback (no dead-end). - Unknown axis/
drill_action→DISPLAYleaf + governance badge; never crash, never 404 on a registry-known axis.
C — Verification (read-only, pre-deploy)
- Grep gate
[needs UI source access]:0refs to_v1/_v2/_reliability/non-current contract names inserver/api/**,pages/**,composables/**. - Negative test: binding → v1 ⇒ ≥12 FAIL surfaced; binding →
_current⇒ only allow-listed FAILs. - False-green test: every
invariant FAILnode renders non-green. - Smoke set against
_current: contract_current, proof_matrix_current, invariant, acceptance_current, one AX-PROCESS drill, one AX-PXT FAIL-node drill (proves red render), one synthetic-axis node (proves SYNTHETIC badge). v_rp_contract_current_guard= PASS.
D — Deploy [OPERATOR] / [AUTHORITY]
- [OPERATOR] Converge
feat/process-axis-dashboard(ahead17/behind13) via isolated worktree (cron commits main 04:00/16:00); push/PR/merge (agent has no push creds). - [OPERATOR] Deploy Nuxt; run the smoke set live; confirm guard PASS post-deploy.
- [AUTHORITY] President votes PROC-OWN-01..05 → official RP; AX-TRIGGER/AX-PROCESS/AX-TOPIC owners;
real_run_enabledflip. UI ships as a CANDIDATE/SUPERVISION surface meanwhile — 0 official is correct, not a defect.
E — Auto-scale honesty (must remain labelled until STEP 6)
- UI must display the readiness verdict
NEEDS_REGISTRYIZATION/ auto-scale PARTIAL (58/87requires_view_edit). Do NOT repoint_current→registry_drivenuntil that view yields all 87 nodes atrequires_view_edit=false(doc 02).
PASS condition for the next macro
Guard PASS + grep 0 non-current refs + false-green test green + 2 FAILs resolved-or-allow-listed + _current package deployed by operator + auto-scale labelled PARTIAL. Anything less = ship as SUPERVISION/CANDIDATE with visible warnings, not "productionized."