From running
Marathon and half-marathon training coach. Creates and updates training plans based on the user's fitness level, goals, and recent run history (Runalyze or manually provided). Adapts to any experience level. Supports onboarding for new users.
How this skill is triggered — by the user, by Claude, or both
Slash command
/running:marathon-coach [new | update | status | hm | <coaching question>][new | update | status | hm | <coaching question>]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**User arguments:** `$ARGUMENTS`
User arguments: $ARGUMENTS
new — create a new training plan (marathon or half-marathon)update — adjust an existing plan (schedule change, race result, injury)status — assess current training statehm — half-marathon plan (default: marathon)Check whether ~/.marathon-coach/config.yaml exists.
If it does not exist, run interactive onboarding — ask the user in one message for:
de (German) or en (English)beginner / intermediate / advanced
Write ~/.marathon-coach/config.yaml:
name: <name>
language: <de|en>
output_dir: <output_dir>
runalyze_token: "<token or empty>"
race_type: <marathon|half-marathon>
race_date: <YYYY-MM-DD>
goal_time: "<HH:MM or descriptor>"
weekly_hours: <number>
experience: <beginner|intermediate|advanced>
notes: "<free text>"
Confirm the file was written, then continue to Step 2.
Read ~/.marathon-coach/config.yaml and parse output_dir and runalyze_token.
Check whether <output_dir>/Lauftagebuch/Lauftagebuch.md exists (written by the analyze-run skill).
If it exists: read the index, then read the 5 most recent entry files in full. Collect their raw markdown — it will be passed verbatim to the agent.
If no Lauftagebuch exists, run:
bash <skill-dir>/fetch-recent-runs.sh [count] # default: 5
NO_CONFIG → jump back to Step 1NO_TOKEN → ask the user to paste a summary of their 3–5 most recent runs (any format); collect their reply---ACTIVITY--- / ---FIT-ANALYZER--- blocks)Check for existing plan files under:
<output_dir>/Marathon/ (race_type = marathon)
<output_dir>/Halbmarathon/ (race_type = half-marathon)
If a plan exists: read the plan index file, the current week file, and the 2 prior week files. Collect their raw markdown.
Invoke the marathon-coach agent with the following prompt, substituting all collected data:
You are the marathon-coach agent.
ACTION:
$ARGUMENTSCONFIG:
<full contents of ~/.marathon-coach/config.yaml>RUN HISTORY (
<source: lauftagebuch | fit-analyzer | manual>): <raw markdown of the 5 most recent Lauftagebuch entries, OR the full fetch-recent-runs.sh output, OR the manually pasted run summary>PLAN CONTEXT (
<found | none>): <raw markdown of the plan index + current week + 2 prior week files, OR "none" if no plan exists>Proceed according to your instructions. Report back when done.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub k15r/k15rhub --plugin running