Automated marathon training coach skills/tools.
This skill defines the operational capabilities for the 3h2Os training plan platform. It supports both running and swimming plan creation, management, and Garmin Connect integration.
Infrastructure Note: This project runs in Docker.
- Container: Execute scripts inside the container:
docker exec running_app uv run [script_path].- Orchestration: Use
docker-composefor managing services.- Environment: Ensure Docker Desktop is running before attempting operations.
Creates periodised training plans via a guided multi-step wizard.
/plans/buildPOST /api/plans/generate-preview -- returns plan skeleton without saving.POST /api/plans/from-wizard -- generates and persists full plan.Duplicate an existing plan with optional date offset.
POST /api/plans/{id}/cloneRetrieves recent completed activities from Garmin Connect and persists them to the database.
POST /api/integrations/garmin/syncX-Garmin-Token), DatabaseEnforces safety guardrails (15% volume cap, long run ratio, 80/20 intensity distribution) on every workout save/update.
backend/app/core/validation.py (ValidationEngine class) — runs inline in the service layer, not as a standalone script.backend/scripts/reflect_and_validate.py — exists as a CLI tool for manual checks but is not the canonical validation path.Pushes structured workouts from the plan to the Garmin Connect Calendar.
backend/scripts/sync_to_garmin.pyGET /api/plansPOST /api/plansDELETE /api/plans/{id}PUT /api/plans/{id}/activatePOST /api/workoutsPUT /api/workouts/{id}DELETE /api/workouts/{id}PUT /api/weeks/{id}Starts the FastAPI backend for local development.
cd backend && uv run uvicorn app.main:app --reloadhttp://localhost:8000Starts the React frontend for local development.
cd frontend && nvml && npm run devhttp://localhost:5173cd backend && uv run pytest (378 tests)cd frontend && npm testdocker compose up --builddocker compose -f docker-compose.prod.yml up -d