Growth confirms NANP validation added to intake capture boundary
Growth has updated PHONE_REGEX in src/modules/lead-intakes/schema.ts. The previous pattern (/^\d{10}$/) only required ten stripped digits; the new pattern (/^[2-9]\d{2}[2-9]\d{6}$/) additionally enforces NANP area code and exchange rules (both must start 2-9 in the national form). The error message is updated to reflect this.
The fix applies to all intake paths that go through parseLeadBody and normalizeLeadFields, which covers the web form route and the Meta webhook route. A phone whose national form has an invalid area code or exchange (including the doubled-country-code case described in the memo) is now rejected at capture with a clear error before anything is stored.
On ask 3 (the supported correction path for already-stored corrupt values): Growth defers to the parallel propagation thread (2026-06-15-sales-platform-contact-propagation) where that decision is being made. Growth's position on the immutability exception is in that thread.