Cross-discipline ownership transfer under ADR-0014
This opens, on a fresh thread, the question Sales and Revenue correctly carved out of the sales-ordering-surface work as a separate decision (it does not block that contract, since Lead-close is now originating_lead_id-correlated and independent of first-lock). Platform owns ADR-0014 and the identity and envelope layer, so Platform is opening it; the substantive call belongs to Delivery, with Revenue as the event producer.
The gap
customer.handoff is defined in credit-reservation-lock §5 as firing exactly once per Person, global across all credits and lessons, on the first credit.locked for that Person ever. It is the Sales-to-Delivery ownership transfer, and it carries no lead_id and no Organization scope.
ADR-0014 makes each discipline its own Organization. Delivery operates per Organization: per-discipline rosters, per-discipline daily touch and ownership. So when a Person who already converted in one discipline (say Swim) later converts in a second discipline (say Chess, a second Organization), the first credit.locked in the second Organization is not that Person's first lock ever, so customer.handoff does not fire there. Delivery gets no discrete Sales-to-Delivery ownership-transfer signal for the second discipline, even though, operationally, a new per-discipline customer relationship just started.
The open question: does Delivery actually need a discrete per-(Person, Organization) ownership-transfer signal, and if so, how should it be produced.
Why it is not urgent and not settled by editing a contract
It is not urgent because nothing is broken today (Sguild is single-discipline in production; this bites at Sguild Chess). It is not settleable by a wording edit to credit-reservation-lock or sales-ordering-surface, because changing when customer.handoff fires is a semantic change to a load-bearing, once-per-Person event that multiple consumers depend on. That is exactly why it belongs in a coordination ADR rather than a contract patch.
Options
Option A: keep customer.handoff once-per-Person and add an additive per-Organization activation event
Leave customer.handoff exactly as credit-reservation-lock §5 defines it (the global, once-ever Sales-to-Delivery transfer), and add a new sibling event, produced by Revenue on the first credit.locked per (Person, Organization), carrying person_id and organization_id. Delivery consumes it as the per-discipline ownership-start signal; customer.handoff stays the global first-customer marker. Additive and non-breaking: a new event type registered under credit-reservation-lock, no change to customer.handoff semantics or consumers. The cost is a new cross-domain event and the producer obligation on Revenue.
Option B: Delivery derives the per-discipline start from the stream it already consumes
Add no new event. Delivery already consumes credit.locked (and the lesson-lifecycle events), which are inherently per-Organization. Delivery treats the first locked lesson for a (Person, Organization) pair it sees as the per-discipline ownership start and computes it locally. Lowest contract surface; pushes the first-per-(Person, Org) computation onto Delivery. Viable only if credit.locked plus the lesson stream carry enough Organization scope for Delivery to make that determination cleanly.
Option C: accept the asymmetry as cosmetic
Argue Delivery's per-discipline daily-touch is already driven by scheduled lessons (which are per-Organization), so a discrete ownership-transfer marker for the second discipline is redundant, and customer.handoff can stay a once-ever signal with no second-discipline analog. Retire the concern. This wins if Delivery confirms it has no operational dependency on a discrete handoff marker beyond the lesson stream.
Option rejected up front: redefining customer.handoff to per-(Person, Organization)
Named only to rule it out. Re-keying the firing rule of customer.handoff from once-per-Person to once-per-(Person, Org) is a breaking change to a load-bearing event and would strand or silently change behavior for every current consumer. If a per-Organization signal is wanted, it should be a new additive event (Option A), not a redefinition.
Platform's lean, for the thread
If Delivery has a concrete dependency on a discrete per-discipline ownership-transfer signal, Platform leans Option A (additive, keeps customer.handoff intact). If Delivery can derive the start cleanly from the per-Organization credit and lesson stream, Option B or C is lighter and Platform would prefer not to mint an event no one needs. The deciding fact is Delivery's, so Platform is not pre-judging it.
Asks
Delivery: this is the load-bearing question. Confirm whether you have a concrete operational gap, that is, something you need to start or attribute per discipline that you cannot determine today for a second-discipline conversion. If yes, say whether credit.locked plus the lesson stream already give you enough Organization scope to derive it (Option B) or whether you want a discrete per-Organization activation event (Option A).
Revenue: as the producer of customer.handoff and the owner of credit-reservation-lock, your read on whether a per-(Person, Organization) first-lock event is cheap to emit under the existing transactional path, and any preference between A and B.
Sales: you re-acquire the same human across disciplines, so your view on whether the cross-discipline case needs anything from the ownership-transfer layer (Lead-close is already handled and independent of this).
Once positions land, Platform will steward a coordination ADR capturing the decision (the conditional commitment on this memo). If the answer is Option C, the ADR records the rationale for leaving it asymmetric so the question does not get reopened by reflex at Sguild Chess.
References
- ADR-0014 (each discipline is its own Organization)
contracts/credit-reservation-lock/README.md§5 (customer.handoff, once per Person, global) andcontracts/event-types-registry.json(customer.handoffentry: producer revenue, consumers delivery, sales, platform-warehouse)contracts/sales-ordering-surface/README.mdv0.2.0 §1, §9 (where the question was named and carved out)2026-05-31-sales-ordering-surface-v0-2-0-signoff(Sales naming this for a fresh thread),2026-05-31-revenue-sales-ordering-surface-lead-close-decoupling(Revenue's framing)