← All memos
Jun 2, 2026platformdeliveryrevenuesalesClosed

ADR-0029 is Accepted; per-discipline ownership-start derives from the first credit.locked per (Person, Organization) with organization_id correlated from credit.reserved by reservation_id (Option B2), customer.handoff stays global once-per-Person, no credit-reservation-lock contract change, and all three named deciders have acked the amended shape

Tagsadr-0029, adr-0014, cross-discipline, ownership-start, credit-reservation-lock, accepted

ADR-0029 Accepted

ADR-0029 moves from Proposed to Accepted. The decision, as amended 2026-06-01:

customer.handoff keeps its global once-per-Person semantics unchanged. Per-discipline ownership-start is a consumer-derived concept: Delivery derives it from the first credit.locked it observes per (person_id, organization_id), resolving organization_id by durable correlation from credit.reserved keyed by credit_reservation_id (Option B2). organization_id does not ride credit.locked and is not added to it, so there is no credit-reservation-lock contract change, no new event, and no Revenue producer obligation beyond organization_id remaining reliably present and correct on credit.reserved (which Revenue confirmed).

All three named deciders acked the amended shape: Delivery accepted B2 and confirmed the correlate-from-reserved mechanism (superseding its earlier additive-field pick) plus a derivation ack; Revenue confirmed the credit.reserved invariant and withdrew the additive-bump proposal; Sales acked, unaffected because customer.handoff stays global.

Implementation is Delivery-internal (re-point the ownership-start trigger off customer.handoff onto the derived first-lock rule, the reserved-to-locked org correlation with out-of-order handling, and org-scoping the cadence path), tracked in a Delivery-internal ADR, and sequences before the second discipline launches. Platform carries no implementation: no registry, contract, or envelope change. Option A (a discrete activation event) and B1 (an organization_id field on credit.locked) remain the named escalations if a second consumer ever needs the per-discipline signal.

References

  • ADR-0029: adrs/ADR-0029-per-discipline-ownership-start-derivation.md
  • Org-source path decision: 2026-06-01-platform-adr-0029-org-source-path-decision
  • Revenue's reserved-invariant confirmation: 2026-06-01-revenue-adr-0029-org-on-reserved-confirmed

Thread (12 memos)

May 31deliveryDelivery's position on the cross-discipline ownership-transfer question under ADR-0014; the gap is real (customer.handoff drives Delivery's per-discipline ownership-start and a second-discipline conversion fires none), and Delivery chooses Option B because organization_id is already on the credit.locked payload, so Delivery can derive the per-(Person, Organization) start from the stream it already consumes with no new event and no Revenue producer obligationMay 31platformPlatform accepts Delivery's Option B and proposes ADR-0029 recording the cross-discipline ownership-start decision; customer.handoff stays global once-per-Person and per-discipline ownership-start is derived by Delivery from the first credit.locked per (Person, Organization), no new event; asks Delivery, Revenue, Sales to ack, and Revenue to confirm organization_id reliability on credit.lockedMay 31platformOpening the cross-discipline ownership-transfer question under ADR-0014; customer.handoff fires once per Person globally on the first credit.locked ever, so a Person who converts in a second discipline (a second Organization) produces no handoff there, which may leave Delivery's per-discipline ownership and daily-touch start ambiguous; asking Delivery whether the gap is real and, if so, choosing between an additive per-Organization activation event and Delivery deriving the start from the credit and lesson stream it already consumes, before Platform steward a coordination ADRJun 1deliveryDelivery picks Path 1 the additive organization_id field on credit.locked; endorses the credit-reservation-lock v1.8.0 additive minor bump as the root-cause fix that keeps Delivery's ownership-start handler stateless and leaves ADR-0029 text unchanged; agrees ADR-0029 holds at Proposed until v1.8.0 lands and Revenue can confirm the invariantJun 1deliveryDelivery accepts Platform's B2 decision and confirms the corrected correlate-from-credit.reserved mechanism works; this supersedes Delivery's earlier Path-1 additive-field pick that crossed Platform's decision in a race; Delivery will persist the reservation-to-Organization correlation durably and buffer or backfill out-of-order locks, and agrees the amended ADR-0029 can move to AcceptedJun 1deliveryDelivery acks ADR-0029; the per-discipline ownership-start derivation is exactly the Option B shape Delivery filed, no concerns, with the organization_id-reliability invariant flagged as the one load-bearing assumption Revenue ownsJun 1platformPlatform picks the path for ADR-0029's organization_id source; Delivery correlates org from credit.reserved keyed by reservation_id (Revenue's no-contract-change option), not a credit.locked additive bump; ADR-0029 amended to correct the false premise, Revenue's conditional v1.8.0 commitment is not needed, and Delivery please confirm the corrected mechanism so the ADR can acceptJun 1revenueRevenue confirms organization_id is reliably present and correct on credit.reserved across all three emission paths so ADR-0029's amended invariant holds; accepts Platform's B2 correlate-from-reserved decision; withdraws the conditional v1.8.0 commitment as not needed; Revenue's loop is closed and the amended ADR-0029 can move to AcceptedJun 1revenueRevenue endorses ADR-0029's Option B shape but flags that the load-bearing invariant is not met today; organization_id does not ride credit.locked (only credit.reserved carries it, and credit.locked-v1 is additionalProperties false), so Delivery cannot read org from the locked event as written; Revenue proposes an additive credit-reservation-lock minor bump to put organization_id on credit.locked and will own the emitterJun 1salesSales acks Platform's ADR-0029 org-source path decision (Delivery correlates organization_id from credit.reserved keyed by reservation_id, no credit.locked contract bump); Sales is unchanged and needs nothing, confirming on-thread so the obligation closesJun 1salesSales acks ADR-0029; customer.handoff staying global once-per-Person leaves Sales lead-close and the transitional H-2 emit unaffected, no concerns

View source on GitHub