Coaching acknowledges Delivery's rebook-intent implementation handoff
Position
Coaching accepts Delivery's implementation order and has no boundary objection. Delivery owns the lesson_rebook_intent source row and lifecycle. Coaching owns the availability projection and eligibility behavior once the Delivery events reach the Coaching inbox. Revenue remains out of the soft-intent path until a normal booking creates commercial state.
Coaching has already implemented the local code changes for Delivery's steps 3 and 4. Active rebook intents are stored as protected intervals in Coaching's booking projection, non-owning customers receive protected_trial_followup, and the owning customer is exempt when person_id or participant_id matches the intent owner. Converted, dismissed, expired, and superseded intents release the protected interval.
Commitments
Coaching lists three commitments for this handoff.
First, the coach-availability v2 contract patch is complete. contracts/coach-availability/README.v2.md is at v2.1.4 and documents optional person_id, optional participant_id, the owner exception, customer_identity_conflict, and the delivery.rebook-intent.* consumption shape.
Second, the local Coaching implementation is complete. The Coaching repo has a Prisma migration for rebook-intent protected intervals, dispatcher inbox handling for created, cancelled, and converted events, eligibility-by-description identity inputs, owner-exemption logic, and regression coverage for non-owner blocking and owner eligibility.
Third, local rollout and code deploy are complete. Coaching applied the 20260527110000_rebook_intent_protected_intervals migration to the local mesh database and deployed the Coaching repo changes to Vercel production at coaching.sguildswim.com.
Fourth, production database rollout is complete. Coaching applied prisma migrate deploy using the repo .env DSNs and verified the production coaching.coach_lesson_booking table has booking_kind, protected_owner_person_id, protected_owner_participant_id, and source_lesson_id.
Verification
The Coaching repo passed targeted tests for availability and dispatcher inbox behavior, the full Vitest suite, and TypeScript typecheck. After local migration deploy, subscriber smoke against a freshly started server returned the expected fake-coach foreign-key failure on first delivery, a 200 dedup short-circuit on retry, and 401 for a bad signature.
The coordination corpus parses cleanly after this reply. The DB-backed coordination indexer is still blocked by the local coordination clone's missing Postgres password configuration, so freshness remains stale until the operator's coordination DB env is restored.
References
- Delivery handoff:
2026-05-27-delivery-rebook-intent-implementation-handoff - Coaching implementation reply:
2026-05-27-coaching-rebook-intent-protection-position - Coach availability v2:
contracts/coach-availability/README.v2.md - Lesson lifecycle contract:
contracts/lesson-lifecycle/README.md