55c17614b8
Library JSON cleanup (proof-of-work/prisma/exercises.seed.json)
19 exercises corrected:
- Cycling/Jump Rope/Rowing/Running: type=cardio with proper
inputFields (duration/distance/calories — no more reps/weight).
- Walking Lunge/Wall Sit/Headstand/Hip Extension: reclassified
out of cardio into bodyweight.
- Plank/Mace warmup/Hollow Body Landmine/Soccer: inputFields
fixed.
- Descriptions added for ~10 cryptic exercises (Core, Resistance
Band, Stir the pot, Slide Board, Neck Circuit, TGU, Captains
of Crush, etc.).
Reconcile-on-boot (ensureExerciseLibrary.cjs)
Changed from INSERT-OR-IGNORE to INSERT-OR-UPDATE keyed on
(userId, name). Existing rows where isCustom = 0 get
description/type/muscleGroups/inputFields/defaultWeightUnit
refreshed from the curated JSON. Rows where isCustom = 1 are
skipped — user customizations always win.
Verified end-to-end: applied patches propagate to a copy of the
user's snapshot DB; manually-tampered isCustom=1 rows survive a
second reconcile pass untouched.
PATCH /api/exercises/[id] flips isCustom -> true on user edits
Once you edit a library exercise via the in-app UI, the row's
isCustom flag becomes 1 and the boot-time reconcile leaves it
alone forever. Closes the only failure mode where a maintainer
curated-library refresh could overwrite user edits.
Photo-import (Claude vision) removed
- app/api/workouts/import/route.ts deleted.
- components/import/WorkoutImportClient.tsx deleted (orphan
component — wasn't referenced anywhere by the live UI).
- CSV import (app/main/import → page-csv.tsx →
/api/workouts/import/save) is unchanged. The save endpoint
stays — it's used by the CSV flow too.
Settings UI: "Claude AI Integration" section removed
The toggle + API key input promised "personalized workout
recommendations" that the codebase never delivered (the only
actually-wired use was the photo-import we just removed).
Schema columns User.enableClaudeAI / User.claudeApiKey stay
as harmless dead fields — they'll get cleaned up or repurposed
when the model-agnostic AI work lands. The preferences API
no longer accepts or returns those fields.
No data migration. /data on existing installs is untouched.
v1.0.0:7 promoted to current; :1-:6 in other.
2286 lines
41 KiB
JSON
2286 lines
41 KiB
JSON
[
|
|
{
|
|
"name": "Assault Bike",
|
|
"description": null,
|
|
"type": "assault bike",
|
|
"muscleGroups": [
|
|
"cardio",
|
|
"legs",
|
|
"back",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"calories",
|
|
"duration",
|
|
"notes",
|
|
"distance",
|
|
"watts"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "BB Reverse Curl",
|
|
"description": null,
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"forearms",
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Barbell Curl",
|
|
"description": "Barbell curl for bicep strength",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Barbell Press Hold",
|
|
"description": null,
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"shoulders",
|
|
"traps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"weight",
|
|
"duration"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Barbell Row",
|
|
"description": "Barbell bent-over row for back strength",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"back",
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Barbell step back lunge",
|
|
"description": null,
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"quads",
|
|
"hamstrings",
|
|
"glutes"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Bench Press",
|
|
"description": "Barbell bench press for chest development",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"chest",
|
|
"triceps",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Deadlift",
|
|
"description": "Compound barbell deadlift for full posterior chain",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"back",
|
|
"legs",
|
|
"glutes"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Decline Bench Press",
|
|
"description": "Decline barbell bench press for lower chest emphasis",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"chest",
|
|
"triceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Front Squat",
|
|
"description": "Front squat with emphasis on quadriceps",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"quads",
|
|
"glutes"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Hip Thrust",
|
|
"description": "Barbell hip thrust for glute development",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"glutes"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Incline Bench Press",
|
|
"description": "Incline barbell bench press targeting upper chest",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"chest",
|
|
"shoulders",
|
|
"triceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Landmine Pull and Press",
|
|
"description": null,
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"shoulders",
|
|
"back"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Overhead Press",
|
|
"description": "Standing barbell overhead press for shoulder strength",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"shoulders",
|
|
"triceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Romanian Deadlift",
|
|
"description": "RDL for hamstring and lower back development",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"hamstrings",
|
|
"glutes",
|
|
"back"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "SA Landmine Press",
|
|
"description": null,
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"shoulders",
|
|
"chest"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Shrugs",
|
|
"description": "Barbell shrugs for trap development",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"traps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Squat",
|
|
"description": "Barbell back squat for overall leg development",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"legs",
|
|
"glutes",
|
|
"quads"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "T-Bar Row",
|
|
"description": "T-bar row for mid-back thickness",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"back",
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Upright Row",
|
|
"description": "Barbell upright row for shoulder and trap development",
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"shoulders",
|
|
"traps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Zercher Squat",
|
|
"description": null,
|
|
"type": "barbell",
|
|
"muscleGroups": [
|
|
"quads",
|
|
"glutes",
|
|
"core"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Ab Mat",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"core"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Ab Scissors",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"core"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Adductor Bench",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"adductors"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Air Squat",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Alt Leg Lift",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"core"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Ankle Jump",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Band Pushup",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"chest",
|
|
"triceps",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Bench Dip",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"triceps",
|
|
"chest"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Box jump",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"quads",
|
|
"glutes",
|
|
"cardio"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Broad Jump",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Calf Raise",
|
|
"description": "Standing calf raise for calf development",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"calves"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Chinup",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"back",
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Core",
|
|
"description": "Generic core circuit — note specific exercises (crunches, bicycle, decline situps, etc.) in the notes field.",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Dips (Chest)",
|
|
"description": "Weighted or bodyweight dips for chest and triceps",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"chest",
|
|
"triceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Fire Hydrant",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"glutes"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Glute ham developer",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"hamstrings",
|
|
"glutes"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Good Morning",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Handstand Push Up",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Hanging Leg Raise",
|
|
"description": "Hanging leg raise for lower abs",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"abs",
|
|
"core"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Hollow Body Hold",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"core"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"duration"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Jump Squat",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Knee Raise",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"core"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Low Box Jump",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Lunge Jump",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Med Ball Slam",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Med Ball Smash",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Pistol Squat",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Plank",
|
|
"description": "Front plank — log hold duration; add weight for plate-loaded variations.",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"core",
|
|
"abs"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"duration",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Pull-ups",
|
|
"description": "Bodyweight pull-ups for back and biceps",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"back",
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Push-ups",
|
|
"description": "Bodyweight chest exercise",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"chest",
|
|
"triceps",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Resistance Band",
|
|
"description": "Generic resistance band exercise — log specific motion (pull-apart, face pull, etc.) in notes.",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Reverse Hyper",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Russian Twist",
|
|
"description": "Russian twist for obliques and core",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"obliques",
|
|
"core"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Single Leg Balance",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Slalom Jump",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Wide Grip Pull Up",
|
|
"description": null,
|
|
"type": "bodyweight",
|
|
"muscleGroups": [
|
|
"back",
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Alternating Step Cable Cross",
|
|
"description": null,
|
|
"type": "cable",
|
|
"muscleGroups": [
|
|
"chest",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Cable Crossover",
|
|
"description": "Cable machine chest fly for constant tension",
|
|
"type": "cable",
|
|
"muscleGroups": [
|
|
"chest"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Cable Crunch",
|
|
"description": "Cable crunch for abdominal development",
|
|
"type": "cable",
|
|
"muscleGroups": [
|
|
"abs"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Cable Curl",
|
|
"description": null,
|
|
"type": "cable",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Cable Fly",
|
|
"description": null,
|
|
"type": "cable",
|
|
"muscleGroups": [
|
|
"chest"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Cable Lateral Raise",
|
|
"description": "Cable lateral raise for shoulder isolation",
|
|
"type": "cable",
|
|
"muscleGroups": [
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Cable Pullover",
|
|
"description": null,
|
|
"type": "cable",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Cable Row",
|
|
"description": "Seated cable row for back strength",
|
|
"type": "cable",
|
|
"muscleGroups": [
|
|
"back",
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Face Pulls",
|
|
"description": "Cable face pulls for rear delts and upper back",
|
|
"type": "cable",
|
|
"muscleGroups": [
|
|
"back",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Half Kneeling Rope Chop",
|
|
"description": null,
|
|
"type": "cable",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Low to High Crossover",
|
|
"description": null,
|
|
"type": "cable",
|
|
"muscleGroups": [
|
|
"chest",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Oblique Cable",
|
|
"description": null,
|
|
"type": "cable",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Pallof Press",
|
|
"description": "Pallof press for anti-rotation core stability",
|
|
"type": "cable",
|
|
"muscleGroups": [
|
|
"core",
|
|
"obliques"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Rope Cable Pull",
|
|
"description": null,
|
|
"type": "cable",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "SA Tricep Extension",
|
|
"description": null,
|
|
"type": "cable",
|
|
"muscleGroups": [
|
|
"triceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Tricep Pushdown",
|
|
"description": "Cable tricep pushdown for tricep isolation",
|
|
"type": "cable",
|
|
"muscleGroups": [
|
|
"triceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Cycling",
|
|
"description": "Stationary or outdoor cycling — log distance + duration as a single set.",
|
|
"type": "cardio",
|
|
"muscleGroups": [
|
|
"cardio"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"duration",
|
|
"distance",
|
|
"calories"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Headstand",
|
|
"description": "Inverted headstand hold — log duration per set.",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"duration"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Hip Extension",
|
|
"description": "Glute hip extension on bench or GHD — log reps per set.",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Jump Rope",
|
|
"description": "Jump rope intervals — log duration per set.",
|
|
"type": "cardio",
|
|
"muscleGroups": [
|
|
"cardio"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"duration"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Rowing",
|
|
"description": "Rowing erg — log distance, duration, calories per piece.",
|
|
"type": "cardio",
|
|
"muscleGroups": [
|
|
"cardio"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"duration",
|
|
"distance",
|
|
"calories"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Running",
|
|
"description": "Running outdoor or treadmill — log distance + duration per piece.",
|
|
"type": "cardio",
|
|
"muscleGroups": [
|
|
"cardio"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"duration",
|
|
"distance",
|
|
"calories"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "SkiErg",
|
|
"description": null,
|
|
"type": "cardio",
|
|
"muscleGroups": [
|
|
"full body",
|
|
"cardio"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"calories",
|
|
"duration",
|
|
"distance"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Walking Lunge",
|
|
"description": "Alternating walking lunges — bodyweight or with dumbbells in hand.",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Wall Sit",
|
|
"description": "Isometric wall sit — log hold duration per set.",
|
|
"type": "bodyweight",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"duration"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Arnold Press",
|
|
"description": "Arnold press for full shoulder development",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"shoulders",
|
|
"triceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Bulgarian Split Squat",
|
|
"description": "Single-leg squat variation for leg strength",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"legs",
|
|
"glutes",
|
|
"quads"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Concentration Curl",
|
|
"description": "Seated concentration curl for bicep peak",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "DB Standing Calf",
|
|
"description": null,
|
|
"type": "dumbbell",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "DB Step Back Lunge",
|
|
"description": null,
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"quads",
|
|
"glutes",
|
|
"hamstrings"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "DB floor press",
|
|
"description": null,
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"chest"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Dumbbell Bench Press",
|
|
"description": null,
|
|
"type": "dumbbell",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Dumbbell Curl",
|
|
"description": "Dumbbell bicep curl for arm development",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Dumbbell Fly",
|
|
"description": "Chest fly using dumbbells for stretch and squeeze",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"chest"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Dumbbell Row",
|
|
"description": "Single-arm dumbbell row for back development",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"back",
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Dumbbell Step Up",
|
|
"description": null,
|
|
"type": "dumbbell",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Front Raise",
|
|
"description": "Front raise for anterior shoulder development",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Hammer Curl",
|
|
"description": "Hammer curl for bicep and forearm development",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"biceps",
|
|
"forearms"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Hamstring deadlift",
|
|
"description": null,
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"hamstrings",
|
|
"glutes"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Incline Dumbbell Curl",
|
|
"description": null,
|
|
"type": "dumbbell",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Incline Dumbbell Press",
|
|
"description": "Incline dumbbell bench press for upper chest",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"chest",
|
|
"shoulders",
|
|
"triceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Lateral Raise",
|
|
"description": "Dumbbell lateral raise for shoulder width",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Lunges",
|
|
"description": "Dumbbell lunges for unilateral leg development",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"legs",
|
|
"glutes",
|
|
"quads"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Overhead Tricep Extension",
|
|
"description": "Standing tricep extension for arm development",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"triceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Reverse Fly",
|
|
"description": "Rear delt fly for posterior shoulder",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"shoulders",
|
|
"back"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "SA DB Curl",
|
|
"description": null,
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "SA DB Press",
|
|
"description": null,
|
|
"type": "dumbbell",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "SL Quad Step Down",
|
|
"description": null,
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"quads",
|
|
"glutes",
|
|
"legs"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Shoulder warmup",
|
|
"description": "lateral raise, rotator, rear delt",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Single Leg Romanian Deadlift",
|
|
"description": null,
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"hamstrings",
|
|
"glutes"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Skull Crusher",
|
|
"description": "Lying tricep extension for tricep development",
|
|
"type": "dumbbell",
|
|
"muscleGroups": [
|
|
"triceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "EQ Bar Incline Bench",
|
|
"description": null,
|
|
"type": "eq bar",
|
|
"muscleGroups": [
|
|
"chest",
|
|
"triceps",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "EQ Military Press",
|
|
"description": null,
|
|
"type": "eq bar",
|
|
"muscleGroups": [
|
|
"shoulders",
|
|
"triceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Exercise Ball Situp",
|
|
"description": null,
|
|
"type": "exercise ball",
|
|
"muscleGroups": [
|
|
"abs"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Stir the pot",
|
|
"description": "Stability-ball plank with circular forearm motion (\"stirring the pot\").",
|
|
"type": "exercise ball",
|
|
"muscleGroups": [
|
|
"abs"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Captains of Crush",
|
|
"description": "Hand gripper for forearm/grip strength — record gripper level (1, 1.5, 2, etc.) in notes.",
|
|
"type": "grippers",
|
|
"muscleGroups": [
|
|
"forearms"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Hex Bar Deadlift",
|
|
"description": null,
|
|
"type": "hex bar",
|
|
"muscleGroups": [
|
|
"back",
|
|
"hamstrings",
|
|
"glutes",
|
|
"quads"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Ab KB Drag",
|
|
"description": null,
|
|
"type": "kettlebell",
|
|
"muscleGroups": [
|
|
"core"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": "kg"
|
|
},
|
|
{
|
|
"name": "Farmer's Carry",
|
|
"description": null,
|
|
"type": "kettlebell",
|
|
"muscleGroups": [
|
|
"abs",
|
|
"forearms"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": "kg"
|
|
},
|
|
{
|
|
"name": "Half Kneel Windmill",
|
|
"description": null,
|
|
"type": "kettlebell",
|
|
"muscleGroups": [
|
|
"core",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": "kg"
|
|
},
|
|
{
|
|
"name": "Hip Flexor",
|
|
"description": null,
|
|
"type": "kettlebell",
|
|
"muscleGroups": [
|
|
"hip flexors",
|
|
"core"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": "kg"
|
|
},
|
|
{
|
|
"name": "KB Press",
|
|
"description": null,
|
|
"type": "kettlebell",
|
|
"muscleGroups": [
|
|
"shoulders",
|
|
"triceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": "kg"
|
|
},
|
|
{
|
|
"name": "KB Sidestep",
|
|
"description": null,
|
|
"type": "kettlebell",
|
|
"muscleGroups": [
|
|
"glutes",
|
|
"quads"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": "kg"
|
|
},
|
|
{
|
|
"name": "KB Snatch",
|
|
"description": null,
|
|
"type": "kettlebell",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "KB Swing",
|
|
"description": null,
|
|
"type": "kettlebell",
|
|
"muscleGroups": [
|
|
"glutes",
|
|
"hamstrings",
|
|
"core"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": "kg"
|
|
},
|
|
{
|
|
"name": "Kettlebell Leg Extension",
|
|
"description": null,
|
|
"type": "kettlebell",
|
|
"muscleGroups": [
|
|
"quads"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": "kg"
|
|
},
|
|
{
|
|
"name": "SA KB Row",
|
|
"description": null,
|
|
"type": "kettlebell",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Side Lying Press",
|
|
"description": null,
|
|
"type": "kettlebell",
|
|
"muscleGroups": [
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": "kg"
|
|
},
|
|
{
|
|
"name": "TGU",
|
|
"description": "Turkish Get-Up — full ground-to-standing kettlebell movement; log kettlebell weight.",
|
|
"type": "kettlebell",
|
|
"muscleGroups": [
|
|
"full body",
|
|
"core",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": "kg"
|
|
},
|
|
{
|
|
"name": "Windmill",
|
|
"description": null,
|
|
"type": "kettlebell",
|
|
"muscleGroups": [
|
|
"core",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": "kg"
|
|
},
|
|
{
|
|
"name": "Mace warmup",
|
|
"description": "Steel mace warm-up flow — 360s, figure-8s, etc. Log mace weight.",
|
|
"type": "mace bar",
|
|
"muscleGroups": [
|
|
"shoulders",
|
|
"core"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Lat Pulldown",
|
|
"description": "Machine lat pulldown for back width",
|
|
"type": "machine",
|
|
"muscleGroups": [
|
|
"back",
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Leg Curl",
|
|
"description": "Machine leg curl for hamstring isolation",
|
|
"type": "machine",
|
|
"muscleGroups": [
|
|
"hamstrings"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Leg Extension",
|
|
"description": "Machine leg extension for quadriceps isolation",
|
|
"type": "machine",
|
|
"muscleGroups": [
|
|
"quads"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Leg Press",
|
|
"description": "Machine leg press for lower body strength",
|
|
"type": "machine",
|
|
"muscleGroups": [
|
|
"legs",
|
|
"glutes",
|
|
"quads"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Preacher Curl",
|
|
"description": "Preacher curl for bicep isolation",
|
|
"type": "machine",
|
|
"muscleGroups": [
|
|
"biceps"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Rear delt",
|
|
"description": null,
|
|
"type": "machine",
|
|
"muscleGroups": [
|
|
"shoulders",
|
|
"back"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Ab Straps",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Ab Wheel Rollout",
|
|
"description": "Ab wheel for core and abs",
|
|
"type": "other",
|
|
"muscleGroups": [
|
|
"core",
|
|
"abs"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Assisted Pull Up",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Band Side Steps",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Banded Overhead Hold",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Bench Step Up",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Close Grip Bench Press",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Floor Press",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Glute Bridge",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Goblet Squat",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Hollow Body Landmine",
|
|
"description": "Landmine press performed in hollow body position — log reps + barbell weight.",
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Incline Close Grip Bench",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "JM Press",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Landmine Press",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Middle Split",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Neck Circuit",
|
|
"description": "Series of neck flexion/extension/lateral isometric movements.",
|
|
"type": "other",
|
|
"muscleGroups": [
|
|
"neck"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Parallel Push Up",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Push Press",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Romanian Split Squat",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Scapula Pull Up",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Side Lunge",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Single Leg Deadlift",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Slide Board",
|
|
"description": "Sliding lateral skating-style movement on a slick slide board.",
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Soccer",
|
|
"description": "Pickup or training soccer — log overall duration + optional distance.",
|
|
"type": "other",
|
|
"muscleGroups": [
|
|
"cardio"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"duration",
|
|
"distance",
|
|
"calories"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Squeeze Press",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Standing Pinch Press",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Wrist Curl",
|
|
"description": null,
|
|
"type": "other",
|
|
"muscleGroups": [],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"weight"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Ring Dip",
|
|
"description": null,
|
|
"type": "ring",
|
|
"muscleGroups": [
|
|
"chest",
|
|
"triceps",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Ring row",
|
|
"description": null,
|
|
"type": "ring",
|
|
"muscleGroups": [
|
|
"back"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
},
|
|
{
|
|
"name": "Tuck Inversion",
|
|
"description": null,
|
|
"type": "ring",
|
|
"muscleGroups": [
|
|
"core",
|
|
"back",
|
|
"shoulders"
|
|
],
|
|
"inputFields": [
|
|
"sets",
|
|
"reps",
|
|
"notes"
|
|
],
|
|
"defaultWeightUnit": null
|
|
}
|
|
]
|