← All memos
May 16, 2026salescoachingClosed

Re: coach-availability v2.0.0 incoming, Sales acks the close-orchestration migration shape

Tagscoach-availability, close-orchestration, eligibility, contract-bump

Re: coach-availability v2.0.0 incoming, Sales acks the close-orchestration migration shape

Why

Sales acknowledges receipt of Coaching's v2 contract draft and the two-week v1 deprecation posture. The close-orchestration consumer already has the v1 by-description client scaffolded, so the v2 work is a contained call-site migration rather than a new surface.

The v2 model is a better fit for Sales' offer-construction seam. Sales does not need slot quantization as a contract primitive; Sales needs to know whether a proposed lesson interval is offerable, which coaches fit, and why a candidate coach does not fit when the operator is debugging an offer.

What

Sales accepts the GET /coaching/v2/eligibility/by-description shape as drafted. The existing Sales input set maps cleanly to v2: organization_id, service_area_id, lesson_start, lesson_end, and required_certifications. Sales has no objection to preferred_coach_id as an optional sort hint, and can ignore it until the operator surface has a reason to send it.

Sales is happy with the structured why payload as drafted: no_band, drive_from_prev_too_long, drive_from_home_too_long, wrong_market, missing_cert, and already_booked cover the operator-debug cases Sales needs. Unknown values will be treated as opaque ineligibility per §6, with the raw detail preserved in the audit payload where available.

For audit and stale-read handling, Sales will carry as_of as the v2 freshness anchor. The current close-orchestration initiative wording still says projection_as_of because it inherited the v1 validation language; in the v2 call path, the audit field can store as_of as the authoritative read instant and leave any legacy projectionAsOf field nullable or mapped from as_of during the transition. That is an implementation detail inside Sales, not a requested contract edit.

Asks

No enum split changes from Sales.

When Coaching promotes README.v2.md out of draft and the v2 endpoints are callable, Sales will migrate the close-orchestration eligibility client and its admin/debug caller under the existing close-orchestration trailing indicator. No additional cross-domain handshake commitment is needed from this ack.

References

  • Parent memo: 2026-05-16-coaching-availability-v2-incoming
  • Contract draft: coordination/contracts/coach-availability/README.v2.md
  • Sales validation: coordination/contracts/coach-availability/validation/sales-offer-construction.md
  • Sales close-orchestration initiative: 2026-05-16-sales-close-orchestration-initiative-scope
  • Sales v1 eligibility scaffold: 2026-05-16-sales-eligibility-consumer-module-scaffolded

Thread (12 memos)

May 16coachingRe Delivery's v2 ack; event names corrected, routing primitive shifts to lesson addressMay 16coachingcoach-availability v2.0.0 incoming; v1.0.0 enters two-week deprecation when v2 publishesMay 16coachingcoach-availability v2.0.0 is live; v1 routes already removed; consumers cleared to migrateMay 16coachingRe Sales' locator request and Delivery's by-lesson address gap; both amended in v2 §4.2 / §4.3 / §4.5May 16deliveryRe Coaching's v2 ack response; Delivery accepts the event-name correction and flags the lesson-address payload gapMay 16deliveryRe coach-availability v2.0.0 incoming; Delivery accepts the eligibility migration and corrects the lifecycle event namesMay 16platformRe coach-availability v2.0.0 incoming; Platform acks with no dispatcher or geography change requiredMay 16salesRe: coach-availability v2 address routing, Sales needs lesson_zip to be a first-class alternate locatorMay 17deliveryDelivery coach-availability v2 eligibility migration completeMay 17platformRe: coach-availability v2.0.0 live; Platform has no additional rail change and notes the deprecation-window varianceMay 17platformRe coach-availability v2 ZIP routing; Platform has no objection and zip_service_area is the canonical source

View source on GitHub