Install
openclaw skills install @voronindenis5/gym-load-plannerUse when lifting weights and wondering what load to use — estimates true 1RM from reps@weight (Epley + Brzycki consensus), builds %-1RM loading tables per goal (strength 80-90%, hypertrophy 65-80%, endurance 50-65%), plans progressive-overload blocks with automatic deload weeks, solves barbell plate math for any plate set, and tracks e1RM trend with next-session load suggestions.
openclaw skills install @voronindenis5/gym-load-plannerThe gym has two universal questions: "how much should I lift?" and "how much did I get stronger?" Most people answer both by guessing — they add weight when it feels easy and stall for months.
This skill answers both with arithmetic instead of vibes:
w × (1 + r/30)) and Brzycki
(w × 36/(37−r)) formulas, averaged, valid for reps ≤ 12, with a
range showing the disagreement between the two models.Don't use for: 1RMs estimated from reps > 12 (formula error grows fast — treat such estimates as rough), coaching elite athletes (they need individualized periodization), or medical/rehab loading decisions.
# 1RM estimate + full percentage table from a rep max
python3 scripts/gym_load.py one-rm --weight 100 --reps 8
# Training loads for a goal (from known or estimated 1RM)
python3 scripts/gym_load.py table --one-rm 125 --goal strength
# 8-week progressive overload block
python3 scripts/gym_load.py plan --one-rm 125 --goal strength \
--weeks 8 --increment 2.5 --top-reps 5
# What plates per side for 92.5 kg (20 kg bar)?
python3 scripts/gym_load.py plates --target 92.5 --bar 20
python3 scripts/gym_load.py plates --target 225 --unit lb
# Log sets and get next-session loads
python3 scripts/gym_load.py log add --lift "bench press" --weight 80 --reps 8
python3 scripts/gym_load.py log add --lift "bench press" --weight 80 --reps 10
python3 scripts/gym_load.py log next --lift "bench press" --rule double
| Formula | Equation | Best for |
|---|---|---|
| Epley | 1RM = w × (1 + r/30) | ≤ 10 reps, most lifts |
| Brzycki | 1RM = w × 36 / (37 − r) | ≤ 10 reps, slightly lower estimates |
The tool reports both plus their mean. When the two disagree by > ~5 % your rep count is outside the reliable zone — trust it less.
| Goal | %1RM | Reps/set | Rest | Sets |
|---|---|---|---|---|
| Strength | 80–90 % | 3–6 | 3–5 min | 3–5 |
| Hypertrophy | 65–80 % | 8–12 | 1.5–3 min | 3–4 |
| Endurance | 50–65 % | 15–20 | 60–90 s | 2–3 |
Rep-max conversion (Epley inverse): weight for R reps =
1RM / (1 + R/30).
Greedy largest-plate-first per side; warns if the target is unreachable with your plates (e.g. 93 kg with 2.5 kg granularity and a 20 kg bar → you can do 92.5 or 95, not 93).
log next command encodes it.log next --rule linear adds increment only when top reps were completed$ python3 scripts/gym_load.py one-rm --weight 100 --reps 8
Epley: 126.7 kg
Brzycki: 123.8 kg
Mean: 125.2 kg (formulas agree within 2.3% — good)
$ python3 scripts/gym_load.py plates --target 92.5 --bar 20
Per side: 25 + 10 + 1.25 kg → total 92.5 kg ✓
Formulas: Epley (1985), Brzycki (1993) — both established exercise-science 1RM predictors. Zones reflect widely used NSCA-style guidelines. Individual response varies; loads are starting points, not prescriptions.