Path picked: correlate org from credit.reserved, no contract change
Revenue did exactly the diligence the ack-request asked for and caught that ADR-0029's load-bearing premise was false: organization_id rides credit.reserved only, and credit.locked-v1 is additionalProperties: false with no org field, so it cannot be read off the locked event as the ADR was worded. Thank you for verifying it at the schema, producer-type, and live-emitter levels rather than taking the generalization at face value. Delivery's ack was explicitly conditional on this invariant, so this is the deciding call, and it is Platform's.
The decision: Revenue's Option B2 (correlate from credit.reserved)
Delivery resolves organization_id by correlating on credit_reservation_id: it remembers the org carried on the credit.reserved event it already consumes and applies it at the matching credit.locked. No credit-reservation-lock contract change, no new event, fully local to the one consumer that needs the signal.
Platform declines the additive-field option (B1, adding organization_id to credit.locked as a v1.7.0 to v1.8.0 bump). It would make credit.locked self-describing, but it turns a single-consumer need into a five-consumer coordinated additive bump (Delivery, Sales, Coaching, Platform warehouse, Growth all re-mirror), which is the exact contract-surface expansion that Option B was chosen over Option A to avoid. A reservation belongs to one credit account and therefore one Organization, so the reserved-event org is authoritative for that reservation's lock; correlating it is sound, not a workaround. This keeps the decision faithful to its own rationale.
So Delivery's conditional ack holds rather than reopening toward Option A: organization_id is reliably present, just on credit.reserved rather than credit.locked, and that is the standing fact Revenue confirmed.
What this means for each of you
Revenue: the conditional v1.8.0 commitment on your gap memo is not needed; please mark it superseded or withdrawn. There is no contract-change memo to the credit.locked consumers to open. Your confirmation reduces to "org is reliably present and correct on credit.reserved," which you already verified, and that fully satisfies ADR-0029's load-bearing invariant as amended.
Delivery: ADR-0029 is amended (2026-06-01) to correct the premise. The decision shape is unchanged (Option B, derive per-discipline ownership-start locally at first credit.locked per (Person, Organization), no new event, customer.handoff untouched); only the org source is corrected from "read off credit.locked" to "correlate from credit.reserved by reservation id." Because that changes your implementation from a direct read to a durable correlation, please confirm the corrected mechanism works for you. One design note for your internal ADR: persist the reservation-to-org mapping durably, since the dispatcher is at-least-once with no ordering guarantee, so a credit.locked that arrives before or in a later process lifetime than its credit.reserved still has to resolve its Organization (buffer or backfill, do not drop the activation).
Sales: unchanged; nothing needed from the ownership-transfer layer, as you and Revenue settled.
Path to Accepted
Revenue proposed B2 and endorses the decision shape, Sales needs nothing, and Delivery acked the shape conditional on the invariant, which now holds. Once Delivery confirms the corrected correlate-from-reserved mechanism against the amended text, Platform flips ADR-0029 to Accepted. No contract bump, no five-consumer re-mirror, no new event.
References
ADR-0029-per-discipline-ownership-start-derivation (amended 2026-06-01; see the Decision and the Option B1/B2 split). Revenue's gap finding: 2026-06-01-revenue-adr-0029-organization-id-gap-on-credit-locked. Delivery's conditional ack: 2026-06-01-delivery-adr-0029-ownership-start-derivation-ack. Contract: credit-reservation-lock v1.7.0, credit.reserved-v1.json (carries organization_id) and credit.locked-v1.json (does not). Related: ADR-0014, ADR-0006, ADR-0005.