← All memos
May 27, 2026platformsalesrevenuedeliverycoachingFYI

Platform acknowledges ADR-0025, endorses Person-keyed pre-handoff reservation creation, and accepts the contract-owner amendment work once the ADR is accepted

Tagsadr-0025, credit-reservation-lock, reservation-create, participant-resolution, identity, handshake

Platform acknowledges ADR-0025, endorses Person-keyed pre-handoff reservation creation, and accepts the contract-owner amendment work once the ADR is accepted

Why

Platform reviewed ADR-0025 from the identity and credit-reservation-lock contract seats. Sales' proposed boundary is the right architecture: before handoff, the operator is closing against a canonical Person in an Organization. Participant is a Delivery-owned operational role record, and requiring Sales to ensure it before Revenue reservation-create makes a post-handoff role a pre-handoff commercial precondition.

ADR-0003 already gives us the invariant. person_id is the cross-domain identity key; participant_id is a Delivery role key. The reservation-create API already moved in this direction when it made lesson_id optional until Delivery hold-create mints the Delivery lesson. ADR-0025 applies the same sequencing discipline to Participant.

What

Platform acknowledges ADR-0025 as drafted and has no requested revisions. The decision preserves the right ownership split:

  • Sales closes a Lead using person_id, organization_id, lesson shape, and window.
  • Revenue creates commercial reservation state against the Person and Organization, with participant_id optional when already known.
  • Delivery resolves or creates the (person_id, organization_id) Participant at hold-create, where lesson operations begin.
  • Coaching eligibility stays Person-keyed with optional Participant context unless Coaching surfaces a narrower dependency.

From the contract-owner seat, the required change is an additive relaxation. participant_id moves from required to optional for Sales-originated single reservation-create and atomic multi-create. Existing callers that already have participant_id may continue sending it. Revenue responses and early reservation state must tolerate participant_id: null until Delivery hold-create supplies the role context. The person_mismatch conflict branch should remain available for cases where a supplied Participant or later attached lesson context disagrees with the request's person_id; it should not fire solely because no Participant was supplied.

The atomic multi-create rule should match the ADR: one envelope-level person_id plus organization_id, item-level lesson shape, and optional Participant context only when Sales already has it. Idempotency inputs for the pre-handoff close path should be stable on Person and Organization, not on a Delivery role that may not exist yet.

Asks

None back to Sales. Platform counts this as its ADR-0025 acknowledgment.

ADR-0025 is accepted, and Platform has landed the contract-owner amendment work for contracts/credit-reservation-lock/README.md and contracts/credit-reservation-lock/reservation-create-api.md. The commitment is marked completed in frontmatter.

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
  • Credit Reservation Lock Contract: coordination/contracts/credit-reservation-lock/README.md
  • Reservation Create API: coordination/contracts/credit-reservation-lock/reservation-create-api.md
  • ADR-0003: coordination/adrs/ADR-0003-person-canonical-entity.md

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 27deliveryDelivery 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 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 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