running

Track and analyze running workouts through the Janus activity ingestion gateway.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Recording running workouts from chat, wearable exports, or completed tasks often leads to inconsistent data, duplicates, and unsafe direct file edits. This Skill provides a structured domain model, validated ingestion path, and analytics for running workouts within the Janus personal management system. ## Core Features & Use Cases - Structured Workout Ingestion: Converts running data (distance, duration, heart rate, elevation) into validated ActivityRecord objects persisted atomically to data/workouts.md via the activity-ingestion gateway. - Running Analytics: Computes distance-weighted average pace, best pace, total elevation, average heart rate, and longest run from stored workouts. - CLI Access: Supports human-driven commands like janus workout add --type running, janus workout show --running, and janus workout summary --running. - Use Case: After telling your agent "I ran 10 km in 55 minutes with an average HR of 151", the run is validated, deduplicated by date, and appended to your workout log, then summarized alongside your training history. ## Quick Start Ask the agent to record a running workout with distance, duration, and optional heart rate and elevation so it is ingested and summarized in your Janus workout log.

Frequently Asked Questions about running

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

FAQPage Schema
How do I record a running workout with the Janus CLI?

Run janus workout add --type running with flags for distance, duration, and optional heart rate, elevation, date, and notes. The CLI generates an rw-NNN identifier and appends the workout to data/workouts.md through an atomic write.

How does model-driven running workout ingestion work?

The model emits an ActivityRecord with type WORKOUT_ADDED and workout_type running, then calls ingest_activities. The gateway validates fields, computes a dedup key, and appends the workout atomically to data/workouts.md.

Can the running skill write directly to data/workouts.md?

No. Model-driven code must never write to data/ directly or call save_workout. All persistence flows through the activity-ingestion gateway, which uses atomic writes with retry and backup. Only the human-operated CLI path may call save_workout.

Why are duplicate running workouts appearing after ingestion?

Duplicates occur when a WORKOUT_ADDED record lacks both a workout_id and a date, collapsing the dedup key to ::running. Always populate evidence date or record date, and set workout_id when known, so deduplication can reject repeats.

What running metrics does the workout summary compute?

The summary computes total distance, total duration, distance-weighted average pace, best pace, average heart rate from runs with HR data, longest run, and total elevation. Average pace is total duration divided by total distance, not a mean of per-run paces.

Does the running skill sync with Strava or update goal progress?

No. Wearable sync from Strava, Garmin, or FIT files is a separate integration that must produce ActivityRecord values first. Cross-domain goal metric updates from workouts are not yet wired and remain aspirational.