Daily check-in
Save today's entries, decide whether the day counts, and update the streak.
How it runs
- Resolve the member, round, protein target, and effective training schedule on the server.
- Validate entries and calculate completion from the day's requirements.
- Upsert the single daily entry; incomplete entries may also be saved.
- Award the one-time free next round when a seven-day streak is earned.
- Return the saved day, current streak, tier, deadline, and reward state.
View complete specification
{
"id": "check-in",
"version": "1.0.0",
"name": "Daily check-in",
"execution": "deterministic",
"summary": "Save today's entries, decide whether the day counts, and update the streak.",
"inputs": {
"member": "Authenticated member and active round",
"day": "Server date in America/New_York",
"protein": "Whole grams, 0–1,000",
"movement": "8,000 steps confirmed OR at least 30 moderate-cardio minutes",
"sleep": "7 hours confirmed",
"strength": "Optional progress toward the weekly strength goal"
},
"steps": [
"Resolve the member, round, protein target, and effective training schedule on the server.",
"Validate entries and calculate completion from the day's requirements.",
"Upsert the single daily entry; incomplete entries may also be saved.",
"Award the one-time free next round when a seven-day streak is earned.",
"Return the saved day, current streak, tier, deadline, and reward state."
],
"outputs": {
"checkin": "Persisted daily entries and actual completion",
"streak": "Consistency progress with completed and grace days reported separately",
"card": "Member-safe card data",
"reward": "Earned free-round status"
},
"boundaries": [
"No backdating or client-selected member identity.",
"Strength is a weekly goal and never blocks daily completion.",
"Allow up to two grace days per 14-day round without calling them completed days.",
"Preserve historical completion records and already-earned rewards.",
"No model call or medical recommendation."
]
}