CrossFit Programmer
Create structured WODs that match user goals, available time, equipment, skill level, and recent training context.
Quick Start
- Gather or infer the athlete profile:
- Goal (
engine,strength,skill,mixed) - Session length in minutes
- Fitness level (
beginner,intermediate,advanced) - Available equipment
- Limitations (
avoid_patterns,avoid_movements) - Preferred modalities (optional)
- Desired WOD type (optional:
amrap,for_time,emom,chipper,interval)
- Prepare a profile JSON using
references/sample-profile.jsonas the template. - If available, provide recent workout history using
references/sample-history.jsonas the template. - Generate a WOD with the deterministic script:
node scripts/generate_wod.js \
--profile-file references/sample-profile.json \
--history-file references/sample-history.json- If needed, request JSON output for programmatic reuse:
node scripts/generate_wod.js \
--profile-file references/sample-profile.json \
--history-file references/sample-history.json \
--output jsonProgramming Rules
- Include warm-up, main work, and cooldown.
- Reduce repeated stress from very recent sessions by down-weighting repeated patterns and exact repeated movements.
- Prioritize equipment-available movements.
- Scale movement complexity to the user level while still offering progression options.
- Preserve modality balance unless the user explicitly asks for a biased day.
- Enforce movement coherence inside each piece (EMOM/AMRAP/chipper stations should share setup and context).
- Only program context-dependent variations when the context exists:
- Bar-facing burpee is only valid if a barbell movement is in that same piece. - If no barbell lift is present, use standard burpee or lateral burpee instead. - Burpee box jump over is only valid if a box is already in that lane/piece. - Toes-to-bar, chest-to-bar pull-up, and pull-up variants require pull-up bar access in that piece. - Wall-ball shots are only valid when a wall-ball target and wall-ball are available for that piece. - Rope climb is only valid when a rope and safe descent setup are available; otherwise use rope pull or pull-up progressions. - Ring dip and ring muscle-up are only valid when rings are already set at working height in that piece. - Handstand walk is only valid when there is clear lane space; otherwise use handstand hold or wall-supported handstand work.
- Minimize pointless station transitions; prefer combinations that can be performed in one lane with shared equipment.
Resources
references/movements.json: movement library with modality, patterns, effects, equipment, and variations.references/sample-profile.json: canonical input profile template.references/sample-history.json: recent training context template.scripts/generate_wod.js: deterministic generator that turns profile + history into a full WOD.