Weekly Fitness Review
Summarizes workout data from Apple Health, Fitbit, Garmin, or Strava with next-week recommendations
Weekly Fitness Review
A weekly fitness summary skill that pulls workout data from Apple Health, Fitbit, Garmin, or Strava exports and generates an actionable review with volume trends, recovery indicators, and personalized next-week training recommendations. Designed for anyone from casual exercisers to structured training plan followers.
Supported Platforms & Integrations
| Platform | Setup Method | Auth Type | Notes |
|---|---|---|---|
| Apple Health | XML export or Shortcuts | Local file | Exports via Health app or automated Shortcut |
| Fitbit | Web API token | OAuth2 | Pulls activity, sleep, and heart rate data |
| Garmin Connect | FIT file export or API | OAuth2 | Supports running, cycling, swimming, strength |
| Strava | API token in config | OAuth2 | Activity feed with segment and effort data |
| Whoop | API token | OAuth2 | Recovery score and strain data integration |
| Google Sheets | Service account | OAuth2 | Logs weekly summaries for long-term trend tracking |
When to Use This Skill
- Use this when you work out regularly but never look at your data to spot trends or overtraining
- Use this when you want a consolidated view across multiple fitness platforms in one place
- Use this when you are following a training plan and need weekly volume and intensity checks
- Use this when you suspect you are overtraining but lack objective data to confirm it
- Use this when you want week-over-week comparisons without manually building spreadsheets
- Use this when you need recovery recommendations based on sleep quality and training load
- Consider alternatives when you need real-time coaching during a workout — use your watch or a coaching app
- Consider alternatives when you need a full periodized training plan — consult a coach or use TrainingPeaks
Quick Start
# ~/.claude/skills/weekly-fitness-review.yaml primary_platform: apple_health export_path: ~/Health/export.xml review_day: monday activities_tracked: - running - strength_training - cycling - yoga goals: weekly_active_minutes: 200 weekly_strength_sessions: 3 weekly_cardio_sessions: 3 rest_days_minimum: 1 sleep_tracking: true resting_hr_tracking: true
First Run Example
claude skill weekly-fitness-review --week 2026-03-09
Expected Output
Weekly Fitness Review — March 9-15, 2026
=========================================
Activity Summary:
Total active minutes: 245 (goal: 200) [+23% vs last week]
Workouts completed: 6
Rest days taken: 1 (Sunday)
Running: 3 sessions | 18.4 mi | Avg pace 8:32/mi | Avg HR 148
Strength: 2 sessions | 95 min | Upper + Lower split
Yoga: 1 session | 45 min | Recovery flow
Recovery Indicators:
Avg resting HR: 54 bpm (baseline: 52) -- slightly elevated
Avg sleep: 7.1 hrs (target: 7.5) -- below target
Sleep quality score: 78/100
Trends (4-week rolling):
Running volume: +12% (watch for overuse)
Strength volume: Stable
Recovery score: Declining slightly
Next Week Recommendations:
1. Add one extra rest or active recovery day
2. Cap long run at 7 miles (easy pace) to manage volume increase
3. Prioritize sleep — aim for 7.5+ hours Sun-Thu
4. Consider deload on strength (reduce sets by 25%)
Overall Week Grade: B+ (strong volume, recovery needs attention)
Advanced Configuration
Platform-Specific Setup
Apple Health Export
apple_health: export_path: ~/Health/export.xml auto_export_shortcut: "Weekly Health Export" metrics: - active_energy - exercise_minutes - heart_rate - sleep_analysis - resting_heart_rate - vo2_max
Strava API
strava: enabled: true client_id: "your-client-id" access_token: "your-access-token" include_segments: true include_suffer_score: true activity_types: - Run - Ride - Swim
Full Options Reference
| Parameter | Type | Default | Description |
|---|---|---|---|
| primary_platform | string | apple_health | Main data source for workout data |
| export_path | string | ~/Health/export.xml | Path to health data export file |
| review_day | string | monday | Day of week to generate the review |
| activities_tracked | list | all | Activity types to include in analysis |
| goals.weekly_active_minutes | int | 150 | Target active minutes per week |
| goals.weekly_strength_sessions | int | 2 | Target strength training sessions |
| goals.weekly_cardio_sessions | int | 3 | Target cardio sessions per week |
| goals.rest_days_minimum | int | 1 | Minimum rest days enforced per week |
| sleep_tracking | bool | true | Include sleep duration and quality analysis |
| resting_hr_tracking | bool | true | Track resting heart rate trends for recovery |
| rolling_window_weeks | int | 4 | Weeks of history for trend calculations |
| overtraining_alerts | bool | true | Warn when volume increases exceed safe thresholds |
| output_format | string | terminal | terminal, markdown, or google_sheets |
| units | string | imperial | imperial or metric for distances and weights |
Core Concepts
| Concept | Purpose | How It Works |
|---|---|---|
| Training Load | Quantifies weekly stress | Combines duration, intensity (HR zones), and session count into a single load score |
| Recovery Score | Detects overtraining early | Tracks resting HR trend, sleep quality, and subjective fatigue indicators |
| Volume Progression | Safe improvement rate | Flags when weekly running or lifting volume increases more than 10% over prior week |
| Activity Balance | Prevents imbalanced training | Checks ratio of cardio to strength to flexibility and suggests adjustments |
| Trend Analysis | Spots patterns over time | Uses 4-week rolling averages to show whether fitness markers are improving or declining |
Architecture
Data Sources (Apple Health / Fitbit / Garmin / Strava)
|
v
+-------------------+
| Data Normalizer |----> Converts all formats to unified schema
+-------------------+
|
v
+-------------------+
| Metrics Engine |----> Calculates load, volume, recovery
+-------------------+
|
+---------+---------+
| |
v v
+---------------+ +------------------+
| Trend Tracker | | Recommendation |
| (4-wk rolling)| | Generator |
+---------------+ +------------------+
| |
v v
+-------------------------------+
| Weekly Report Formatter |
+-------------------------------+
Workflow Examples
Scenario 1: Runner Training for a Half Marathon
Input: 6 runs logged this week, total 32 miles, race in 5 weeks
Processing:
- Compares weekly mileage to 4-week average (28 mi avg)
- Calculates 14% volume increase — above 10% safe threshold
- Checks long run proportion (12 mi = 37.5% of total, ideal is <30%)
- Reviews easy vs hard effort distribution
Output:
Warning: Weekly mileage jumped 14% — risk of overuse injury
Long run is 37.5% of volume (recommend keeping under 30%)
Suggestion: Next week, cap total at 30 miles with 9-mile long run
Easy/hard split: 72/28 (good — target is 80/20, slight adjustment needed)
Race readiness: On track for 1:55-2:00 half marathon
Scenario 2: Strength Training Progress Check
Input: 3 strength sessions logged with exercise details and weights
Processing:
- Tracks total volume (sets x reps x weight) per muscle group
- Compares to previous week for progressive overload
- Checks muscle group balance (push vs pull ratio)
Output:
Total lifting volume: 42,800 lbs (+5% vs last week)
Push/Pull ratio: 1.3:1 (slightly push dominant — add a pull session)
Strongest progression: Deadlift +10 lbs this week
Plateau detected: Bench press — same weight for 3 weeks
Suggestion: Try 5x3 heavy sets on bench or add pause reps
Scenario 3: Recovery Week Detection
Input: Resting HR trending up for 10 days, sleep averaging 6.2 hours,
subjective fatigue rating 7/10
Processing:
- Resting HR 4 bpm above 30-day baseline (significant)
- Sleep deficit accumulating (target 7.5 hrs, averaging 6.2)
- Training load was high for 2 consecutive weeks
Output:
RECOVERY ALERT: Multiple indicators suggest accumulated fatigue
Recommended action: Deload week
- Reduce all training volume by 40-50%
- Replace one cardio session with yoga or walking
- Prioritize 8+ hours sleep for the next 5 nights
- Retest resting HR at end of deload week
If resting HR returns to baseline, resume normal training
Best Practices
-
Export data consistently on the same day — Set a recurring reminder to export your health data every Sunday evening or automate it with Apple Shortcuts. Consistent timing ensures accurate week-over-week comparisons.
-
Track resting heart rate every morning — The single most reliable indicator of recovery status. A sustained rise of 3+ bpm above your baseline warrants a lighter training week regardless of how you feel.
-
Do not chase volume numbers blindly — The review shows volume trends to help you progress safely, not to create pressure. A down week is often more valuable than an up week for long-term fitness.
-
Combine objective and subjective data — Add a brief energy rating (1-10) to your weekly check-in. Sometimes you feel terrible despite good metrics, and that matters as much as the numbers.
-
Review monthly trends, not just weekly snapshots — Individual weeks fluctuate. The 4-week rolling trend tells the real story about whether your fitness is improving.
Common Issues
-
Apple Health export file is too large to parse — If your export exceeds 1 GB, use the
date_rangeparameter to limit parsing to the last 90 days instead of all-time history. -
Heart rate data missing for some workouts — Ensure your watch was worn and properly fitted. The review will note sessions without HR data and exclude them from zone analysis.
-
Strength exercises not categorized correctly — Use the
exercise_mappingconfig to map your custom exercise names to standard categories (push, pull, legs, core) so the balance analysis works accurately.
Privacy & Data Handling
All fitness data processing occurs entirely on your local machine. Health exports are read from your specified file path and parsed in memory — no copies are made or cached. Resting heart rate, sleep data, and workout details are stored only in your local ~/.fitness-review/history.json file for trend analysis. No health data is ever transmitted to external servers. If Google Sheets logging is enabled, data is written only to your own spreadsheet using your own credentials. API tokens for Strava, Fitbit, or Garmin are stored in your local Claude configuration and are never shared with third parties. You can delete all stored history at any time by removing the local history file.
Reviews
No reviews yet. Be the first to review this template!
Similar Templates
Full-Stack Code Reviewer
Comprehensive code review skill that checks for security vulnerabilities, performance issues, accessibility, and best practices across frontend and backend code.
Test Suite Generator
Generates comprehensive test suites with unit tests, integration tests, and edge cases. Supports Jest, Vitest, Pytest, and Go testing.
Pro Architecture Workspace
Battle-tested skill for architectural, decision, making, framework. Includes structured workflows, validation checks, and reusable patterns for development.