KB-6B09

04 — AX-PXT Generator Gap Root Cause

2 min read Revision 1
rpax-pxtroot-cause2026-06-05

04 — AX-PXT Generator Count Gap: Root Cause (Phase 4)

Symptom

Generated (v1) AX-PXT residual_reconcile count = 8; current = 2. One count diff; membership identical (12 nodes both sides).

Source trace

The current contract corrects AX-PXT counts in current_v2: it LEFT JOINs the live_v2 actionability ledger (v_process_trigger_actionability_ledger_live_v2) on gap_code and takes COALESCE of the live object_count over the base count, also stamping count_correction_flag COUNT_CORRECTED_FROM_LIVE where they differ. The generated v1 leg bound the OLD ledger (v_process_trigger_actionability_ledger), which carries the stale residual_reconcile 8.

Proof — exactly one divergence

A full side-by-side of the two ledgers (old vs live_v2), joined on gap_code, shows all 12 gap_codes present on both sides with identical object_count EXCEPT gap_code PROC:residual_reconcile (old 8, live_v2 2). The other 11 (PROC:jobcut_verified 1, PROC:new_candidates 6, PROC:official_rp 0, PROC:owner_gated_runtime 11, TRIG:db_dml_trigger 408, TRIG:dot_cron 42, TRIG:dot_dual 6, TRIG:dot_event 5, TRIG:dot_on-deploy 4, TRIG:event_type 52, TRIG:job_queue 8) are identical.

Conclusion

Binding the generated AX-PXT leg to the live_v2 ledger fixes the one count diff with ZERO membership change and NO static literal (the corrected count is read live from live_v2, not hardcoded). The corrected residual_reconcile reflects v_workflow_residual_evidence_hardening_v4 residual_state AWAITING_OWNER_RECONCILE = 2.

Back to Knowledge Hub knowledge/dev/reports/architecture/rp-generator-parity-fix-contract-replace-ui-deploy-standby-2026-06-05/04-ax-pxt-generator-gap-root-cause.md