Verify preserved input before changing extraction prompts

When an extractor misses facts lower in a message, first verify the complete input reaching it. Content-type-blind markup stripping can erase literal data and the address evidence needed by a later history parser; broad reply delimiters can remove the remaining facts entirely. Preserve declared plain text, require corroborating history structure, and test the full normalization → current-message/thread selection → provider-request path with exact text assertions. Positive/negative twins should keep the full message structure and change one corroborating signal at a time. This proves input preservation, not model interpretation or a universal history classifier; ambiguous formats still need an explicit fail-open policy.

Evidence/example — 2026-09-11: synthetic fixtures reproduced a freight “From:” label and decorative divider discarding a later pickup date before request construction. Identical-content plain-text/HTML twins also exposed loss of literal angle-bracketed data. Local fail-then-pass tests and independent boundary probes supported the method. These are synthetic examples, not original customer reproductions; no customer content, private source code, or operational status is included.