ec87f98f02
The original SP28 spec assumed `Claim.patient_control_number == 999.set_control_number`. Empirically that's wrong: Gainwell's 999 echoes the source 837's ST02, not its CLM01, and TOC's billing software fills them differently. Measured against prod on 2026-07-02: the PCN join matches 0 / 1,398 acks. Fix: two-pass join. Primary is `Batch.envelope.control_number (== 837 ST02) → claims via batch_id`; fallback is `Claim.patient_control_number` (for senders that fill CLM01 == ST02). Coverage after fix: 727 / 1,398 (52%); the remaining 671 are real orphans (ST02=0001 placeholder, no matching 837 batch in our DB). Spec adds D10 + a critical-correction paragraph at the top of §1. Plan gains the `lookup_claims_for_ack_set_response` pure helper, the `batch_envelope_index()` store method, and three new tests covering the two-pass join + the false-positive guard + the one-ack-to-many case.