From aicoach-framework
Mirrors intervals.icu workout titles to Strava and writes a follower-friendly 3–5 line insights block with a random-gerund footer for endurance activities. Idempotent — skips description updates if the footer suffix is already present.
How this command is triggered — by the user, by Claude, or both
Slash command
/aicoach-framework:stravaThe summary Claude sees in its command listing — used to decide when to auto-load this command
# /strava — Sync titles + insights to Strava Mirrors the intervals.icu workout name to Strava (all activity types) and writes a follower-friendly 3–5 line insights block plus a random-gerund footer for endurance activities (`Run`, `VirtualRun`, `Ride`, `VirtualRide`). Idempotent: re-running on an activity whose description already carries the configured footer suffix (`INSIGHTS_ANCHOR`, set via `STRAVA_PUBLISHER_FOOTER_SUFFIX` — see `app/config.py`) skips the description, the title update stays available. ## Arguments $ARGUMENTS Optional. Accepted forms: - (empty) — last 2 da...
Mirrors the intervals.icu workout name to Strava (all activity types) and
writes a follower-friendly 3–5 line insights block plus a random-gerund
footer for endurance activities (Run, VirtualRun, Ride,
VirtualRide). Idempotent: re-running on an activity whose description
already carries the configured footer suffix (INSIGHTS_ANCHOR, set
via STRAVA_PUBLISHER_FOOTER_SUFFIX — see app/config.py) skips the
description, the title update stays available.
$ARGUMENTS Optional. Accepted forms:
--days N — last N days--activity-id i... — a specific intervals.icu activity ID--dry-run — preview, no pushLaunch the aicoach-framework:strava-publisher agent in a pane. Pass
the argument string verbatim plus a reminder of what the agent has to
do — the agent loads its own playbook from agents/strava-publisher.md
and reads the necessary configs itself.
The pane start prompt should carry:
Arguments: {ARGS or "(default: --days 2)"}
Task:
1. Call strava_pending.py with the arguments.
2. For each entry, decide: title and/or insights block.
3. fetch_activity.py + strava_coupling.py in parallel (endurance only).
4. Compose the insights block (language per
config/athlete_preferences.md → Coach response language; default
English; follower-friendly, max 3–5 lines + random-gerund footer).
5. Push via strava_apply.py (or --dry-run if the athlete set it).
6. Return a compact summary to chat.
Source files you see in the agent body:
- config/athlete_preferences.md (language)
- config/exercise_log.md (video-verdict snippets, optional)
- app/data/gerunds.json (footer wordlist)
The head coach invokes this command right after the coach-analyst
pane in the /analyse flow (step 6.6). At that moment the freshly
analysed activity is the natural candidate. Manual invocation stays
available at any time:
/strava # last 2 days
/strava --days 7 # larger range, e.g. after a trip
/strava --activity-id i12... # retroactively for a specific session
/strava --dry-run # don't push, just see what would happen
The legacy scripts/sync_strava_titles.py has been retired — its
title-sync and surface-mismatch logic now live in
app/utils/strava_titles.py and are reused by strava_pending.py.
npx claudepluginhub airbone42/360-data-athlete --plugin aicoach-framework/progress-reportGenerates structured progress reports for personal trainers, summarizing body composition changes, strength metrics, adherence analysis, and recommending program adjustments.
/insightsGenerates weekly or monthly insights from journal entries using pattern recognition and panel feedback.
/cyberfit-logLogs completed training by exercise ID or name via Python CLI, displays XP gains, level ups, and achievement unlocks.
/standupGenerates a standup update from your recent Slack messages, categorizing into Done, Doing, and Blockers sections for review and editing.
/weekly-briefGenerates a weekly briefing summarizing key trends, wins, risks, and week-over-week changes from your Amplitude instance for team sharing.
/reportGenerates an end-of-day or weekly activity summary from the local activity log, grouping features, bugs, tests, decisions, and token usage into a structured report.