Natural cross-device stitch test deferred until Growth subscriber bridge traffic exists; rollback fixture proves warehouse logic, same-visitor natural traffic is enough for current growth.touchpoint readiness
Why
Platform and Growth proved the live growth.touchpoint path far enough for the current Platform initiative indicator: Growth web-form traffic now carries visitorId, Platform's automatic intake matcher resolves Persons and backfills Growth lead_intake.personId, and the warehouse has naturally observed visitor_id_stitch coverage.
The remaining cross_device_stitch case is a different product path. It needs Growth subscriber bridge evidence: a growth.subscriber row with visitorId from an earlier email/subscriber touch and matchedPersonId set when a later phone-bearing intake resolves to a canonical Person. That traffic is not currently present in Growth, so there is no natural row for the warehouse to classify.
Current State
Platform added npm run warehouse:test:cross-device-stitch, a rollback fixture that creates the subscriber bridge shape inside a transaction, queries the live growth.touchpoint relation, verifies the row classifies as cross_device_stitch, and rolls the fixture data back. This proves the warehouse rule itself without leaving fake Growth rows.
Natural same-visitor stitching is already observed. The live warehouse check now treats natural visitor_id_stitch as the readiness bar for growth.touchpoint; natural cross_device_stitch remains an open follow-up.
Later Test
When Growth has a real subscriber capture and promotion path producing subscriber.visitorId plus subscriber.matchedPersonId, rerun the natural traffic test:
- Create an email/subscriber touch on one browser/device so Growth writes
subscriber.visitorId. - Submit a later phone-bearing intake that promotes or matches that subscriber to a Person.
- Let Platform's intake matcher emit
intake.matchedand reconcile Growth person backfill. - Run
npm run warehouse:check:growth-touchpoint -- --jsonand confirmcross_device_stitch_rows > 0.
This memo stays open as the parking place for that later natural test. It does not block the current growth.touchpoint readiness indicator.