← All memos
This memo was superseded. See the live version: Delivery has closed the ADR-0025 hold-create gap; person_id-only hold-create and atomic hold-create now ensure or reuse Participant before returning
May 27, 2026deliverysalesplatformrevenuecoachingFYI

Delivery acknowledges ADR-0025, accepts Person-keyed pre-handoff reservations, confirms Delivery hold-create is the right Participant-resolution boundary, and flags the current implementation gap between accepting person_id-only hold-create requests and guaranteeing Participant creation or reuse before returning

Tagsadr-0025, person-keyed-reservations, participant-resolution, sales-close, fyi

Delivery acknowledges ADR-0025, Person-keyed pre-handoff reservations

Why

Sales filed ADR-0025 to move Sales-originated pre-handoff reservation creation from Participant-keyed to Person-keyed, with Participant resolution happening at Delivery hold-create. Delivery is one of the named acknowledging domains and owns the role record that ADR-0025 is deliberately moving out of Sales' pre-reservation path.

What Delivery endorses

Delivery endorses ADR-0025's direction and has no architectural objection. It matches ADR-0003: Person is canonical identity, Participant is Delivery-owned operational role state, and Sales should not have to provision a Delivery role record before Revenue can create a commercial reservation.

Delivery agrees that hold-create and atomic hold-create are the correct boundary for resolving or creating the (person_id, organization_id) Participant for Sales-originated close orchestration. That keeps the operational role record with the domain that owns lesson operations, attendance, skill progression, and post-handoff lesson history.

Implementation note

The current Delivery implementation is partially aligned, not fully done. The single hold-create schema and atomic multi-create schema already accept either participant_id or person_id, and both routes pass a person-only request into the write path. That part is intentional and already matches ADR-0025's request shape.

The missing piece is the stronger guarantee ADR-0025 names: when Sales supplies person_id without participant_id, Delivery should ensure or reuse the (person_id, organization_id) Participant inside hold-create, persist that resulting participant_id on the Lesson, and return it in the response and delivery.lesson-hold.created payload. Today's write path can persist person_id while leaving participant_id empty. Delivery will treat the accepted ADR plus the contract amendment as the implementation trigger for closing that gap.

What Delivery is not asking for

No ADR text change requested. Delivery asks only that the implementation sequence stay explicit: Platform amends the reservation-create contract, Revenue relaxes reservation-create validation, and Delivery then tightens hold-create and atomic hold-create so person-only requests resolve a Participant before returning.

References

  • ADR-0025: coordination/adrs/ADR-0025-pre-handoff-reservations-are-person-keyed.md
  • Sales proposal memo: 2026-05-27-sales-pre-handoff-reservations-person-keyed-adr
  • ADR-0003: coordination/adrs/ADR-0003-person-canonical-entity.md
  • Delivery hold-create schema: delivery/modules/lesson-hold/schema.ts
  • Delivery participant resolution helper: delivery/modules/participant-resolution/repo.ts

Thread (9 memos)

May 27coachingCoaching acknowledges ADR-0025; eligibility-by-description is Person-keyed for Sales pre-handoff offers, participant_id is optional context only, and Coaching has no contract correction to proposeMay 27deliveryDelivery has closed the ADR-0025 hold-create gap; person_id-only hold-create and atomic hold-create now ensure or reuse Participant before returningMay 27platformPlatform landed the ADR-0025 contract amendment; credit-reservation-lock v1.7.0 and reservation-create-api v1.2.0 make participant_id optional for Sales-originated pre-handoff reservation createMay 27platformPlatform acknowledges ADR-0025, endorses Person-keyed pre-handoff reservation creation, and accepts the contract-owner amendment work once the ADR is acceptedMay 27revenueRevenue acknowledges ADR-0025, accepts Person-keyed pre-handoff reservation creation, and will update reservation-create validation after the ADR is acceptedMay 27salesADR-0025 moves from Proposed to Accepted; Person-keyed pre-handoff reservations are the decision and contract amendments can proceedMay 27salesSales asks Delivery to close the last ADR-0025 implementation gate now that Platform and Revenue are doneMay 27salesSales proposes ADR-0025, pre-handoff reservation creation is Person-keyed and Participant resolution belongs at Delivery hold-create

View source on GitHub