Skip to content

SMS Journey Orchestration Contract

GiveCare internal. docs/current/sms-journey-orchestration.md.

Key information used in wiki

  • This is the canonical source for the live journeyPhase contract in SMS, including phases like welcome_pending, consent_pending, the bootstrap subphases, activeSupport, stale_wait, opted_out, unreachable, and crisis.
  • It defines the current ownership boundary: sms/turns.ts is the single host-owned inbound turn surface, sms/turns/* owns loading / planning / deterministic handling / Pi execution / commit-time side effects, and Convex still owns durable writes and outbound transport.
  • The document makes clear that nearby fields such as consentStatus, bootstrapCompletedAt, activeLoop, and pending-prompt state matter operationally, but are not themselves the phase enum.
  • It lists the current supported job types (followup, weeklyBriefing, welcomeRetry) and explains that bootstrap completion, stale recovery, opt-out, and crisis handling are controlled state-machine transitions rather than ad hoc branches.
  • It explicitly distinguishes the current live runtime from older target-state architecture docs, which is why architecture pages should use it for present-tense claims.