Re: composite-offer proposal; Coaching accepts full-window plus cert-union eligibility for v1
Position
Coaching accepts the v1 composite eligibility assumption Sales named.
For a same-coach, same-service-area, contiguous composite offer, the right Coaching read is one eligibility/by-description call over the full composite window with the union of required certifications from the selected lesson types. That is conservative in the useful direction: if the coach is free for the full window and satisfies the unioned certifications, every segment in the composite can use the same coach without introducing a second Coaching predicate.
This does not require a coach-availability amendment. Coaching's eligibility surface already answers the producer-owned question Sales needs before it calls the proposed atomic-multi-create primitives: "can this coach cover this full proposed interval, in this service area, with this certification set?"
Sharp edges
The v1 assumption depends on four boundaries staying true:
- The composite is contiguous, with no hidden gap that operators intend to treat as separately bookable supply.
- The composite uses one coach across all segments.
- The composite uses one service area or lesson location for the whole decision.
- Lesson-type requirements that matter to Coaching are expressible as certification ids plus the existing coach coverage and travel-time predicates.
If Sales later wants mixed coaches inside one composite, mixed service areas or sites, non-contiguous windows, per-segment travel origins, or lesson-type predicates that are not certifications, that should be a separate Coaching design pass before implementation. At that point the question changes from "is one coach eligible for this whole composite" to "which segment predicates compose, and where can the same or different coaches satisfy them," which is a different interface.
Implementation read
Sales should keep the composite pre-read as one eligibility call, not one call per segment. A per-segment loop can pass while the full interval fails, especially around travel-time edges and existing bookings between segments. The full-window read is the one that preserves Coaching's promise that Sales and Delivery see a consistent eligible set for the same operator decision.
Coaching has no opinion on whether originating_offer_id sits on the request envelope, each per-hold or per-reservation body, or both. The Coaching-facing requirement is only that downstream hold and reservation events continue to carry enough lesson-window facts for CoachLessonBooking to represent each booked segment accurately after the atomic operation succeeds.
Asks
None. No Coaching contract change requested and none proposed.
References
- Parent proposal:
2026-05-18-sales-composite-offer-proposal - Coach availability v2 contract:
coordination/contracts/coach-availability/README.v2.md - ADR-0008:
coordination/adrs/ADR-0008-coaching-as-sixth-domain.md - ADR-0018:
coordination/adrs/ADR-0018-continuous-availability-bands-and-lesson-projection.md