1 ---
2 name: meal-planner
3 description: Create personalized meal plans with macros, shopping lists, and prep guides.
4 ---
5
6 # Meal Planner & Fitness Schedule
7
8 Create personalized meal plans with calculated macro targets, shopping lists, and training schedules.
9
10 **DISCLAIMER: General nutrition and fitness information only — not medical or dietetic advice. Users with medical conditions, eating disorder history, pregnancy, or on medications should consult a registered dietitian or physician.**
11
12 ## When to Use
13
14 - User wants a weekly meal plan hitting specific macros
15 - User needs a shopping list generated from a plan
16
17 - User wants a training split paired with nutrition
18 - User wants to adjust an existing plan (plateau, weight change, preference change)
19
20 ## When NOT to Use
21
22 - Medical dietary needs (renal, diabetic, celiac management) → refer to RD
23 - Single recipe creation → use recipe-creator skill
24
25 - Health data analysis → use personal-health skill
26
27 ## Overlap with recipe-creator Skill
28
29 When a meal in the plan is complex enough to need step-by-step instructions (e.g., "Chicken Parmesan"), the meal-planner skill defines *what* to eat and *when*; the recipe-creator skill builds the full recipe (ingredients, steps, timers, timeline). If the user's project has a recipe database, link meals to recipe IDs. If standalone, embed simplified cooking notes in the meal item.
30
31 ## Step 1: Gather Inputs — Full Profile
32
33 ### Required
34
35 - Goal: fat loss / maintenance / muscle gain
36 - Sex, age, height, weight
37
38 - Activity level (see multiplier table below)
39 - Dietary restrictions / allergies
40
41 ### Eating Schedule & Preferences (ask explicitly)
42
43 These inputs have the biggest impact on adherence. Do not skip them.
44
45 | Input | Why it matters | Example |
46
47 |---|---|---|
48
49 | **Eating window / fasting pattern** | Determines number of meals, slot names, and calorie distribution. IF (16:8, 20:4, OMAD) users skip breakfast entirely — never plan meals outside their window. | "I skip breakfast, first meal at noon" |
50
51 | **Meals-per-day preference** | Some people want 3 big meals, others want 5 smaller ones. Respect this. | "4 meals" |
52
53 | **Food preferences / cuisine** | Build around foods the user already likes. Ask: "What are 5 meals you eat regularly and enjoy?" and "Any foods you hate?" | "I like burgers, burritos, stir-fry" |
54
55 | **Cooking time per meal** | Determines complexity. 15 min = sheet pan & stir-fry only. 45 min = full recipes. | "30–45 min max" |
56
57 | **Budget** | Affects protein source choices (chicken thigh vs. salmon) and organic vs. conventional. | "Moderate" |
58
59 | **Cooking skill** | Beginner = fewer techniques, clearer instructions. Advanced = more variety. | "Intermediate" |
60
61 | **Household size** | Affects portion scaling and shopping quantities. | "Cooking for 1" |
62
63 ### Dynamic Meal Slots
64
65 **Do not hardcode meal names.** Derive slot names and timing from the user's eating window:
66
67 | Pattern | Slots | Timing |
68
69 |---|---|---|
70
71 | Standard 3-meal | breakfast, lunch, dinner | 7am, 12pm, 6:30pm |
72
73 | Standard + snacks | breakfast, snack-am, lunch, snack-pm, dinner | 7am, 10am, 12pm, 3pm, 6:30pm |
74
75 | 16:8 IF (noon start) | lunch, snack, dinner, evening | 12pm, 3pm, 6:30pm, 8:30pm |
76
77 | 20:4 IF | meal-1, meal-2 | 4pm, 7pm |
78
79 | OMAD | dinner | 6pm |
80
81 | Morning faster + pre-bed | lunch, snack, dinner, pre-bed | 12pm, 3pm, 6:30pm, 9:30pm |
82
83 Calorie distribution should match the window: for 4-meal IF, roughly 30% / 12% / 35% / 23% across slots (larger meals at lunch and dinner, lighter snacks). Adjust to keep protein per-meal at 0.3–0.4 g/kg (~25–50g) for optimal MPS distribution.
84
85 If body fat % is known, use Katch-McArdle instead of Mifflin-St Jeor — it's more accurate for lean or obese individuals.
86
87 ## Step 2: Calculate Energy Target
88
89 **Mifflin-St Jeor BMR** (validated as most accurate predictive equation for the general population, ±10% for most adults):
90
91 ```text
92
93 Men: BMR = (10 × weight_kg) + (6.25 × height_cm) − (5 × age) + 5
94
95 Women: BMR = (10 × weight_kg) + (6.25 × height_cm) − (5 × age) − 161
96
97 ```
98
99 **Katch-McArdle** (use if body fat % is known — more accurate at body-composition extremes):
100
101 ```text
102
103 BMR = 370 + (21.6 × lean_mass_kg) where lean_mass_kg = weight_kg × (1 − bodyfat%)
104
105 ```
106
107 **TDEE = BMR × activity multiplier:**
108
109 | Level | Multiplier | Description |
110
111 |---|---|---|
112
113 | Sedentary | 1.2 | Desk job, minimal deliberate exercise |
114
115 | Lightly active | 1.375 | 1–3 sessions/week |
116
117 | Moderately active | 1.55 | 3–5 sessions/week |
118
119 | Very active | 1.725 | 6–7 sessions/week |
120
121 | Extra active | 1.9 | Athlete or physical labor + training |
122
123 People consistently overestimate their activity — when in doubt, pick the lower multiplier and adjust upward after 2 weeks of real-world data.
124
125 **Goal adjustment:**
126
127 - Fat loss: TDEE − 20–25% (typically 400–600 kcal deficit). Targets ~0.5–1% bodyweight/week. Steeper deficits accelerate muscle loss.
128 - Maintenance: TDEE ± 0
129
130 - Muscle gain: TDEE + 10–15% (typically 200–400 kcal surplus). Larger surpluses mostly add fat, not muscle, in trained individuals.
131
132 ## Step 3: Set Macros — Evidence-Based Targets
133
134 ### Protein (set this first, in g/kg — not as a percentage)
135
136 | Goal | Target | Evidence |
137
138 |---|---|---|
139
140 | General health / sedentary | 0.8–1.2 g/kg | RDA is 0.8 g/kg — the minimum to prevent deficiency, not an optimum |
141
142 | Muscle gain + resistance training | **1.6–2.2 g/kg** | Morton et al. 2018 meta-analysis (49 RCTs, n=1,863, *BJSM*): gains in fat-free mass plateau at 1.62 g/kg/day (95% CI: 1.03–2.20). The upper CI bound (~2.2 g/kg) is recommended for those maximizing hypertrophy. Confirmed by Nunes et al. 2022 (74 RCTs). |
143
144 | Fat loss (preserving lean mass) | 1.8–2.7 g/kg | Higher end of range compensates for the muscle-sparing effect of protein during energy deficit |
145
146 | Endurance athletes | 1.2–1.6 g/kg | ISSN position stand |
147
148 In imperial: 1.6–2.2 g/kg ≈ 0.7–1.0 g/lb. Distribute across 3–5 meals at 0.3–0.4 g/kg per meal (~25–40 g) — muscle protein synthesis response plateaus per-sitting.
149
150 ### Fat
151
152 Minimum ~0.5 g/kg bodyweight (hormone synthesis floor). Typical range 0.8–1.2 g/kg, or 20–35% of calories. Going below 20% long-term risks fat-soluble vitamin and hormone issues.
153
154 ### Carbohydrates
155
156 Fill remaining calories after protein and fat are set. `carbs_g = (target_kcal − protein_g×4 − fat_g×9) / 4`
157
158 ### Fiber
159
160 **14 g per 1,000 kcal** (Dietary Guidelines for Americans) — roughly 25 g/day for women, 38 g/day for men at maintenance. Most plans undershoot this. Check it explicitly.
161
162 ## Step 4: Build the Plan
163
164 ### Food Selection Philosophy
165
166 **Adherence-first meal design** — build meals around foods the user already eats and enjoys. The goal is to fit their existing food culture into their macro targets, not to impose a "clean eating" template.
167
168 - **Use their stated preferences** — if they said they like burritos, build a macro-friendly burrito bowl. Don't replace it with a salad.
169 - **Flavor over restriction** — use real cheese, butter, sauces in controlled portions rather than eliminating them. A plan that tastes good gets followed.
170
171 - **Practical portions** — specify gram weights for precision but also include household measures (e.g., "200g / ~1 cup cooked") so people without scales can approximate.
172 - **Protein anchoring** — every meal should have a clear protein source as its anchor. Build the rest of the plate around it.
173
174 - **Vegetable integration** — don't just add a side salad. Integrate vegetables into the meal itself (peppers in a stir-fry, spinach in a smoothie, roasted broccoli with garlic butter). This is especially important for users who say they don't like vegetables.
175
176 ### Variety & Repetition Balance
177
178 Rotate 3–4 templates per meal slot across the week — enough variety to prevent burnout, enough repetition to keep prep and shopping simple. The sweet spot:
179
180 - **2–3 lunch templates** — repeat 2–3 times each across the week
181 - **5–6 dinner templates** — one unique dinner most nights (this is where people want variety)
182
183 - **2–3 snack templates** — these can repeat heavily; people don't mind eating the same snack daily
184 - **1–2 evening/pre-bed options** — simple, protein-focused, low effort
185
186 ```text
187
188 ## Monday — Target: 2,400 kcal | 186P / 225C / 84F (16:8 IF, noon start)
189
190 Lunch (710 kcal): Chicken burrito bowl — chicken thigh 170g + rice 200g + black beans 80g + salsa + cheese 25g + avocado 40g → 48P / 78C / 22F
191
192 Snack (310 kcal): Greek yogurt 200g + honey 10g + almonds 20g → 24P / 22C / 14F
193
194 Dinner (710 kcal): Garlic butter steak & potatoes — sirloin 200g + baby potatoes 250g + roasted broccoli 120g + butter 10g → 58P / 52C / 30F
195
196 Evening (630 kcal): Protein shake — whey 35g + banana + PB 20g + milk 250ml + oats 30g → 48P / 62C / 20F
197
198 Daily total: 2,360 kcal | 178P / 214C / 86F | Fiber: ~21g
199
200 ```
201
202 **Nutrition data sources** — for accurate macros, query the USDA FoodData Central API rather than guessing:
203
204 - Base URL: `https://api.nal.usda.gov/fdc/v1/` — free API key from api.data.gov, 1,000 req/hr limit
205 - Search: `GET /foods/search?query=chicken breast&api_key=KEY`
206
207 - Lookup: `GET /food/{fdcId}?api_key=KEY` returns full nutrient profile per 100g
208 - Python clients on PyPI: `fooddatacentral` (simple), `usda-fdc` (includes DRI comparison + recipe aggregation)
209
210 - Data is public domain (CC0). Branded foods update monthly.
211
212 ## Step 5: Shopping List
213
214 Aggregate ingredients across all days, round to purchasable units, organize by store section:
215
216 ```text
217
218 PROTEINS: Chicken thighs 800g · Chicken breast 700g · Sirloin steak 400g · Salmon 180g · Eggs 1 dozen
219
220 DAIRY: Greek yogurt 550g · Cottage cheese 450g · Cheddar cheese 105g · Whole milk 750ml
221
222 PRODUCE: Bananas 4 · Bell peppers 4 · Broccoli 1 head · Avocado 2 · Baby potatoes 250g
223
224 GRAINS/PANTRY: White rice 1kg · Flour tortillas 8 · Oats 90g · Black beans 1 can
225
226 NUTS/OILS: Peanut butter 1 jar · Almonds 20g · Olive oil · Honey
227
228 ```
229
230 **Aggregation rules:**
231
232 - Combine same ingredients across days (e.g., 3 days × 200g rice = 600g → round to 1kg bag)
233 - Use purchasable units (1 can, 1 bunch, 1 dozen) not fractional quantities
234
235 - Group by store section for efficient shopping flow
236 - Note items that can be bought frozen for longer shelf life
237
238 ## Step 6: Meal Prep Logistics
239
240 **Single prep session (Sun, ~90 min):** Cook all grains. Roast two sheet-pans of proteins + veg. Portion into containers. Prep overnight oats for 3 days.
241
242 **USDA-backed refrigerated shelf life:** cooked poultry/meat 3–4 days · cooked fish 3–4 days · cooked grains 4–6 days · cut raw veg 3–5 days. Freeze anything for day 5+.
243
244 **Prep guide format:** Number each step with estimated time (active + passive). Group by what can run in parallel (e.g., "while rice cooks, grill chicken"). The prep guide should feel like a cooking flow, not a to-do list.
245
246 ## Step 7: Hydration & Supplements
247
248 ### Hydration
249
250 General target: **~35 ml per kg bodyweight** per day (e.g., 93 kg × 35 = 3.25 L). Increase by 500–750 ml on training days. Signs of adequate hydration: pale yellow urine by mid-morning.
251
252 Practical tips: keep a water bottle at the desk, drink 500 ml upon waking, have 250 ml with each meal.
253
254 ### Supplements (evidence-supported only)
255
256 Only recommend supplements with strong evidence. Do not recommend proprietary blends or unproven supplements.
257
258 | Supplement | Dose | Evidence | Who needs it |
259
260 |---|---|---|---|
261
262 | Creatine monohydrate | 3–5 g/day, no loading needed | Most-studied supplement in sports nutrition. Increases strength, lean mass, and exercise capacity (ISSN position stand, 2017). | Anyone doing resistance training |
263
264 | Vitamin D3 | 1,000–2,000 IU/day | Widespread deficiency, especially at higher latitudes. Supports bone health, immune function, and may support muscle function. | Most people, especially if limited sun exposure |
265
266 | Omega-3 (EPA/DHA) | 1–2 g combined EPA+DHA/day | Anti-inflammatory, cardiovascular benefits. Only if fish intake is <2 servings/week. | People who don't eat fish regularly |
267
268 | Magnesium | 200–400 mg/day (glycinate or citrate) | Common deficiency. Supports sleep, muscle recovery, stress. | If dietary intake is low (common on calorie deficits) |
269
270 Do NOT recommend: testosterone boosters, fat burners, BCAAs (redundant if protein is adequate), collagen for muscle building, "detox" products.
271
272 ## Step 8: Plan Adjustments Over Time
273
274 ### When to Recalculate
275
276 Plans are not static. Build in adjustment checkpoints:
277
278 | Trigger | Action |
279
280 |---|---|
281
282 | **After 2 weeks** | Compare average weekly weight loss rate to target. If losing >1.5% BW/week, increase calories by 100–200. If weight is flat, decrease by 100–200 or verify tracking accuracy first. |
283
284 | **Every 5 kg (~11 lbs) of weight change** | Recalculate BMR and TDEE — they decrease as body mass drops. A 10 lb loss typically reduces TDEE by ~100–150 kcal. |
285
286 | **Plateau (>3 weeks no change in 7-day rolling average)** | First check: are portions actually being measured? Calorie creep from eyeballing is the \#1 cause. Then: add 1–2 cardio sessions/week OR reduce calories by 100–150. Do NOT slash calories aggressively. |
287
288 | **Goal reached** | Reverse diet: increase calories by 100/week back toward maintenance over 4–6 weeks. Do not jump straight to TDEE — leptin and metabolic adaptation need time. |
289
290 | **Taste fatigue / boredom** | Swap out stale meals using alternatives from the same slot. Keep the same macros — change the food, not the structure. |
291
292 ### Weight Tracking Guidance
293
294 Daily weight fluctuates ±1–2 kg (2–4 lbs) from water, glycogen, gut contents, sodium intake, and menstrual cycle. This is normal and not fat gain.
295
296 - **Weigh daily**, same time (after waking, after bathroom, before eating)
297 - **Use a 7-day rolling average** — this is your actual trend line
298
299 - **Compare weekly averages**, not individual days
300 - **Expect a 2–4 lb drop in week 1** that's mostly water/glycogen, not fat. Real fat loss rate starts from week 2–3.
301
302 ## Fitness Schedule (Condensed)
303
304 **Beginner (<6 mo): Full body 3×/week** (Mon/Wed/Fri). Each session: 1 squat pattern, 1 hinge, 1 push, 1 pull, 1 carry/core. 3×8–12. Simplest progression: add 2.5 kg when all sets hit the top of the rep range.
305
306 **Intermediate (6 mo–2 yr): Upper/Lower 4×/week.** Mon upper-push emphasis, Tue lower-quad, Thu upper-pull, Fri lower-hinge.
307
308 **Advanced: Push/Pull/Legs 5–6×/week.**
309
310 **Volume guidelines** (per muscle group per week, meta-analytic consensus): 10–20 hard sets for hypertrophy. Below 10 is maintenance; above 20 shows diminishing returns and rising injury risk for most.
311
312 **Rep ranges:** 3–6 strength-biased · 6–15 hypertrophy (all ranges build muscle if taken near failure; hypertrophy is not rep-range-specific) · 15+ endurance-biased.
313
314 **Progressive overload is mandatory** — log every session. No log → no plan.
315
316 **Recovery:** ≥1 full rest day/week. 7–9 hrs sleep. Deload (−40–50% volume) every 4–6 weeks.
317
318 **Cardio:** General health → 150 min/week moderate (WHO guideline). Fat-loss phase → add 2–3 × 20–30 min sessions, steady-state or intervals. Muscle-gain phase → keep cardio to 1–2 light sessions to minimize interference.
319
320 ## Output: Always Build a Visual Web App
321
322 **Every meal plan MUST be delivered as an interactive React + Vite web app.** Do not output plans as plain text or markdown — always build and deploy a visual website.
323
324 ### Design Philosophy: Mobile-First
325
326 Most people use a meal planner in the kitchen (cooking), at the grocery store (shopping), or in bed (planning). **Design for a phone screen first, then scale up.**
327
328 - **Single-column layout** on mobile — no multi-column calendar grids that require horizontal scrolling
329 - **Day selector** as a horizontal scrollable pill bar at the top (not a 7-column grid)
330
331 - **Meal cards** are full-width, showing meal name, time, calories, and protein at a glance — tap to expand for full detail
332 - **Bottom navigation** for section switching (Plan / Shop / Prep)
333
334 - **Sticky headers** for context while scrolling
335
336 ### Core Layout: Dashboard + Day View
337
338 1. **Dashboard (home)** — overview of the current week:
339
340 - Progress card (weight goal, deficit, timeline)
341 - Day selector (horizontal pills showing day name + total kcal)
342
343 - Macro rings/charts for selected day (protein, carbs, fat vs targets)
344 - Meal cards for selected day (compact: name, time, kcal, protein — tap to drill in)
345
346 - Weekly averages card at the bottom
347
348 1. **Day detail** — drill into a specific day:
349
350 - Macro summary bar (4-up: kcal, P, C, F with targets)
351 - Expanded meal cards showing all food items with portions
352
353 - Per-meal macro breakdown (color-coded: protein=green, carbs=amber, fat=blue)
354
355 1. **Shopping list tab** — aggregated by store section:
356
357 - Checkboxes for each item (state persists during session)
358 - Progress counter (checked/total)
359
360 - Organized by store section (Proteins, Dairy, Produce, Grains/Pantry, Nuts/Oils)
361
362 1. **Prep guide tab** — Sunday meal prep session:
363
364 - Hero card explaining the prep concept and total time
365 - Numbered steps with time estimates and descriptions
366
367 - Organized as a cooking flow (what to do while waiting for passive cook times)
368
369 ### Multiple Options & Cycling
370
371 - **Meal swaps** — for each meal slot, offer 2–3 alternatives the user can click to swap in. Show a small "swap" icon on each meal card that reveals alternatives in a dropdown or modal.
372 - **Rotation plans** — if the user wants variety (e.g., "don't repeat the same dinner twice in 2 weeks"), build a 2-week rotation with different week tabs.
373
374 - **High/low day cycling** — for carb cycling or calorie cycling plans, label each day (e.g., "High Day — 2,400 kcal" vs "Low Day — 1,800 kcal") and color-code the day header accordingly.
375
376 ### UI/UX Requirements
377
378 - **Clean, appetizing design** — health-focused color palette (greens, warm neutrals), rounded cards, readable portions
379 - **Mobile-first** — single column on mobile, expanding gracefully on desktop
380
381 - **Tap to expand** — meal cards expand on tap to show full ingredient list and nutrition detail
382 - **Bottom navigation** — persistent bottom nav bar for Plan / Shop / Prep (hidden on detail/drill-in pages)
383
384 - **Sticky headers** — keep context (day name, section title) visible while scrolling
385
386 ### Data Architecture
387
388 Embed all plan data as JSON in the app (no backend needed):
389
390 ```typescript
391
392 interface MealPlan {
393
394 weeks: Week[];
395
396 profile: {
397
398 goal: string;
399
400 currentWeight: number;
401
402 targetWeight: number;
403
404 bmr: number;
405
406 tdee: number;
407
408 target_kcal: number;
409
410 deficit: number;
411
412 macros: Macros;
413
414 projectedWeeks: number;
415
416 };
417
418 shoppingList: ShoppingSection[];
419
420 prepGuide: PrepStep[];
421
422 }
423
424 interface Week {
425
426 label: string;
427
428 days: Day[];
429
430 }
431
432 interface Day {
433
434 name: string;
435
436 label?: string; // "High Day", "Rest Day", "Meal Prep Day", etc.
437
438 target_kcal: number;
439
440 meals: Meal[];
441
442 }
443
444 interface Meal {
445
446 slot: string; // dynamic: "lunch", "snack", "dinner", "evening", "meal-1", etc.
447
448 name: string;
449
450 items: { food: string; portion: string }[];
451
452 macros: Macros;
453
454 alternatives?: Meal[];
455
456 }
457
458 interface Macros {
459
460 protein: number;
461
462 carbs: number;
463
464 fat: number;
465
466 fiber: number;
467
468 kcal: number;
469
470 }
471
472 interface ShoppingSection {
473
474 section: string;
475
476 items: { item: string; qty: string }[];
477
478 }
479
480 interface PrepStep {
481
482 step: string;
483
484 time: string;
485
486 description: string;
487
488 }
489
490 ```
491
492 ## Best Practices
493
494 1. **Adherence beats optimization** — a 90%-adhered B+ plan beats a 50%-adhered A+ plan. Build around foods the user already likes.
495 1. **Protein is the anchor macro** — set it in g/kg first, then fill carbs/fat by preference.
496
497 1. **Budget a 10% flex buffer** — plans that forbid all unplanned food get abandoned. If someone goes 200 kcal over one day, the plan should still work over the week.
498 1. **Re-calculate TDEE after weight changes ~5 kg** — BMR shifts with body mass.
499
500 1. **Track for 2 weeks before adjusting** — daily weight fluctuates ±1–2 kg from water/glycogen/gut contents. Use a 7-day rolling average.
501 1. **Respect the eating window** — never schedule meals outside the user's stated eating window. If they fast until noon, the first meal is lunch, not "late breakfast."
502
503 1. **Make vegetables invisible** — for users who don't love vegetables, integrate them into meals (spinach in smoothies, peppers in stir-fries, zucchini in pasta sauce) rather than serving them as plain sides.
504 1. **Protein in every meal** — every single meal/snack should have a meaningful protein source (≥20g). No meal should be carbs + fat only.
505
506 1. **Evening meals matter** — casein protein, cottage cheese, Greek yogurt, and protein puddings are ideal pre-bed options. They're slow-digesting and satisfy sweet cravings.
507
508 ## Limitations
509
510 - Nutritional values are estimates (±10–15% even with USDA data — portion eyeballing adds more error)
511 - TDEE formulas are population averages with ~10% individual error — real-world tracking over 2–3 weeks is the only way to find someone's true maintenance
512
513 - Not a substitute for a registered dietitian, especially for medical conditions, disordered eating history, or pregnancy
514 - Training templates are generic — modify around injuries and individual response
515
516 - Hydration needs vary significantly with climate, altitude, and individual physiology
517 - Supplement recommendations are general — individual needs vary based on bloodwork and existing diet