Skip to content

Authority Doc / Public V1 Lifecycle

Workflow states define how CoachMe moves from invite to active coaching, review, pause, end, and retention.

This page is the source of truth for cross-feature lifecycle states and gates in Public V1. Feature pages can add local implementation detail, but they must not invent states or transitions that conflict with this map.

Core Coaching + Nutrition BaselineCoach Web BuildersCoach Mobile ReviewClient Mobile Execution

Note

Public V1 uses coach web as the primary creation surface, coach mobile for review, messaging, task inbox, client context, progress, nutrition review, risk signals, and lightweight actions, and client mobile for daily execution. Full coach mobile builder parity, full Priority view, payments, broad integrations, and comprehensive food provider search remain Post-V1.

Public V1 End-To-End Loop

The canonical happy path proves one paid coaching relationship from setup through execution and review.

1. Coach Setup

Coach registers, creates the workspace, configures baseline settings, and prepares the first client invitation.

Workspace

2. Invite And Register

Client validates an active invitation, registers or logs in with a matching verified contact, and enters onboarding.

Identity

3. Onboard And Review

Client completes or skips the onboarding questionnaire. Coach reviews profile, questionnaire, goals, status, and private notes before assignment.

Readiness

4. Assign

Coach web assigns forms, programs, nutrition guidance, meal plans, supplements, and reminders when gates allow publishing.

Coach Web

5. Execute

Client mobile presents Today tasks, workouts, meals, check-ins, progress prompts, messages, and offline-capable workout logging.

Client Mobile

6. Review And Adjust

Coach reviews adherence, workouts, progress photos, measurements, risk signals, task inbox items, and messages, then manually adjusts coaching plans.

Coach Review

7. Continue Or Exit

The relationship continues, pauses, ends, reactivates, or enters deletion/export handling under privacy and retention policy.

Lifecycle

Whole-Workflow Correlation Boundaries

This map owns canonical workflow starts, terminal outcomes, and hand-offs; API owns identifier issuance and Observability owns propagation and search expectations.

General Rule

  • One API-issued correlationId follows retries and steps in the same bounded product workflow.
  • Later independent workflows receive a new identifier and remain linked by canonical domain ids and receipts.
  • The identifier never becomes a permanent coach-client relationship identifier or a W3C trace id.
  • Feature authorities name equivalent start/end boundaries for upload, notification, and other multi-step workflows.

Invitation Acceptance Example

The workflow starts when the API begins an acceptance attempt for the presented invitation, before invitation-state and contact validation. An ACTIVE invitation continues through authentication return, account binding, relationship creation, and onboarding-context creation.

Success ends only when the invitation is CONSUMED, the relationship is ONBOARDING, and the onboarding context exists. EXPIRED, REVOKED, and contact mismatch are terminal failure outcomes for that attempt.

Canonical State Machines

These states are the shared lifecycle vocabulary for Public V1. Feature docs may add local rules, but they must preserve these names, transitions, and downstream effects.

CoachWorkspace

The workspace controls whether a coach can operate the platform and invite clients.

StateMeaningAllowed TransitionsDownstream Effects
DRAFTWorkspace exists but setup is not ready for active coaching.ACTIVE, CLOSEDBlocks client invitations, publishing, and coach-facing operational surfaces.
ACTIVEWorkspace is usable for Public V1 coaching workflows.SUSPENDED, CLOSEDAllows invitations, onboarding, assignments, review, communication, and progress tracking.
SUSPENDEDWorkspace access is temporarily restricted by operational or policy action.ACTIVE, CLOSEDRestricts new invites, publishing, and non-essential coach actions while preserving records.
CLOSEDWorkspace is no longer available for active coaching.TerminalRetains or anonymizes records according to privacy and retention rules.

ClientInvitation

Invitations are single-client access paths into registration and onboarding.

Invite validation is not consumption. The invite is consumed only when account binding succeeds and the relationship/onboarding context is created.

StateMeaningAllowed TransitionsDownstream Effects
ACTIVEInvitation can be used by the intended client contact.EXPIRED, CONSUMED, REVOKEDAllows client registration, login binding, and onboarding start when contact checks pass.
EXPIREDInvitation passed its validity window before use.Terminal; issue a new ACTIVE inviteBlocks registration from that invite and requires coach action.
CONSUMEDInvitation was accepted and bound to a client account.TerminalPrevents reuse and hands control to the relationship and onboarding workflows.
REVOKEDCoach or system invalidated the invite before acceptance.Terminal; issue a new ACTIVE inviteBlocks registration and surfaces an invite replacement path to the coach.

CoachClientRelationship

The relationship state determines whether the coach can manage, review, pause, end, or reactivate client work.

StateMeaningAllowed TransitionsDownstream Effects
INVITEDCoach has invited the client, but onboarding has not started.ONBOARDING, ENDEDBlocks duplicate active coach acceptance and waits for invite completion.
ONBOARDINGClient is registered and completing required setup and review inputs.ACTIVE, PAUSED, ENDED, DELETED_OR_ANONYMIZEDEnables onboarding, profile readiness, form collection, and coach review gates.
ACTIVEClient is in active coaching and eligible for daily execution.PAUSED, ENDED, DELETED_OR_ANONYMIZEDAllows assignment, Today projection, reminders, messages, risk signals, and progress review.
PAUSEDRelationship is intentionally inactive but not ended.ACTIVE, ENDED, DELETED_OR_ANONYMIZEDSuppresses selected reminders and risk escalation while preserving context.
ENDEDCoaching relationship is closed for active editing.ACTIVE through explicit reactivation, DELETED_OR_ANONYMIZEDRemoves coach edit access except allowed reactivation, retention, export, or deletion paths.
DELETED_OR_ANONYMIZEDRelationship data was deleted or anonymized under policy.TerminalRemoves identifiable coaching context and keeps only permitted audit or aggregate records.

OnboardingWorkflow

A skipped questionnaire creates COMPLETED_WITH_PENDING_TASK and blocks program/nutrition assignment until submitted or explicitly cancelled.

StateMeaningAllowed TransitionsDownstream Effects
NOT_STARTEDClient has not begun onboarding.IN_PROGRESS, PAUSED, CANCELLEDBlocks profile readiness and assignment publishing.
IN_PROGRESSClient is completing onboarding steps and questionnaire inputs.COMPLETED, COMPLETED_WITH_PENDING_TASK, PAUSED, CANCELLEDFeeds coach review, profile readiness, forms, and onboarding progress surfaces.
COMPLETEDRequired onboarding inputs are complete.Terminal unless reopened by exception handlingUnlocks coach review and readiness decisions when relationship gates also pass.
COMPLETED_WITH_PENDING_TASKOnboarding was accepted with a known pending task, usually a skipped questionnaire.COMPLETED, CANCELLEDBlocks program and nutrition assignment until the questionnaire is submitted or explicitly cancelled.
PAUSEDOnboarding is intentionally paused.IN_PROGRESS, CANCELLEDPreserves progress but blocks readiness and publishing until resumed or cancelled.
CANCELLEDOnboarding or a pending onboarding task was intentionally cancelled.Terminal unless a new onboarding run is createdRecords the exception and allows downstream gates only where cancellation is explicit and permitted.

ProfileReadiness

Readiness is the coach-controlled gate between collected profile data and safe assignment publishing.

StateMeaningAllowed TransitionsDownstream Effects
NOT_READYProfile lacks the minimum information for coach review.READY_FOR_REVIEW, BLOCKEDBlocks programming, nutrition publishing, and readiness-dependent reminders.
READY_FOR_REVIEWProfile has enough information for coach assessment.NEEDS_CLARIFICATION, READY_FOR_PROGRAMMING, BLOCKEDCreates coach review work and allows readiness decision capture.
NEEDS_CLARIFICATIONCoach needs more information before publishing assignments.READY_FOR_REVIEW, BLOCKEDPrompts client or coach follow-up and keeps publishing locked.
READY_FOR_PROGRAMMINGCoach has reviewed the profile and approved assignment work.READY_FOR_REVIEW, BLOCKEDUnlocks program and nutrition publishing when other gates pass.
BLOCKEDKnown risk, missing consent, or material constraint prevents safe progression.READY_FOR_REVIEW, NOT_READYBlocks publishing and raises visible coach follow-up before daily execution continues.

Assignment

Assignments represent forms, programs, workouts, nutrition guidance, meals, supplements, and reminders.

StateMeaningAllowed TransitionsDownstream Effects
DRAFTCoach-created assignment is not visible to the client.PUBLISHED, CANCELLEDHas no Today, reminder, adherence, or client-facing effect.
PUBLISHEDAssignment is released and ready for activation by schedule or start condition.ACTIVE, SUPERSEDED, CANCELLEDFeeds projection, schedule, and client visibility.
ACTIVEAssignment is currently actionable by the client.PAUSED, SUPERSEDED, CANCELLED, COMPLETEDCreates Today tasks, reminders, adherence facts, and review inputs.
PAUSEDAssignment is temporarily held without ending it.ACTIVE, SUPERSEDED, CANCELLEDSuppresses projected tasks and reminders until resumed or replaced.
SUPERSEDEDA newer assignment or version replaced this one.TerminalPreserves historical adherence while moving future projection to the replacement.
CANCELLEDAssignment was stopped before normal completion.TerminalStops future tasks and records cancellation context for review.
COMPLETEDAssignment reached its intended completion condition.TerminalFeeds adherence, progress, and coach review history.

DailyTask

Daily tasks are the client-facing execution units generated from assignments and reminders.

Today tasks are projections. Today does not own forms, programs, nutrition plans, progress records, or chat messages.

StateMeaningAllowed TransitionsDownstream Effects
PROJECTEDTask is forecast from the plan but not yet available for action.AVAILABLE, MISSEDSupports Today planning, upcoming schedule, and reminder preparation.
AVAILABLETask is visible and actionable for the client.IN_PROGRESS, COMPLETED, SKIPPED, MISSEDDrives client mobile actions, reminders, and pending adherence.
IN_PROGRESSClient has started the task but has not finalized it.COMPLETED, SKIPPED, MISSEDCreates resumable execution state and offline sync requirements.
COMPLETEDClient completed the task and produced an adherence fact.CORRECTEDFeeds progress analytics, coach review, and risk signals.
SKIPPEDClient intentionally skipped the task.CORRECTEDFeeds adherence and risk signals without treating the task as a missed action.
MISSEDTask window closed without completion or explicit skip.CORRECTEDFeeds risk signals, review queues, and adherence summaries.
CORRECTEDOriginal completion, skip, or miss was amended after the fact.Terminal for the correction recordSupersedes prior adherence facts while retaining audit context.

Implementation note (M1)

DailyExecution also persists the canonical workout record behind a workout task. Its states are IN_PROGRESS, COMPLETED, and SKIPPED; COMPLETED and SKIPPED close the record to further sync mutation until a correction path exists. PROJECTED, AVAILABLE, and MISSED remain projection-only states with no persisted record.

Device

Devices are per-installation sync grants scoped to a user account and app surface. Offline Sync Protocol owns registration, receipt, and purge detail.

StateMeaningAllowed TransitionsDownstream Effects
ACTIVEDevice is registered to the user account and trusted for sync.REVOKEDAllows sync push and pull for that installation.
REVOKEDUser or system withdrew the installation's sync grant.Terminal; register the device againBlocks sync push and pull in both directions until a fresh registration exists.

CoachReviewItem

The full Priority view is Post-V1; Public V1 uses task inbox sorting and deterministic risk signals.

StateMeaningAllowed TransitionsDownstream Effects
OPENReview item needs coach attention.SNOOZED, IN_REVIEW, RESOLVED, DISMISSEDAppears in coach task inbox ordering and deterministic risk surfaces.
SNOOZEDCoach intentionally delayed the item until a later time.OPEN, IN_REVIEW, DISMISSEDRemoves immediate pressure while preserving future review visibility.
IN_REVIEWCoach has opened or claimed the item for action.RESOLVED, SNOOZED, DISMISSEDSignals active review without implying a plan change.
RESOLVEDCoach handled the review item.Terminal; new signal creates a new OPEN itemUpdates task inbox history, analytics context, and client follow-up state where applicable.
DISMISSEDCoach intentionally closed the item without action.Terminal; new signal creates a new OPEN itemRemoves item from active review while preserving dismissal audit context.

MessageThread

Thread state controls communication availability and retention handling.

StateMeaningAllowed TransitionsDownstream Effects
ACTIVECoach and client can exchange messages in the thread.RESTRICTED, RETAINED, PURGED_OR_ANONYMIZEDEnables messages, attachments, voice notes, read receipts, and notifications.
RESTRICTEDThread remains visible but sending or attachment actions are limited.ACTIVE, RETAINED, PURGED_OR_ANONYMIZEDSupports moderation, ended relationships, failed media handling, and policy restrictions.
RETAINEDThread is retained for policy, audit, or client history without normal active messaging.PURGED_OR_ANONYMIZEDKeeps permitted records accessible under privacy and retention rules.
PURGED_OR_ANONYMIZEDThread content was deleted or anonymized.TerminalRemoves identifiable message content while preserving permitted audit metadata.

Cross-Feature Gates

These gates define the blocking conditions that multiple features must honor before allowing downstream actions.

Source StateBlocked ActionUnlock ConditionOwnerConsumers
Invalid, expired, revoked, or consumed ClientInvitationClient registration from that inviteNew active invite is issuedIdentityAccessClient login, onboarding
Existing ONBOARDING or ACTIVE relationshipAccepting another coach invitationCurrent relationship endsCoachClientManagementIdentityAccess, onboarding
OnboardingWorkflow COMPLETED_WITH_PENDING_TASKProgram and nutrition assignmentQuestionnaire submitted or explicitly cancelledCoachClientManagementProgramsAndExercise, Nutrition
ProfileReadiness READY_FOR_PROGRAMMING missingProgram and nutrition publishingCoach marks profile ready after reviewCoachClientManagementProgramsAndExercise, Nutrition
Material profile constraint changedSilent plan continuationCoach acknowledges or re-reviews readinessCoachClientManagementProgramsAndExercise, Nutrition, DailyExecution
CoachClientRelationship PAUSEDSelected reminders and risk escalationRelationship returns to ACTIVECoachClientManagementPush, DailyExecution, ProgressAnalytics
CoachClientRelationship ENDEDCoach edit accessReactivation creates allowed active contextCoachClientManagementAll coach surfaces
CoachClientRelationship DELETED_OR_ANONYMIZEDNormal product access and coach/client interactionNo normal unlock; export, deletion, or anonymization handling completes under privacy and retention policyCoachClientManagement with PrivacyAndRetention handoffAll product surfaces
Offline operation pendingAccepted completion/adherence factServer sync accepts the operation; a rejected or conflicted operation is terminal for that attempt and never produces the factDailyExecutionToday, ProgressAnalytics, CoachReview
Device REVOKEDSync push and pullNew device registrationDailyExecutionClient mobile, offline queue
Media upload failedSource action completion if media is requiredUpload retry succeeds or source action is cancelledCommunication or owning featureForms, Progress, Communication

Exception Paths

Each exception path names the canonical product response so features handle edge cases consistently.

Expired invite

Block registration from the expired invite, show a replacement path, and require a newly issued ACTIVE invitation.

Revoked invite

Block registration, explain that the invite is no longer valid, and route the client back to the coach for a new invite.

Contact mismatch during invite registration

Stop account binding when the verified contact does not match the invite, then require corrected identity or a new invite.

Skipped questionnaire

Set OnboardingWorkflow to COMPLETED_WITH_PENDING_TASK and block program/nutrition assignment until submitted or explicitly cancelled.

Incomplete or blocked profile

Keep ProfileReadiness away from READY_FOR_PROGRAMMING and prevent publishing until coach review clears the issue.

Coach pauses client

Move the relationship to PAUSED, preserve context, suppress selected reminders, and pause risk escalation until ACTIVE resumes.

Travel, illness, injury, Ramadan, vacation, or equipment unavailable

Capture the constraint, require coach acknowledgement or readiness re-review when material, and avoid silent plan continuation.

Offline pending workout, check-in, or nutrition operation

Keep the operation pending locally and delay accepted completion/adherence facts until server sync accepts it. Offline Sync Protocol owns the pending operation and receipt behavior.

Failed media upload

Keep required-media actions incomplete until retry succeeds or the source action is cancelled by the owning feature. API Contract and Offline Sync own upload-session refresh and retry hand-offs.

Meal swap request awaiting coach action

Keep the request visible in coach review, preserve the current meal plan version, and apply changes only after coach action.

Relationship end

Move CoachClientRelationship to ENDED, remove coach edit access, and apply retention, export, or deletion handling as privacy-and-retention requires.

Reactivation after ended relationship

Create an allowed active context from ENDED only through explicit reactivation and restore gates before publishing resumes.

Account deletion or export request

Route to privacy-and-retention, preserve required audit records, and delete, anonymize, or export permitted data.

Feature Ownership

Each feature owns its canonical records and exposes stable lifecycle facts to the features that consume them.

FeatureOwns
IdentityAccessauthentication provider context and client invitations
CoachClientManagementrelationship, onboarding, profile readiness, client status, private notes, offboarding
Formsform templates, assignments, submissions, amendments, submission review
ProgramsAndExerciseprogram templates, published versions, exercise references, workout prescription, workout review inputs
DailyExecutionToday projection, workout logs, task completion state, adherence facts, sync receipts
Nutritiontargets, meal plan versions, food snapshots, supplement schedules, meal logs, meal swap requests
Communicationconversations, messages, attachments, voice notes, read receipts, message retention state
ProgressAnalyticsprogress entries, measurements, photos, PR history, adherence summaries, deterministic risk inputs
Integrationsprovider adapters and provider health when implementation starts

Next Authority Docs

These linked authority docs extend the lifecycle map into permissions, retention, contracts, operations, and release governance.

roles-and-permissions

Defines user roles, permission boundaries, and surface-specific authority checks.

privacy-and-retention

Defines deletion, anonymization, export, retention, and privacy handling.

api-contract-standard

Defines API contract conventions shared by frontend and backend modules.

event-and-outbox-standard

Defines lifecycle events, outbox reliability, and downstream integration behavior.

offline-sync-protocol

Defines offline operations, sync receipts, conflict handling, and retry rules.

environment-runbook

Defines local, staging, and production environment expectations.

toolchain-contract

Defines TypeScript-first tooling, repo standards, and developer workflow constraints.

integration-register

Defines integration ownership, implementation timing, and provider health expectations.

observability-plan

Defines whole-workflow propagation/search expectations plus Launch logs, metrics, errors, dashboards, alerts, and operational visibility; tracing remains Maturity.

Test And Release Gate

Defines required test evidence and release readiness gates.

CoachMe internal planning documentation.