- .gitignore: .claude/docs, rules, commands tracken; settings.local weiter ignorieren - DOCUMENTATION.md: verbindliche Ablage functional/technical/working/issues - .claude/README.md: Agent-Einstieg; GITEA_ISSUES_INDEX aus MCP (Stand 2026-04-08) - Arbeitspapiere von docs/ nach .claude/docs/working/ verschoben - docs/MEMBERSHIP_SYSTEM.md als Stub; kanonisch technical/MEMBERSHIP_SYSTEM.md - CLAUDE.md Pflichtlektüre und Links angepasst; docs/README.md vereinfacht Made-with: Cursor
10 KiB
Entwicklungsrouten – Multi-Dimensionales Training & Planung
Version: 1.0 Status: Konzept Ziel-Release: v9e / v9f Basis: Rest Days Multi-Dimensional Architecture (v9d Phase 2a)
Überblick
Entwicklungsrouten sind unabhängige Dimensionen der körperlichen und mentalen Entwicklung, die jeweils eigene:
- Trainingspläne
- Ruhetag-Regeln
- Fortschritts-Tracking
- Ziele
haben.
Kernidee: Ein Tag kann gleichzeitig ein "Kraft-Ruhetag" UND ein "Mental-Aktivtag" sein.
Die 6 Entwicklungsrouten
1. 💪 Kraft (Strength)
Fokus: Muskelaufbau, Maximalkraft, Power
Trainingstypen:
- Strength (Krafttraining allgemein)
- Power (Schnellkraft, Explosivität)
- HIIT (Hochintensiv)
Ruhetag-Regeln:
- Nach schwerer Beineinheit → 48-72h Kraft-Ruhetag
- Andere Routen (Cardio, Mental) bleiben erlaubt
- Intensität: Max 60% bei erlaubten Aktivitäten
Metriken:
- Gewicht, Umfänge, Caliper
- 1RM-Schätzung (optional)
- Muskelregeneration (Ruhepuls + HRV)
2. 🏃 Kondition (Conditioning)
Fokus: Ausdauer, VO2Max, Herz-Kreislauf
Trainingstypen:
- Cardio Low (GA1, Grundlagenausdauer)
- Cardio High (GA2, Tempo-Läufe)
- Endurance (Lange Einheiten)
Ruhetag-Regeln:
- Nach Wettkampf/Tempo-Lauf → 24-48h Cardio-Ruhetag
- Kraft & Mobility erlaubt
- Intensität: Max 70% HFmax
Metriken:
- HF-Zonen-Verteilung
- VO2Max-Schätzung
- Lauf-Pace / Rad-Watt
3. 🧘 Mental (Mental)
Fokus: Stressmanagement, Fokus, Wettkampf-Readiness
Trainingstypen:
- Meditation
- Wettkampf (Competition)
- High-Pressure Training
Ruhetag-Regeln:
- Nach Wettkampf → 1-3 Tage Mental-Ruhetag
- Physisches Training erlaubt (aber kein Wettkampf-Druck)
- Nur entspannende Aktivitäten (Meditation, Spaziergang)
Metriken:
- Stresslevel (1-5 subjektiv)
- Schlafqualität
- HRV (Mental-Recovery-Indikator)
4. 🤸 Koordination (Coordination)
Fokus: Balance, Agilität, Reaktion, propriozeptives Training
Trainingstypen:
- Coordination (Agilität, Balance)
- Sport-spezifische Drills
- Reaktionstraining
Ruhetag-Regeln:
- Nach intensivem Koordinationstraining → 24h Pause
- Andere Routen erlaubt
- Kein koordinativ anspruchsvolles Training bei Müdigkeit
Metriken:
- Subjektive Koordinations-Scores
- Balance-Tests (optional)
5. 🧘♂️ Mobilität (Mobility)
Fokus: Flexibilität, ROM (Range of Motion), Faszien
Trainingstypen:
- Mobility (Stretching, Yoga)
- Faszien-Training
- Passive Dehnung
Ruhetag-Regeln:
- Normalerweise kein Ruhetag nötig
- Bei Überdehnung / Verletzung → Pause für betroffene Bereiche
Metriken:
- ROM-Messungen (optional)
- Subjektive Beweglichkeit (1-5)
6. 🎯 Technik (Technique)
Fokus: Sport-spezifische Skills, Bewegungsqualität
Trainingstypen:
- Technique Drills
- Skill Work
- Video-Analyse
Ruhetag-Regeln:
- Technik-Training bei Müdigkeit kontraproduktiv
- Mental-Ruhetag → auch Technik pausieren
- Physisches Training erlaubt (ohne Technik-Fokus)
Metriken:
- Video-Analyse-Scores (optional)
- Coach-Feedback
Datenmodell
rest_days (Multi-Entry per Date)
Änderung: UNIQUE constraint (profile_id, date) entfernt (Migration 011)
Erlaubt:
-- Gleiches Datum, verschiedene Routen:
INSERT INTO rest_days (profile_id, date, rest_config, note)
VALUES
('user-1', '2026-03-23', '{"focus": "muscle_recovery", ...}', 'Beine heavy'),
('user-1', '2026-03-23', '{"focus": "mental_rest", ...}', 'Wettkampf-Pause');
UI:
23. März 2026
💪 Muskelregeneration | "Beine heavy"
🧘 Mental Rest | "Wettkampf-Pause"
→ Cardio erlaubt, Kraft pausiert, keine Wettkämpfe
Wochenplanung mit Routen
Tabelle: weekly_goals (erweitert)
JSONB Schema:
{
"routes": {
"strength": {
"goal": 3, // 3x Kraft pro Woche
"min_rest_days": 1, // Mind. 1 Kraft-Ruhetag
"intensity_distribution": {
"heavy": 1, // 1x schwer (80-90%)
"medium": 1, // 1x mittel (70-80%)
"light": 1 // 1x leicht (60-70%)
}
},
"conditioning": {
"goal": 2,
"min_rest_days": 0,
"hr_zones": {
"zone_2": 60, // 60% der Zeit in Zone 2
"zone_3": 30, // 30% in Zone 3
"zone_4": 10 // 10% in Zone 4
}
},
"mental": {
"goal": 7, // Täglich Meditation
"min_duration": 10, // Mind. 10 Min
"rest_after_competition": 2 // 2 Tage Pause nach Wettkampf
}
},
"rules": {
"max_consecutive_strength": 2, // Max 2 Krafteinheiten hintereinander
"require_rest_after": ["competition", "strength_heavy"],
"auto_rest_on_poor_recovery": true // Bei HRV < Baseline → Auto-Ruhetag
}
}
Activity Validation mit Routen
Endpoint: POST /api/rest-days/validate-activity
Request:
{
"date": "2026-03-23",
"activity_type": "strength",
"route": "strength" // Neue Dimension
}
Response:
{
"conflicts": [
{
"route": "strength",
"severity": "warning",
"message": "Kraft-Ruhetag – Muskelregeneration nach Beineinheit. Trotzdem trainieren?"
}
],
"allowed": false
}
Logik:
def validate_activity_multi_route(profile_id, date, activity_type, route=None):
"""
Prüft alle rest_days für das Datum.
- Wenn route angegeben: Nur diese Route prüfen
- Sonst: Alle passenden Routen prüfen
"""
rest_days = get_rest_days(profile_id, date)
conflicts = []
for rest_day in rest_days:
config = rest_day['rest_config']
# Prüfe ob Activity in rest_from
if activity_type in config.get('rest_from', []):
conflicts.append({
'route': config['focus'],
'severity': 'warning',
'message': f"{ROUTE_LABELS[config['focus']]} Ruhetag – {activity_type} sollte pausiert werden."
})
return {
'conflicts': conflicts,
'allowed': len(conflicts) == 0
}
Habits & Streaks pro Route
Tabelle: route_habits (neu in v9f)
CREATE TABLE route_habits (
id SERIAL PRIMARY KEY,
profile_id UUID NOT NULL REFERENCES profiles(id) ON DELETE CASCADE,
route VARCHAR(20) NOT NULL, -- 'strength', 'conditioning', 'mental', etc.
habit_type VARCHAR(50) NOT NULL, -- 'meditation', 'mobility', 'strength_training'
frequency VARCHAR(20) NOT NULL, -- 'daily', 'weekly_3', 'weekly_5'
streak_current INTEGER DEFAULT 0,
streak_longest INTEGER DEFAULT 0,
last_completed DATE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Beispiele:
- Mental-Route: "Tägliche Meditation" (7x/Woche)
- Mobility-Route: "Stretching" (3x/Woche)
- Strength-Route: "Krafttraining" (3x/Woche)
UI:
🧘 Mental-Route
Meditation 🔥 12 Tage Streak
Stress-Check 🔥 5 Tage Streak
💪 Kraft-Route
Krafttraining 🔥 2 Wochen Streak
Protein > 150g 🔥 10 Tage Streak
Dashboard Integration
Route-Übersicht Widget
Entwicklungsrouten (diese Woche)
─────────────────────────────────────
💪 Kraft 2/3 [██░] 1 Ruhetag
🏃 Kondition 1/2 [█░░] 0 Ruhetage
🧘 Mental 7/7 [███] ✓ Täglich
🤸 Koordination 0/1 [░░░] Geplant: Do
🧘♂️ Mobilität 3/3 [███] ✓ Ziel erreicht
Empfehlung: Kraft-Training heute, Cardio morgen
KI-Integration
Neue Platzhalter (v9f)
{{route_balance}} # "Kraft überlastet, Cardio unterfordert"
{{route_progress_strength}} # "3/3 Einheiten, +2kg seit letztem Monat"
{{route_recovery_strength}} # "Gut erholt, schweres Training möglich"
{{route_next_recommended}} # "Kraft-Oberkörper empfohlen (Push-Fokus)"
{{route_conflict_today}} # "Kraft-Ruhetag, Cardio/Mental erlaubt"
KI-Analyse-Funktion
def analyze_route_balance(profile_id, weeks=4):
"""
Analysiert Balance über alle Routen.
Warnt bei:
- Übertraining in einer Route
- Vernachlässigung einer Route
- Fehlende Ruhetage in Route
"""
routes = ['strength', 'conditioning', 'mental', 'coordination', 'mobility']
analysis = {}
for route in routes:
activities = get_activities_by_route(profile_id, route, weeks)
rest_days = get_rest_days_by_route(profile_id, route, weeks)
analysis[route] = {
'activity_count': len(activities),
'rest_days_count': len(rest_days),
'intensity_avg': calculate_intensity_avg(activities),
'status': calculate_route_status(activities, rest_days) # 'balanced', 'overload', 'neglected'
}
return analysis
Implementierungs-Phasen
Phase 1: Foundation (v9d Phase 2a) ✅
- ✅ Migration 011: UNIQUE constraint entfernen
- ✅ Multiple rest_days per date erlauben
- ✅ UI: Mehrere Kacheln pro Tag anzeigen
Phase 2: Route-Konzept (v9e)
- 🔲 Routen-Taxonomie festlegen (6 Routen)
- 🔲 Activity-Types den Routen zuordnen
- 🔲
training_typesTabelle umrouteSpalte erweitern - 🔲 Validation: Multi-Route-Konflikt-Check
Phase 3: Wochenplanung (v9f)
- 🔲
weekly_goalsmit Routen-JSONB erweitern - 🔲 Planungs-UI: Routen-basierte Wochenansicht
- 🔲 Regeln-Engine: Auto-Ruhetag bei Poor Recovery
- 🔲 Empfehlungs-System: "Heute: Kraft-Oberkörper empfohlen"
Phase 4: Habits & Streaks (v9g)
- 🔲
route_habitsTabelle - 🔲 Streak-Tracking pro Route
- 🔲 Dashboard-Integration
- 🔲 Push-Notifications bei Streak-Gefahr
Phase 5: KI-Integration (v9f/g)
- 🔲 Route-Balance-Analyse
- 🔲 Übertraining-Warnung pro Route
- 🔲 Neue KI-Platzhalter
- 🔲 Route-spezifische Empfehlungen
Offene Fragen
- Route-Hierarchie: Gibt es Abhängigkeiten? (z.B. Mental-Rest → auch Technik-Rest?)
- Auto-Zuordnung: Sollen Activities automatisch Routen zugeordnet werden? (Strength → Kraft-Route)
- Konflikt-Priorität: Was passiert bei widersprüchlichen Ruhetagen? (Kraft erlaubt, Mental verbietet → ?)
- Routen-Gewichtung: Sind manche Routen wichtiger als andere? (User-konfigurierbar?)
Referenzen
- Migration:
backend/migrations/011_allow_multiple_rest_days_per_date.sql - Technical Spec:
.claude/docs/technical/V9D_PHASE2_VITALS_SLEEP.md(zu aktualisieren) - Routen-Mapping:
.claude/docs/functional/TRAINING_TYPES.md(zu erweitern)
Dokumentiert: 2026-03-22 Autor: User Konzept + Claude Implementation Status: Living Document (wird mit v9e/f erweitert)