Execution System v1 — The Daily/Weekly/Quarterly Rhythm
Frame: Plans don't fail from bad content; they fail from missing infrastructure. Founder explicitly stated his bottleneck is "executing and staying consistent." This doc is the SYSTEM that turns the four plan docs into daily action, with Ray as the always-on adherence partner.
Principle: the lowest-friction logging surface wins. Founder already iMessages Ray dozens of times per day. Anything that requires opening a new app, filling a form, or remembering to log later will fail. Everything in this system rides on top of channels and tools the founder already uses.
1. Daily rhythm
Morning (passive, mostly auto-captured)
| Action | How | Who/What |
|---|---|---|
| Wake weight | Apple Health → syncs via HAE → D1 daily_metrics. OR text Ray: "weighed 201.4" | Founder picks one. Apple Watch is the lowest friction if scale syncs already. |
| Sleep score | Apple Watch sleep tracking auto-syncs to HAE → D1 | Zero action required. |
| HRV on wake | Apple Watch passive | Zero action required. |
| Morning brief delivery | iMessage from Ray ~6:27 AM ET | Includes HEALTH section (see section 2 below). |
Throughout the day (active logging via iMessage)
| Action | Trigger | Ray's response |
|---|---|---|
| Meal photo | Founder iMessages a photo of the plate. Optional 1-line caption (e.g. "lunch — chicken bowl"). | Ray parses photo via vision, estimates kcal + protein + carbs + fat + fiber, logs the entry, returns 1-line ack with running daily totals. |
| Meal text | Founder describes meal in text instead of photo (e.g. "5 oz salmon, 1 cup rice, broccoli"). | Same as above. Vision optional. |
| Water | Optional: text "3L done" or "halfway on water" | Ray logs, returns ack. |
| Workout | Strong app or Apple Workouts → auto-syncs via HAE → D1. No iMessage needed. | Ray reads D1 next morning. |
| Supplement taken | Optional: "supps done" or skip entirely (default-assume daily) | Track only if founder wants the streak counter. |
Evening
| Action | How |
|---|---|
| Wind-down cue | Optional: Ray can send a 10pm "wind-down" nudge if founder opts in (off by default — feedback_no_babysitting rule). |
| Sleep tracking | Apple Watch auto. |
Friction principle: the founder takes a photo → Ray does everything else. Photo + 1-line ack is the entire active logging loop for the day. Estimated 30 sec total active time per meal × 3 meals = ~90 sec/day of explicit logging effort.
2. Morning brief HEALTH section (proposed addition to /morning-prep)
Below the existing brief structure, append a HEALTH section. Single line if everything's nominal, expanded if a nudge is warranted.
Format
📊 Health: weight 201.2 (-0.6 wk) · meals 3/3 logged 2,080 kcal 142g P · workout: Mon strength · sleep 7.1h (5d avg 6.8h)
{Optional nudge line if a trend warrants it}
Components
- Weight: yesterday's number + 7-day delta
- Meals: count logged + total kcal + total protein
- Workout: "yesterday" if completed OR "scheduled today" if today is a training day
- Sleep: last night + 7-day average
Nudges (only when warranted)
The nudge line appears ONLY if a trend or threshold triggers it. Examples:
| Trigger | Nudge line |
|---|---|
| Weight stalled 2 weeks, calories on target | "Weight stalled 2 weeks — consider 200 kcal cut OR add 15 min Zone-2/day. Reply to discuss." |
| 3 consecutive sleep nights < 6 hrs | "Sleep < 6h 3 nights running. Recovery debt high; consider de-loading today's strength session." |
| Skipped scheduled workout 2 weeks running on same day | "Wed VO2max skipped 2 weeks. Move to Thu this week? Or drop one Zone-2 walk to make room." |
| Hit 7-day protein floor (140g+) 7/7 days | "7-day protein streak hit. Keep going." |
| Missed protein floor 3 days running | "Protein floor missed 3 days — Greek yogurt or protein shake addable to one meal/day?" |
Tone discipline (feedback_no_babysitting + feedback_advisor_not_pair_programmer): never shame, never moralize, always offer a specific actionable adjustment. Trends are data, not character judgment.
Streak counter
A "consecutive days logged ≥ 1 meal" counter on the right side of the Health line:
📊 Health: weight 201.2 ... · streak 14d ✓
Reset to 0 on any day with zero meals logged. Founder sees the streak; misses aren't called out, but they reset the counter.
3. Weekly review (Sundays)
Either incorporated into /self-review or stood up as /health-review. Recommendation: bolt onto existing /self-review cron for now (Sunday morning), promote to standalone if it grows.
Weekly summary delivered to iMessage (Sunday 8am ET)
🩺 Weekly health review — week ending 2026-MM-DD
Weight: 201.2 → 200.4 (-0.8 lb), 4-wk trend -1.6 lb
Meals: 18/21 logged (86%), avg 2,090 kcal / 138g P / 35g fiber
Workouts: 4/4 scheduled completed (2 strength, 1 VO2max, 1 Z2 walk x4)
Sleep: avg 6.9h, 1 night <6h, 0 nights >8h
Supplements: not tracked
Recommendation: ON TRACK. Hold current plan another week.
{Or: "ADJUST. {specific change}"}
Trigger thresholds for ADJUST (vs HOLD)
| Trigger | Adjustment |
|---|---|
| Weight loss < 0.25 lb/wk averaged over 2 weeks AND calories on target | Cut 100 kcal/day OR add 15 min Zone-2/day |
| Weight loss > 1.5 lb/wk averaged over 2 weeks | Add 100 kcal/day (too aggressive; risks lean-mass loss) |
| Strength sessions missed 2+ weeks running | Re-evaluate scheduling: same day too tired? Move to morning? |
| Sleep average < 6.5h for 2 weeks | Move bedtime 30 min earlier; investigate cause (work? screens? stress?) |
| Gout flare occurs | Add water log requirement temporarily; review purine intake from last 3 days; trigger Dr Ambrose conversation if 2nd flare in 6 mo (allopurinol indication) |
| Protein floor missed 3+ days in a week | Auto-add 1 protein-anchor meal recommendation to next morning brief |
Sunday actions for founder
- Skim the weekly summary (60 sec)
- If supplements running low: confirm Subscribe-and-Save scheduled OR re-order
- If quarterly checkpoint due: see Quarterly section below
4. Quarterly cadence
Each quarter (every 90 days)
| Action | When | What |
|---|---|---|
| Lab refresh | Q2 + Q4 each year, or quarterly if values are drifting | Re-run the [[2026-05-22-lab-order-list-v1]] panel. Update assessment. |
| Plan reassessment | After labs return | Issue plan v(n+1) reflecting new data. Adjust nutrition / workout / supplement. |
| Supplement stack audit | Quarterly | Drop anything without measurable individual benefit. Add anything new from labs (e.g. vitamin E if FibroScan shows NASH). |
| Dr Ambrose check-in | Annual minimum, quarterly if values active | Bring lab refresh + executable questions list. |
Calendar anchoring
- A calendar event already exists for Health Record Export quarterly on Aug 21 (per assessment doc context). Co-locate the lab-refresh request with that event so founder gets the prompt naturally.
- Add new calendar event: "Health plan reassessment" recurring quarterly, 60 min Saturday morning, the week after labs return.
5. Meal-photo logging — infrastructure SPEC (build later, not tonight)
Today's reality (Day 1 implementation)
In-Ray-session logic only. No new infrastructure. When founder iMessages a meal photo:
- Ray reads the photo (vision capability already exists in the session).
- Ray estimates macros (calories / protein / carbs / fat / fiber).
- Ray writes the entry to the running daily summary (in-context for today; serializable to a daily-summary file in
~/.claude/state/health/YYYY-MM-DD-meals.mdif persistence needed). - Ray returns 1-line ack via iMessage.
Tradeoff: no cross-session memory by default. Each day starts fresh. Morning brief HEALTH section pulls from yesterday's ~/.claude/state/health/YYYY-MM-DD-meals.md file.
Effort: zero. Works tomorrow morning.
Promoted infrastructure (build IF usage justifies, ~30 min effort)
When daily meal logging is consistent for 2-3 weeks and the founder confirms he wants persistent searchable history, promote to D1:
Proposed D1 schema:
CREATE TABLE meals (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT NOT NULL, -- 'YYYY-MM-DD'
time TEXT NOT NULL, -- 'HH:MM'
photo_url_r2 TEXT, -- R2 URL to photo (nullable; text-only entries skip)
estimated_calories INTEGER,
estimated_protein_g REAL,
estimated_carbs_g REAL,
estimated_fat_g REAL,
estimated_fiber_g REAL,
foods_text TEXT, -- comma-separated food list or freeform
source TEXT DEFAULT 'imessage', -- 'imessage' | 'manual' | 'voice'
recorded_at TEXT DEFAULT (datetime('now')),
meal_type TEXT, -- 'breakfast' | 'lunch' | 'dinner' | 'snack' (nullable, inferred from time)
notes TEXT
);
CREATE INDEX idx_meals_date ON meals(date);
Photo storage: new R2 bucket rdco-health-meal-photos (separate from existing rdco-health-data bucket for isolation).
Worker logic: ~50 lines of code to:
- Receive photo URL + macro estimates from Ray session
- Write row to D1
- Return confirmation
- Daily summary endpoint: GET /meals/daily/:date returns totals
Build trigger: when in-session logging hits a friction point (lost context, want trend search beyond 24 hrs, want to look up "what did I eat that day before the gout flare," etc.).
Recommendation: START WITH IN-SESSION LOGIC. Promote to Worker when justified. Avoid premature infrastructure.
6. Consistency-leverage points (designed against founder's stated bottleneck)
Founder's words: "I need help executing and staying consistent." The five design choices that address this directly:
1. Friction must be LOW
- Photo + 1-line ack > form-filling > app-switching
- Founder is ALREADY on iMessage all day. No new surface.
- No "did you log today?" reminders by default (those become noise the founder learns to ignore).
2. Feedback must be IMMEDIATE
- Macro estimate appears within seconds of the photo (Ray vision parse + ack)
- Weight trend visible the next morning, not weekly
- Workout impact shows up in morning brief next day
- A 24-hr feedback loop catches drift before it becomes a 4-week drift
3. Streaks must be VISIBLE
- "Consecutive days logged" counter in the morning brief HEALTH line
- Founder sees compounding effort, not just isolated days
- Streak resets quietly on a miss (no shame, just zero counter the next day)
4. Misses must be NORMALIZED
- The morning brief NEVER shames a miss
- Trends are shown as data: "weight up 0.4 lb, sleep 5.5h, no workout yesterday" — no judgment language
- The nudge line offers a specific actionable adjustment, not a guilt trip
- Bad week happens. Next morning brief shows the data and asks one thing.
5. Plan must ADJUST
- The system proposes specific changes when data shows drift
- Founder isn't expected to figure out interventions from raw numbers
- Example: "Weight stalled 2 weeks → consider 200 kcal cut OR 15 min more Zone-2/day" is concrete. Not "you should reassess your approach."
7. Edge cases + escalation
| Situation | Auto-response |
|---|---|
| Gout flare in progress | Founder texts "gout flare." Ray switches workout plan to upper-body only + adds water-log requirement + flags to schedule Dr Ambrose conversation if 2nd flare in 6 mo. |
| Travel week | Founder texts "traveling Tue-Fri." Ray switches plan: bodyweight strength substitution, expect more sleep variance, accept logging gaps. No nudges that week. |
| Skipped meal logging > 3 days | Morning brief omits HEALTH section entirely (no data to report). Re-engage when next meal photo arrives. No shame, no questions. |
| Weight up > 3 lb week-over-week without explanation | Likely water/sodium/stress; Ray surfaces in weekly review but does NOT alarm. Two weeks of trend before suggesting calorie adjustment. |
| Lab finding > Tier 2 (e.g. AST > 3x ULN) | Surface as Tier 3 escalation: "your AST result is X, which is above the threshold for routine. Suggest contacting Dr Ambrose this week — want me to draft the message?" |
| Founder explicitly opts out ("Ray, stop tracking food this week") | Pause meal logging, sleep tracking unchanged (passive), no nudges. Resume on his cue. |
8. Pilot success criteria (8 weeks)
How we know this system works (or doesn't):
| Metric | Success threshold | Failure threshold |
|---|---|---|
| Meal logging compliance | ≥80% of meals logged | <50% by week 4 → reconsider friction |
| Weight loss trajectory | 0.4-0.8 lb/wk average | <0.2 lb/wk avg by week 4 → reassess plan (likely calorie or activity adjustment) |
| Workouts completed | 75%+ of scheduled | <50% → schedule restructure |
| Founder NPS (informal — does this feel sustainable?) | Yes | "Ugh, this is too much" → strip features |
| Plan iteration | v2 issued by week 12 with new labs | If labs not done → bottleneck is appointment scheduling, not the plan |
If by week 8 the pilot is succeeding: continue, promote meal logging to D1 Worker, expand HEALTH section in brief.
If by week 8 the pilot is struggling: identify which of the 5 leverage points failed, simplify rather than add features. The system can shrink to "weight + workout + supplement reorder" if active food logging proves too much.
9. Cross-references
- Plans this system executes: [[2026-05-22-nutrition-plan-v1]], [[2026-05-22-workout-plan-v1]], [[2026-05-22-supplement-plan-v1]]
- Lab cadence quarterly: [[2026-05-22-lab-order-list-v1]]
- Clinical context: [[2026-05-21-founder-health-assessment-v1]]
- Morning brief skill being modified:
~/.claude/skills/morning-prep/SKILL.md - Existing related infrastructure:
~/rdco-vault/06-reference/2026-05-21-health-export-worker-architecture.md(if exists) + D1rdco-healthdatabase - Existing self-review skill (where weekly review may bolt on):
~/.claude/skills/self-review/SKILL.md
10. What this system explicitly does NOT do
- Does NOT moralize, shame, or "encourage" in cringey ways. Data + adjustment, that's it.
- Does NOT require the founder to use a new app. iMessage + Apple Watch + Strong = his current tooling.
- Does NOT create a new dashboard / web UI / Notion page. Morning brief HEALTH section is the only new surface.
- Does NOT automate prescription decisions, labs, or Dr Ambrose communications. Founder + doctor own the clinical layer.
- Does NOT measure things just because they're measurable. Each metric in the brief maps to a specific decision the founder might need to make that day or that week.
End of v1. Plan reassessment 8 weeks out (2026-07-17). If sustained, promote meal logging from in-session to D1+R2. If struggling, simplify before adding features.