Claude-skill-registry add-exercise
Add a new exercise to vibereps. Use when the user wants to create a new exercise type with pose detection. Handles creating the JSON config file and detection logic.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/add-exercise" ~/.claude/skills/majiayu000-claude-skill-registry-add-exercise && rm -rf "$T"
manifest:
skills/data/add-exercise/SKILL.mdsource content
Add New Exercise
Instructions
When adding a new exercise to vibereps:
-
Read the template at
for the JSON structureexercises/_template.json -
Choose a detection type based on the exercise motion:
- Joint angle changes (squats, pushups)angle
- Vertical movement from baseline (calf raises)height_baseline
- Position relative to reference point (jumping jacks)height_relative
- Torso lean (side stretches)tilt
- Body parts approaching each other (standing crunches)distance
- Shoulder/hip width ratio (torso twists)width_ratio
- Circular arm motion (arm circles)quadrant_tracking
-
Create the JSON config in
exercises/{exercise_name}.json -
Test detection by running the tracker
MediaPipe Landmark IDs
Key landmarks for detection:
- Shoulders: 11 (left), 12 (right)
- Elbows: 13 (left), 14 (right)
- Wrists: 15 (left), 16 (right)
- Hips: 23 (left), 24 (right)
- Knees: 25 (left), 26 (right)
- Ankles: 27 (left), 28 (right)
Example: Angle-based exercise
{ "id": "squats", "name": "Squats", "description": "Strengthens legs", "category": "strength", "reps": { "normal": 10, "quick": 5 }, "detection": { "type": "angle", "landmarks": { "joint": [23, 25, 27], "joint_alt": [24, 26, 28] }, "thresholds": { "down": 120, "up": 150 } }, "instructions": { "ready": "Squat down below {down}°", "down": "Good! Now stand up" } }
Testing
Run the tracker to test:
./exercise_tracker.py user_prompt_submit '{}'