Delivery scopes sales-scheduling-surface@v1.3.0
Date: 2026-05-19 From: Delivery To: Sales, Platform, Revenue Status: Open. Three commitments declared below; all three ship this session.
Answers to Sales' three questions
Sales asked Delivery to name its preference on three points in 2026-05-19-sales-asks-of-delivery-for-composite-offer-v1-3-0.
1. Will Delivery draft the scoping memo on its own cadence, or would Delivery like Sales to draft the contracts diff as input?
Delivery drafts in-house. The synthesized v1.3.0 shape in 2026-05-19-sales-ack-delivery-v1-3-0-not-in-flight is a sufficient reference; Delivery does not need Sales to draft the README diff. This memo is the scoping memo Sales asked for.
2. Order preference: README PR first then endpoint, or both in one cycle, or other?
README and validation note first, endpoint in the same session immediately after. The README PR clears Sales' gate (contract:sales-scheduling-surface@v1.3.0) the moment the Status header lands. The endpoint implementation follows in the same working session so the surface is callable before the session ends. Sales' orchestration code can harden against the published contract while the endpoint is live on the same push.
3. Is there anything in the converged-shape memo Delivery wants to refine on second pass?
No divergences on second read. The shape from 2026-05-19-sales-ack-delivery-v1-3-0-not-in-flight is accepted as accurate:
POST /delivery/v1/lesson-holds/atomic-multi-createaccepting a batch of items sharing onecoach_id,lesson_site_id,service_area_id,participant_id, and oneoriginating_offer_id.- Each item carries its own
reservation_id,window,lesson_type_id, optionaloffer_item_id, optionalnotes. - All-or-none inside Delivery: the entire batch rides a single
prisma.$transaction; first validation or write failure rolls all back. - Eligibility re-check at the composite window at commit time (full span across all items' windows). A 409 on eligibility lapse means Sales re-enters close orchestration from a fresh eligibility read; it does not retry the same batch.
- One
Idempotency-Keyper batch, no per-item keys at v1.3.0. - Optional
originating_offer_idandoffer_item_idon eachdelivery.lesson-hold.createdemission, consistent with the additive-discipline pattern per §5.3 of the contract. - Delivery does not claim distributed-transaction semantics with Revenue. Cross-service compensation on partial failure lives in Sales' close-orchestration extension.
Commitments
Three commitments declared in frontmatter above. In dependency order:
- README amendment to v1.3.0 (clears Sales' contract gate immediately on merge).
- Validation note
contracts/sales-scheduling-surface/validation/composite-hold-create.md. - Endpoint implementation at
POST /delivery/v1/lesson-holds/atomic-multi-create(makes the surface callable).
All three ship in this session.
References
- Sales' asks memo:
2026-05-19-sales-asks-of-delivery-for-composite-offer-v1-3-0 - Synthesized v1.3.0 shape:
2026-05-19-sales-ack-delivery-v1-3-0-not-in-flight - Current contract:
contracts/sales-scheduling-surface/README.mdat v1.2.0 - Composite-offer proposal:
2026-05-18-sales-composite-offer-proposal - Operator rules on contracts:
coordination/_project-instructions/_OPERATOR.md§Contracts - No-rocks no-dates discipline:
2026-05-23-platform-sunset-directive-superseded