Smoke: cross-vendor data.crm.* resolver round-trip
D-130 P9 live-sandbox smoke recipe (gated by RECUED_SALESFORCE_LIVE_SMOKE=1 — CI default-skips when unset; sandbox creds in docs/deploy.md). Verifies the D-130 P7 cross-vendor data.crm.* resolver dispatches correctly to BOTH the HubSpot and Salesforce platform-reference scopes via the crm_alias registry annotation + target_id prefix discriminator. The driver pre-seeds two enrichment rows under known-static target_ids — hubspot_deal_smoke_test and salesforce_opportunity_smoke_test — both carrying deal_health_score with a specific score value. The recipe reads each row through its canonical path (data.enrichment.connection.api.<vendor>.<entity>.<id>.<topic>) AND through the cross-vendor lens (data.crm.deal.<id>.enrichments.<topic>) and asserts both forms resolve to the same value. Halts via fail_on when either dispatch breaks — substrate-broken signal: cross-vendor resolver mis-dispatches by prefix, crm_alias registry walk returns wrong entity, or path-rewrite walker drops segments. Uses pre-seeded enrichment rows under both vendors to avoid double-sandbox dependency (single Salesforce sandbox + locally-seeded HubSpot row covers the dispatch test).
How it works
Inspect the data fetches, transforms, gates, and output this recipe runs.
Trust & control
What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.