strength

Track and analyze strength workouts with exercise, set, volume, and PR analytics.

Updated Sep 1, 2026
One-click install
npx skills add https://github.com/Hoczka-git/Janus --skill strength-hoczka-git
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: strength
Source: https://github.com/Hoczka-git/Janus/tree/main/skills/strength
Command: npx skills add https://github.com/Hoczka-git/Janus --skill strength-hoczka-git

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Recording strength training sessions as scattered notes makes it impossible to track progression, detect personal records, or analyze training volume over time. This Skill structures strength workouts into a Workout → Exercise → Set hierarchy and routes all persistence through the Janus activity ingestion layer so data stays validated, deduplicated, and consistent. ## Core Features & Use Cases - Structured Workout Recording: Captures exercises with per-set reps, weight in kg, and optional RPE (1–10), validated at construction (reps ≥ 0, weight ≥ 0 or None for bodyweight). - Progression Analytics: Computes per-exercise summaries including workout count, highest weight, highest workout volume, and chronological progression points. - PR and Anomaly Detection: Flags new personal records by comparing latest max weight and volume against historical values, and detects unusual load or rep deviations. - Safe Ingestion: All model-generated workouts flow through ActivityRecord(WORKOUT_ADDED) into ingest_activities() — never by writing to data/ directly. - Use Case: After telling your agent "I did Back Squat 5x80kg at RPE 8, three sets", the workout is recorded as a structured activity and you can later run janus workout summary --exercise "Back Squat" to see your full progression. ## Quick Start Tell the agent to record today's strength session with each exercise's sets, reps, weight in kg, and RPE so it is ingested as a structured workout.

Frequently Asked Questions about strength

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I record a strength workout with sets and reps?

Emit an ActivityRecord with type WORKOUT_ADDED, workout_type "strength", and an evidence.exercises list containing each exercise's name and sets with reps, weight_kg, and optional rpe. The ingestion gateway validates and appends it to data/workouts.md atomically.

How is training volume calculated for strength exercises?

Volume is computed as the sum of weight_kg multiplied by reps across all sets of an exercise in a workout. Bodyweight sets where weight_kg is None contribute zero to volume but still count toward set totals.

How are personal records detected in workout history?

PR detection compares the latest workout's max weight and total volume against all prior chronological progression points for the same exercise. If the latest value exceeds the historical maximum, a weight or volume PR is flagged at query time.

Can I log bodyweight exercises without a weight value?

Yes, set weight_kg to None for bodyweight exercises, which is distinct from 0.0 meaning zero added weight. Bodyweight sets are excluded from highest-weight calculations and contribute zero to volume.

Why must workouts go through the activity ingestion layer?

The ingestion layer provides validation, normalization, deduplication, and atomic append-only persistence to data/workouts.md. Writing files directly bypasses these protections and risks corrupting or duplicating existing workout data.

What are the limitations of strength workout tracking?

The skill does not update goal metrics from workouts, handle wearable sync protocols like Strava or FIT parsing, or process raw telemetry such as heart-rate streams. It also never fabricates missing values like RPE or weight.