List Trained Exercises
list_trained_exercisesEnumerate the exercises the user actually trains, from their logged set history — the fastest way to orient before per-lift analysis (saves the 10+ sequential get_exercise_progress calls it used to take to survey the user). For each exercise returns: the exact exercise_id (pass it to get_exercise_progress to avoid name-match ambiguity), session_count, weeks_of_data, set_count, last_performed + days_since_last, is_stale, typical_reps, e1rm_coverage, strength_state (the trend state — progressing / holding / stalling / deloading / insufficient_data — classified over the window in strength_state_window_weeks (6), read from the SAME source as get_exercise_progress, so it never contradicts that tool; get_strength_climb classifies over 8 weeks and may differ), and can_trend (strength_state != insufficient_data) with trend_blockers explaining WHY a lift can't trend yet: insufficient_weeks (<3 distinct weeks), no_e1rm, or no_trend_state (enough raw data but no computed trend — usually variant fragmentation or e1RM coverage; see fragmented_variants). Staleness is a separate axis (is_stale / days_since_last: a hard-trained but old lift can still trend, its trend is just stale). Also returns a data_quality block: overall e1rm_coverage (fraction of working sets with a computed e1RM — typically ~1.0 post-update, so it flags coverage gaps like bodyweight sets, NOT e1RM confidence), fragmented_variants (one movement split across near-duplicate catalog ids, e.g. bicep curl as barbell + cable + dumbbell — the reason a well-trained movement can still read insufficient_data per variant), exercises_cannot_trend_yet (with weeks_of_data + blockers), and stale_trends. USE THIS FIRST to discover exact ids and which lifts have enough data to trend, then call get_exercise_progress(exercise_id) for the specific lifts. The window block reports the scan bound: scan_capped=true means older history exists beyond the scan window, so a lift trained only earlier than window.oldest_set_date may not appear (absence here is not proof it was never trained).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| window | No | ||
| exercises | No | ||
| truncated | No | ||
| data_quality | No |