felixrieseberg / felixrieseberg/claude-coach

Strava Auto-Titles: kontextreiche Aktivitaets-Titel nach Sync

Open
#6 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
185
Forks
26
PR merge metrics
No merged PRs in 30d

Description

## Summary

Automatisch generierte, kontextreiche Aktivitaets-Titel fuer Strava. Nach jedem `/data-sync` werden Activities mit generischen Namen ("Morning Run", "HIIT", "Afternoon Run") umbenannt basierend auf Coaching-Kontext (Zonen, HR, Distanz, Plan).

## Beispiele

- `"Morning Run"` -> `"GA1 Run 35min | HR 112 | 5.2km"`
- `"HIIT"` -> `"Hyrox 45min | HR 147 | SS77"`
- `"Weight Training"` -> `"Kraft 55min | HR 98"`

## Implementierung

### 1. `updateActivity()` in `src/strava/api.ts`
Neue API-Funktion fuer PUT `/activities/{id}` mit Fehlerbehandlung fuer fehlenden `activity:write` Scope.

### 2. `scripts/strava-auto-titles.mjs`
Standalone-Script das:
- Alle Activities der letzten N Tage aus der DB laedt
- Generische Namen erkennt (Morning Run, HIIT, Workout, etc.)
- Kontextreiche Titel generiert (Zone + Dauer + Metriken + Plan)
- Via Strava API updatet + lokale DB synchronisiert
- `--dry-run` und `--days=N` unterstuetzt

### 3. CLI Command `strava-rename`
```bash
npx tsx src/cli.ts strava-rename --dry-run # Preview
npx tsx src/cli.ts strava-rename --days=3 # Letzte 3 Tage
```

### 4. MCP Tool `coach_strava_rename`
Registriert in `src/mcp-server/index.mjs` (Tool #22).

### 5. Integration in `/data-sync`
Optional Step 2b nach Strava-Sync in `skill-data-sync/SKILL.md`.

### 6. OAuth Scope Update
Auth-Flow fordert jetzt `activity:read_all,activity:write` an (vorher nur read).

## Generische Namen die umbenannt werden
`Morning Run`, `Afternoon Run`, `Evening Run`, `Lunch Run`, `Night Run`, `HIIT`, `Weight Training`, `Workout`, `Running`, `Walk` (Walks werden uebersprungen), `Yoga`, `Morning/Afternoon/Evening Workout/Ride/Walk`

## Schutzmassnamen
- Nur Activities der letzten 7 Tage (konfigurierbar via `--days`)
- Nur generische Namen ersetzen, nie manuell vergebene
- Rate-Limiting: 200ms Delay zwischen API-Calls
- Scope-Check: klare Fehlermeldung wenn `activity:write` fehlt
- Dry-Run Modus fuer Preview

## Betroffene Dateien
- `src/strava/api.ts` — neue `updateActivity()` Funktion
- `src/strava/oauth.ts` — Scope erweitert um `activity:write`
- `src/cli.ts` — neuer `strava-rename` Command
- `src/mcp-server/index.mjs` — neues Tool #22 `coach_strava_rename`
- `scripts/strava-auto-titles.mjs` — Hauptlogik (neu)
- `skill-data-sync/SKILL.md` — Step 2b dokumentiert

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.