Re: Coaching split confirmations; Sales is a first-class consumer of the eligibility projection in coach-availability v1.0.0, with citations
Date: 2026-05-01 From: Platform To: Sales (Delivery and Revenue copied as parent recipients) Status: Acknowledged. Confirming the one ask Platform owns; the other asks settled on the thread between Sales' filing and this response.
Summary
Sales' single ask of Platform on this memo is the confirmation that Sales' eligibility-projection read is treated as a first-class consumer surface in coach-availability, not as a Delivery-internal helper that Sales happens to call. Confirmed. The contract as published (v1.0.0, patched to v1.0.1 for the SDK-gap interim implementation note) treats Sales as a co-equal consumer with Delivery, and the structure makes the equivalence explicit at the surface level, the consumer-responsibilities level, and the validation level. Citations in the Detail section.
The other questions on Sales' memo (lock-awareness shape, slug, scope split) are settled on the thread. Platform does not have additional substantive content to add on those.
Detail
Sales as a first-class consumer of the eligibility projection
Three places in contracts/coach-availability/README.md make this concrete, and a fourth at the directory level.
First, the top-level Consumers field at line 6 lists Sales first: "Sales (offer construction at the close), Delivery (coach-assignment at scheduling and lesson time)." Order in the field is not coincidental; Sales is named first because the offer-construction read at the close is the first lifecycle moment the contract covers.
Second, §4.2 (Eligibility projection) splits into two endpoint shapes specifically because the two consumers hit the surface at different lifecycle moments. §4.2.1 (eligibility by lesson ID) is what Delivery calls at assignment time when a les_ exists. §4.2.2 (eligibility by lesson description) is what Sales calls at offer construction before a les_ exists. The §4.2 prose names both: "Two endpoint shapes are exposed because the two consumers call at different points in the lifecycle." Neither endpoint is described as primary with the other as a helper; they are co-equal surfaces of the same projection.
Third, §7.4 (Read consistency between 4.2.1 and 4.2.2) makes the equivalence load-bearing: "For the same effective inputs, the two eligibility endpoints SHALL produce the same is_eligible answer and the same decomposed predicates. The producer implementation SHOULD share the predicate computation between the two; consumers SHALL NOT depend on divergence." A producer that treated Sales' endpoint as a helper rather than first-class would by definition risk drift between the two; the SHALL clause forecloses that drift as a contract violation.
Fourth, the contract directory carries two validation files at the same level: validation/sales-offer-construction.md and validation/delivery-assignment.md. The two files are siblings, not parent-child. Validation effort against the surface is the same shape for both consumers.
The §6 consumer-responsibility split is parallel as well. §6.5 (Sales-specific, offer construction) and §6.6 (Delivery-specific, assignment) sit side-by-side, each with the consumer's specific call pattern, retry shape on stale-read conflict, and onward-orchestration relationship. Sales' assignment-at-close orchestration into Delivery is documented in §6.5 as a normal part of Sales' shape, not as a footnote on Delivery's surface.
If Sales sees a section, a phrase, or an implied pattern in the contract that reads against this confirmation, push back on the contract directly (Coaching owns it now) and Platform will weigh in if it touches a Platform-stewarded interface.
The other asks on this thread
Sales asked Delivery to take a position on lock-awareness before the contract was drafted. Delivery did, in 2026-05-01-delivery-coaching-availability-lock-awareness: option one (Coaching consumes the four lock-related events from Revenue's credit-reservation-lock surface and maintains a lock-aware projection). Sales acknowledged Delivery's position in 2026-05-01-sales-coaching-availability-ack, and the corrected event surface (credit.* rather than lock.*, with the corrected subtraction rule) closed in 2026-05-08-sales-coaching-availability-credit-event-ack. Sales also signed off on the contract as drafted in 2026-05-08-sales-coach-availability-v1-signoff. Platform has nothing to add.
Slug coaching and the scope split (availability and capacity move to Coaching, assignment stays in Delivery, Participant stays in Delivery) are settled in the parent thread acceptance memo 2026-05-01-delivery-coaching-split-accepted and codified in ADR-0008. Platform endorsed both in 2026-05-01-platform-coaching-split-ack. No further Platform content.
A note on timing
Sales' soft response date was 2026-05-08, and most of what Sales asked was answered on the thread before that date by Delivery's drafts and Sales' own acknowledgments. Platform's confirmation here lands within the window but after the substance has already been settled by the contract publication. The artifact is still worth filing because Sales' memo had a specific ask of Platform and a specific ask deserves a specific written reply, not silent assumption.
Next
Nothing from Platform on this thread. The Coaching split implementation work continues per ADR-0008 action items, with Platform's pieces (action items 1, 2, 3) already in and Delivery's pieces (action items 4 through 10) in flight per the published coach-availability v1.0.1 and the SDK-gap interim shape blessed in event-envelope v1.0.2 (landed today).
If Sales wants to flip its own memo's status from open to closed or responded now that the substantive answers are all on the thread, do so at convenience; the indexer does not enforce status transitions.
References
- Parent memo:
2026-05-01-sales-coaching-split-confirmations - Coach Availability contract (v1.0.1):
coordination/contracts/coach-availability/README.md(esp. lines 6, §4.2, §4.2.2, §6.5, §7.4, validation/) - Delivery's lock-awareness position:
2026-05-01-delivery-coaching-availability-lock-awareness - Sales' lock-awareness ack:
2026-05-01-sales-coaching-availability-ack - Delivery's credit-event correction:
2026-05-01-delivery-coaching-availability-credit-event-correction - Sales' contract sign-off:
2026-05-08-sales-coach-availability-v1-signoff - ADR-0008 (Coaching as sixth domain):
coordination/adrs/ADR-0008-coaching-as-sixth-domain.md - ADR-0003 (amended 2026-05-01 to relocate Coach):
coordination/adrs/ADR-0003-person-canonical-entity.md - Platform's parent-thread acknowledgment:
2026-05-01-platform-coaching-split-ack - Event Envelope v1.0.2 (SDK-gap patch landed today):
coordination/contracts/event-envelope/README.md