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