Weekly training review and single workout review. Covers performance vs targets, health trends, run summary, auto-progression, and next week planning. Use when user asks to review their week, review a workout, generate next week, or says "weekly review", "how'd that go", "review last week".
Full weekly review cycle: performance analysis, health correlation, run summary, auto-progression, run planning, and target generation. Always present proposed changes for approval before saving.
Call in parallel:
get_active_mesocycle — mesocycle context, training days (use the days array to know how many sessions were planned), start dateget_week_summary with mesocycle_id and week_number — all workouts, sets, feedback, targets, readiness dataget_health_trends — calculate date range from mesocycle start_date + week_number (e.g. week 1 starting March 2 = date_from 2026-03-02, date_to 2026-03-08)get_run_sessions filtered to the same date range — all runs for the weekWeek 1 — 2/3 gym sessions | 3 runs
Avg readiness: Sleep 3.7 | Energy 3.3
Avg rating: 4.0
Count planned sessions from mesocycle days array. Flag any missed gym sessions. Show run count separately.
Per-exercise table for each training day:
Pull Day (Mon) — Sleep 4 | Energy 3 | Back soreness 2
Exercise | Target | Actual | Pump | Joint | Notes
Pull Up | 3x8-10 @ BW+10 | 8, 8, 7 @ BW+10 | 4 | 0 |
Seated Row | 3x10-12 @ 70 | 12, 11, 10 @ 70 | 4 | 0 |
Show the session's readiness data in the header — this is critical context for interpreting performance.
Highlight:
Summarize the week's health data from get_health_trends:
Health: BB avg 52 (range 35-72) | RHR avg 48 (7d avg 49) | Sleep avg 7h10m | Stress avg 18
Flag concerning patterns:
seven_day_avg_rhr field)Connect health data to training outcomes using the per-workout readiness (sleep_quality, energy_level, muscle_soreness stored on each workout):
For muscle_soreness, check the specific muscle groups against exercise performance. E.g. if muscle_soreness.back was 3 and Pull Up reps were down, that's expected — not a programming issue.
Runs: 3 this week | 15.2km total | avg pace 5:24/km
- Mon: Easy 5.1km @ 5:42/km (HR avg 142) — Energy 4
- Wed: Tempo 5.0km @ 4:58/km (HR avg 162) — Energy 3
- Fri: Easy 5.1km @ 5:31/km (HR avg 139) — Energy 4
Include pre-run readiness (sleep_quality, energy_level) if logged. Correlate: slow run + low energy = expected. Slow run + high energy = worth noting.
Note trends vs previous weeks if data exists. Flag if weekly mileage jumped >10%.
For each exercise, apply this sequence:
Step 1: Check flags
Step 2: Set progression
Use the specific muscle group soreness from pre-session data, not an overall number. E.g. for Pull Ups, check muscle_soreness.back and muscle_soreness.biceps.
| Pump | Soreness (relevant muscle groups) | Action |
|---|---|---|
| 1-2 | 0-2 | +1 set |
| 3-4 | 2-3 | Hold |
| 4-5 | 4-5 | -1 set |
Additional rules:
Step 3: Rep progression
| Condition | Action |
|---|---|
| Hit reps at target RPE | +1 rep/set next week |
| Missed reps, pump high (4-5) | Hold (exercise is working) |
| Missed reps, pump low, RPE high | Drop weight, rebuild reps |
RPE target calculation: rpe_start + (current_week / total_weeks) * (rpe_end - rpe_start)
Step 4: Weight progression (only if exceeded rep range on ALL sets)
| Equipment | Increment |
|---|---|
| Barbell / Smith | 2.5kg |
| Dumbbell | 2kg |
| Cable / Machine | 2.5kg |
| Bodyweight | Add reps first, then load |
Bump weight, reset reps to bottom of range.
Priority when multiple changes possible (only change one lever at a time):
Isolation exercise exception: Pump matters more than reps. If pump is 4-5 but reps are low, the exercise is working. Hold.
Myo-rep / Giant set exception: Progress by +5 total reps per week (not per set). If missed, hold.
Stall detection: Same reps for 2 weeks at same weight = stall. Flag it. Consider adding a set.
Check health trends and compare RHR to seven_day_avg_rhr from previous weeks if available.
Trigger deload when ANY of these occur:
Also consider deload every 4th week as a fallback if trends are unclear.
Deload prescription: 50% volume (half the sets), RPE 5-6, same weights.
The mesocycle is 3 gym + 3 run days per week. There is no structured run plan in the database — run planning is based on the 5K sub-23:00 goal, recent performance, and recovery state.
Suggest run types for the week:
get_run_sessions for target rangesShow the full proposed plan:
Next Week (Week 2) — Proposed Changes
Pull Day:
Exercise | Sets | Reps | Weight | Change
Pull Up | 3 | 9-11 | BW+10 | +1 rep (hit all targets)
Seated Row | 3 | 10-12 | 72.5 | +2.5kg (exceeded range)
Runs:
- Tue: Easy ~5km
- Thu: Tempo ~5km (target ~5:00/km based on recent 4:58 avg)
- Sat: Easy ~5km
Flag any exercises needing manual decision (swap candidate, unclear progression, stall).
Do not save until the user confirms. Present, discuss, adjust if needed, then call save_weekly_targets once approved.
When the user asks to review a specific completed workout (not the whole week):
get_workout_review — returns workout metadata (including readiness), all sets, exercise feedbackget_workout_plan for the planned targetsWhen discussing adjustments:
save_weekly_targets