felixrieseberg / felixrieseberg/claude-coach
Strava Auto-Titles: kontextreiche Aktivitaets-Titel nach Sync
- 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.