Each skill is a SKILL.md folder under skills/, authored
once and installed into every harness via install_skills(skills_dir, capabilities) (see
Architecture & principles). Frontmatter (description, when_to_use, allowed-tools)
lets the harness decide when to invoke a skill; the body is the step-by-step procedure for the agent, with
{{tool: ...}} placeholders resolved to the active path's concrete tools at install time.
The Path support column reflects the capability matrix:
Full = same experience either way, Degraded = installed but a step is reduced or skipped, Unavailable =
not installed at all.
Live metrics from the active metrics source (where readiness/hrv/sleep/body_battery capabilities exist) + a short subjective prompt
Tools (active path)
get_training_readiness, get_morning_training_readiness, get_hrv_data, get_sleep_data, get_body_battery — none of these capabilities exist on Strava+Calendar, so this part of the step is skipped entirely
File outputs
logs/readiness/<date>.json (metrics_snapshot populated on Garmin; omitted, not zero-filled, on Strava+Cal)
Path support
Garmin: Full · Strava+Cal: Degraded — subjective-only + yesterday's load
Remote / scheduled, via /schedule or .claude/loop.md
Inputs
Short conversational prompt ("how does your body feel?")
Tools (active path)
None required (optionally Garmin get_body_battery if the body_battery capability is present)
File outputs
Appends to logs/readiness/<date>.json (subjective-only update)
Path support
Garmin: Full · Strava+Cal: Full
Note
An earlier draft included a log-workout skill. It was removed once the active workout-calendar source was
confirmed as the workout system-of-record — there is nothing left for it to log.