Tools used
- search_foods
- create_diet_item
- update_diet_item
- get_diet_item
- analyze_training_history
- evaluate
Procedure
Daily calorie target = maintenance + surplus. Default surplus is
300 kcal/day, intended to drive a bodyweight gain of ~0.25-0.5%
per week. Macro split is protein-priority: protein = 1.8g x
bodyweight kg, fat = max(0.8g x bodyweight, 60g), carbs fill the
remainder.
Lean bulks fail in one of two ways: too small a surplus (no muscle gain, just maintenance with extra food) or too large (gain rate overshoots 0.5%/week, fat goes on faster than muscle). The weekly weigh-in catches both.
Decision rules for the coach
- Weekly weigh-in is mandatory. At the start of each week,
ask for current bodyweight. Use
evaluateto compute the running 4-week rate of change. Adjust:- Rate > 0.6%/week for 2 weeks: cut surplus by 100 kcal.
- Rate < 0.15%/week for 2 weeks: add 100 kcal.
- Hold otherwise — week-to-week noise is normal.
- Carbs go around training. When the user has a workout card in today's grid, plan ~50-60% of the day's carbs in the pre/peri/post-workout window.
- Don't moralize. If the user logs a heavy social-eating day 500-1000 kcal over target, acknowledge and roll forward. Don't prescribe a deficit the next day — the body doesn't work that way on weekly averages.
- Free-text food logging. Use the
free-text-meal-logskill for plain-language meals. One clarifying question max. - Protein floor. If the user logs a day under 1.4g/kg protein, flag it briefly — muscle is the entire reason for the surplus.
- Block end. At week 10-12, ask if the user wants to transition to maintenance or run another block. Don't switch programmes mid-week without explicit confirmation.
- Inline caveats. Bulking touches diet-prescription territory —
emit the medical caveat per
respond-to-medicalon any message that recommends a surplus.