- opencode agent (fitness-trainer) for personal training conversations - fitness-workout skill with programming methodology guidelines - workout.py script (1RM, volume, cycle helpers) - logs/ directory for workout and check-in markdown files - inputs/ with user profile (equipment, goals, medical, Juggernaut history) - google-sheets-automation skill for optional Sheets integration - AGENTS.md with setup documentation
5.4 KiB
Fitness Workout Programming Skill
Provides programming methodology and guidelines for the fitness trainer agent. Focuses on general principles rather than prescribing a specific program.
Volume Landmarks
Use these as rough guidelines per muscle group per week. Adjust based on the client's recovery, experience level, and goal:
| Zone | Sets/week | Purpose |
|---|---|---|
| Maintenance | 4-6 | Deload, injury management |
| Minimum Effective Vol | 8-10 | Hypertrophy (just enough to grow) |
| Maximum Adaptive Vol | 12-18 | Optimal growth/strength range |
| Maximum Recoverable Vol | 20+ | Advanced only, short-term |
Intensity Zones (% of training max / e1RM)
| Zone | %TM | RPE | Reps in Reserve | Purpose |
|---|---|---|---|---|
| Recovery | <50% | <5 | 5+ | Warmup, technique, rehab |
| Endurance | 50-60% | 5-6 | 4-5 | Muscle endurance |
| Hypertrophy | 60-75% | 6-8 | 2-4 | Muscle growth |
| Strength | 75-85% | 7-9 | 1-2 | Neural adaptation |
| Peak | 85%+ | 9-10 | 0-1 | Top-end strength, peaking |
Training max (TM) is typically 90-95% of actual 1RM. This gives room to progress without overshooting.
Progression Methods
Linear Progression
- Add weight each session (e.g., +5lb upper / +10lb lower)
- Works for novices and early intermediates
- Stall after 2-3 missed attempts → reset or switch method
Double Progression
- Stay at same weight until you hit the top of the rep range for all sets
- Then add weight and drop to the bottom of the rep range
- Example: 3x8-12 @ 135lb. Add weight when you can do 3x12
Wave Loading (Juggernaut-style)
- Cycle through rep schemes over weeks
- Example: 10s → 8s → 5s → 3s waves, adding weight each wave
- Each wave is 4-5 weeks with increasing intensity, decreasing volume
RPE-Based
- Prescribe RPE targets rather than fixed weights
- Auto-regulates based on daily readiness
- Example: 3x5 @ RPE 8 — use whatever weight feels like you have 2 reps in reserve
Deload Guidelines
Deload when:
- 2+ weeks of stalled progress on main lifts
- Cumulative fatigue is high (poor sleep, low motivation, constant soreness)
- Coming back from illness/injury
- After a peaking block
Deload: reduce volume by 40-60%, keep intensity moderate. Lasts 1 week.
Injury Modifications (Distal Radius Fracture)
The client broke their left wrist on 2026-05-16. Key considerations:
- Wrist loading: be careful with heavy pressing (barbell bench, OHP). Dumbbells allow natural wrist rotation — prefer them when possible
- Grip-intensive pulling: rows, deadlifts, farmer's carries may aggravate if grip is fatigued. Use straps if needed
- Avoid: wrist extensions/flexions under load, narrow grip bench, heavy front rack position
- Monitor: pain during or after session. Any sharp wrist pain → substitute or reduce load
- Rehab: as wrist recovers, gradually reintroduce full range. The client was "recovering fast" as of their medical intake
Exercise Selection
Given the client's equipment (see inputs/equipment.md), build balanced
sessions:
- Push: bench press (barbell/dumbbell), OHP (barbell/dumbbell), incline press, landmine press, dips (if available through rack)
- Pull: pull-ups, barbell rows, dumbbell rows, pulldowns, face pulls, farmer's carries, deadlifts, RDLs
- Legs: squats (barbell front/back), leg press (via rack?), RDLs, reverse hypers (via bench?), KB swings, lunges
- Core: ab roller, hanging leg raises, planks, tib bar work
Use the available outdoor terrain (steep hill, half-mile trail) for:
- Loaded carries (walk up the hill with farmer's handles)
- Sled work (if they have a sled)
- Conditioning finishers (hill sprints, ruck)
Sample Session Structures
Full Body (3x/week)
- Squat variation
- Horizontal push
- Horizontal pull
- Vertical push or pull
- Single-leg or core
- Conditioning finisher
Upper/Lower (4x/week)
- Upper A: horizontal push, vertical pull, horizontal pull, vertical push
- Lower A: squat focus, hinge, single-leg, core
- Upper B: vertical push, horizontal pull, vertical pull, horizontal push
- Lower B: hinge focus, squat, single-leg, core
Push/Pull/Legs (6x/week)
- Push: chest, shoulders, triceps
- Pull: back, biceps, rear delts
- Legs: quads, hamstrings, glutes, calves
Interpreting Historical Data
The client's inputs/Juggernaut training.xlsx contains their previous
Juggernaut training cycles. When they want to restart Juggernaut:
- Look for the last cycle's top set weights
- Adjust for current estimated 1RM (accounting for detraining after 1.5 years off)
- Start a new wave at ~80-85% of previous training max, or run a "bridge" cycle to rebuild work capacity first
General Coaching Notes
- Start conservatively and add volume/intensity based on feedback
- Prefer submaximal training (~80%) for most of the year; peak sparingly
- Change one variable at a time (volume OR intensity, never both)
- A bad workout is not a crisis — just deload or reset and keep going
- Weight loss is driven primarily by diet; training preserves muscle during a cut
- Blood pressure and gout benefit from consistent cardio, hydration, and weight management