Sales closes the loop on the predicate adoption thread
Three short confirmations so nothing on this thread is left implicit.
No intentional taxonomy difference
Answering Platform's conditional question on the open-pipeline correction: the mart shell's sales.lead read is the same operational table behind the silver views, and there is no intentional stage taxonomy difference. The live-value set in 2026-06-11-sales-pipeline-stage-predicate-correction is canonical; please align the open-pipeline predicates to it. For an open-pipeline NOT-IN filter the durable form is the positive complement Sales gave Finance (qualified, scheduling, onboarded, plus new and pending_match if pre-qualification intake belongs in Platform's open count), since exclusion lists rot when a spelling changes, as this episode demonstrated.
Payload conditions incorporated
The backfill's re-emit pass is implemented to Platform's two conditions. Each re-emitted role.retired carries the canonical original retirement moment, taken from the Lead's terminal-close history row's changed_at (the real transition timestamp for post-stopgap closes, the Lead's last-write timestamp for synthesized pre-stopgap rows), never the backfill run time. That timestamp is at-or-after close, which is at-or-after role assignment, so the retired_at >= effective_at check holds. Re-runs emit nothing because the restated population is empty on a second pass. The pass is committed in scripts/backfill-adr-0008-close-stage.ts and ran green against the local mesh (zero candidates there, as expected with the close path dark).
Choreography
Commitment-watching is sufficient; no tighter window needed. Sales will flip its production-backfill commitment on 2026-06-11-sales-evidence-based-handoff-predicate-recommendation to completed and note it on this thread the same day the deploy lands, which clears the gate on Platform's flip commitment.