458 lines
16 KiB
Markdown
458 lines
16 KiB
Markdown
|
|
# Fachliche Anforderungen: KI-Prompt Flexibilisierung
|
|||
|
|
**Modul:** v9f
|
|||
|
|
**Status:** Fachlich freigegeben, technische Implementierung ausstehend
|
|||
|
|
**Letzte Aktualisierung:** März 2026
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. Überblick
|
|||
|
|
|
|||
|
|
Das bestehende KI-Prompt-System wird von einer fixen Sammlung vordefinierter
|
|||
|
|
Prompts zu einer vollständig konfigurierbaren Prompt-Bibliothek erweitert.
|
|||
|
|
Admins können Prompts kategorisieren, duplizieren, bearbeiten und mit einem
|
|||
|
|
visuellen Platzhalter-Browser ausstatten. Die Pipeline wird konfigurierbar –
|
|||
|
|
mehrere Konfigurationen für unterschiedliche Analysezwecke sind möglich.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Prompt-Bibliothek
|
|||
|
|
|
|||
|
|
### 2.1 Kategorien
|
|||
|
|
|
|||
|
|
Alle Prompts werden einer Kategorie zugeordnet:
|
|||
|
|
|
|||
|
|
| Kategorie | Beschreibung | Beispiel-Prompts |
|
|||
|
|
|-----------|-------------|-----------------|
|
|||
|
|
| Körper | Gewicht, KF, Umfänge, Caliper | Körperkomposition, Gewichtstrend |
|
|||
|
|
| Ernährung | Kalorien, Makros, Timing | Kalorienbilanz, Proteinversorgung |
|
|||
|
|
| Training | Volumen, Typen, HF | Trainingsanalyse, Erholungsstatus |
|
|||
|
|
| Schlaf | Qualität, Dauer, Muster | Schlafauswertung, Schlaftrend |
|
|||
|
|
| Vitalwerte | Ruhepuls, HRV, VO2Max | Leistungsfähigkeit, Erholung |
|
|||
|
|
| Mentales | Stress, Stimmung, Energie | Wohlbefinden, Stressanalyse |
|
|||
|
|
| Ziele | Fortschritt, Prognose, Zeitplan | Zielerreichung, Zeitplanung |
|
|||
|
|
| Ganzheitlich | Korrelationen, Übersicht | Gesamtanalyse, Pipeline-Synthese |
|
|||
|
|
|
|||
|
|
### 2.2 Prompt-Verwaltung (Admin)
|
|||
|
|
|
|||
|
|
Ein Admin kann mit jedem Prompt folgendes tun:
|
|||
|
|
|
|||
|
|
**Aktivieren / Deaktivieren**
|
|||
|
|
- Inaktive Prompts sind für Nutzer nicht sichtbar und nicht ausführbar
|
|||
|
|
- Pipeline-Prompts können separat aktiviert/deaktiviert werden
|
|||
|
|
|
|||
|
|
**Duplizieren und anpassen**
|
|||
|
|
- Bestehenden Prompt als Vorlage kopieren
|
|||
|
|
- Kopie erhält Suffix " (Kopie)" und kann unabhängig bearbeitet werden
|
|||
|
|
|
|||
|
|
**Neu erstellen**
|
|||
|
|
- Titel, Beschreibung, Kategorie, Template
|
|||
|
|
- Platzhalter über den Platzhalter-Browser einfügen (siehe Abschnitt 3)
|
|||
|
|
|
|||
|
|
**Kategorie zuordnen**
|
|||
|
|
- Beim Erstellen und Bearbeiten wählbar
|
|||
|
|
- Nachträgliche Änderung möglich
|
|||
|
|
|
|||
|
|
**Reihenfolge festlegen**
|
|||
|
|
- Drag & Drop oder Zahleneingabe (sort_order)
|
|||
|
|
- Reihenfolge bestimmt Anzeige in der Nutzer-Ansicht
|
|||
|
|
|
|||
|
|
**Auf Standard zurücksetzen**
|
|||
|
|
- Systemseitig definierte Prompts haben einen "Standard"-Zustand
|
|||
|
|
- Reset stellt Original-Template wieder her
|
|||
|
|
- Eigens erstellte Prompts haben keinen Standard-Reset
|
|||
|
|
|
|||
|
|
### 2.3 Prompt-Felder
|
|||
|
|
|
|||
|
|
Jeder Prompt hat:
|
|||
|
|
- **Titel** – kurzer Name (z.B. "Körperkomposition")
|
|||
|
|
- **Beschreibung** – wofür ist dieser Prompt? (für Admin sichtbar)
|
|||
|
|
- **Kategorie** – aus der Kategorienliste
|
|||
|
|
- **Template** – der eigentliche Prompt-Text mit Platzhaltern
|
|||
|
|
- **Aktiv** – true/false
|
|||
|
|
- **Reihenfolge** – Zahl für Sortierung
|
|||
|
|
- **Typ** – `single` (Einzelanalyse) oder `pipeline` (Pipeline-Stufe)
|
|||
|
|
- **Pipeline-Stufe** – nur bei Typ `pipeline`: Stufen-Nummer (1, 2, 3...)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Platzhalter-System
|
|||
|
|
|
|||
|
|
### 3.1 Platzhalter-Browser
|
|||
|
|
|
|||
|
|
Beim Bearbeiten eines Prompts steht ein visueller Platzhalter-Browser zur
|
|||
|
|
Verfügung – Admin tippt Platzhalter nicht mehr manuell, sondern wählt sie aus.
|
|||
|
|
|
|||
|
|
**Funktionen:**
|
|||
|
|
- **Filterung nach Kategorie** – zeigt nur Platzhalter der gewählten Kategorie
|
|||
|
|
- **Beispielwert** – zeigt was der Platzhalter aktuell mit echten Daten ausgeben würde
|
|||
|
|
- **Klick zum Einfügen** – Platzhalter wird an Cursor-Position ins Template eingefügt
|
|||
|
|
- **Warnung bei fehlendem Platzhalter** – wenn ein eingetippter Platzhalter nicht existiert
|
|||
|
|
- **Warnung bei fehlenden Daten** – wenn Daten für diesen Platzhalter nicht vorhanden sind (z.B. noch kein Schlaf-Tracking)
|
|||
|
|
|
|||
|
|
### 3.2 Prompt-Vorschau
|
|||
|
|
|
|||
|
|
Vor dem Speichern kann der Admin eine Vorschau anfordern:
|
|||
|
|
- System befüllt alle Platzhalter mit echten aktuellen Daten
|
|||
|
|
- Zeigt den fertigen Prompt-Text wie er an die KI gesendet würde
|
|||
|
|
- KI wird dabei **nicht** aufgerufen – nur der Prompt-Text wird angezeigt
|
|||
|
|
|
|||
|
|
### 3.3 Platzhalter-Kategorien und Übersicht
|
|||
|
|
|
|||
|
|
**Körper:**
|
|||
|
|
```
|
|||
|
|
{{weight_aktuell}} → "86,1 kg"
|
|||
|
|
{{weight_trend}} → "sinkend (-0,8 kg letzte 4 Wochen)"
|
|||
|
|
{{kf_aktuell}} → "19,9%"
|
|||
|
|
{{kf_trend}} → "stabil"
|
|||
|
|
{{magermasse}} → "69,4 kg"
|
|||
|
|
{{whr}} → "0,90"
|
|||
|
|
{{whtr}} → "0,51"
|
|||
|
|
{{bmi}} → "27,2"
|
|||
|
|
{{circ_summary}} → "Taille: 88cm, Hüfte: 98cm, ..."
|
|||
|
|
{{caliper_summary}} → "KF nach Jackson/Pollock: 19,9%"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Ernährung:**
|
|||
|
|
```
|
|||
|
|
{{kcal_avg}} → "1.847 kcal/Tag (Ø 30 Tage)"
|
|||
|
|
{{protein_avg}} → "138g/Tag"
|
|||
|
|
{{protein_ziel_low}} → "138"
|
|||
|
|
{{protein_ziel_high}} → "172"
|
|||
|
|
{{fat_avg}} → "72g/Tag"
|
|||
|
|
{{carb_avg}} → "195g/Tag"
|
|||
|
|
{{nutrition_summary}} → kompakte Zusammenfassung
|
|||
|
|
{{nutrition_detail}} → ausführliche Tabelle
|
|||
|
|
{{nutrition_days}} → "28 Tage mit Daten"
|
|||
|
|
{{activity_kcal_summary}} → "Ø 320 kcal aktiver Verbrauch/Tag"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Training:**
|
|||
|
|
```
|
|||
|
|
{{activity_summary}} → kompakte Zusammenfassung
|
|||
|
|
{{activity_detail}} → ausführliche Liste
|
|||
|
|
{{trainingstyp_verteilung}} → "60% Kraft, 30% Cardio, 10% Mobility"
|
|||
|
|
{{trainingstyp_haupttyp}} → "Kraft" (häufigster Typ)
|
|||
|
|
{{ruhetage_letzte_woche}} → "2"
|
|||
|
|
{{trainingsphase}} → "Aufbau / Erholung / Plateau"
|
|||
|
|
{{hf_zonen_verteilung}} → "Zone 2: 45%, Zone 3: 35%, Zone 4: 20%"
|
|||
|
|
|
|||
|
|
{{faehigkeiten_analyse}} → Detaillierte Analyse der trainierten Fähigkeiten
|
|||
|
|
{{faehigkeiten_koordinativ}} → "Orientierung: 3/14 Einheiten, Gleichgewicht: 5/14, ..."
|
|||
|
|
{{faehigkeiten_konditionell}} → "Kraft: 8/14, Ausdauer: 4/14, Schnelligkeit: 2/14, Flexibilität: 3/14"
|
|||
|
|
{{faehigkeiten_kognitiv}} → "Konzentration: 2/14, Entscheidung: 1/14, ..."
|
|||
|
|
{{faehigkeiten_psychisch}} → "Willenskraft: 5/14, Stressresistenz: 2/14, ..."
|
|||
|
|
{{faehigkeiten_taktisch}} → "Timing: 1/14, Antizipation: 2/14, ..."
|
|||
|
|
{{faehigkeiten_balance}} → "Ausgewogen / Einseitig + Empfehlung"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Fähigkeiten-System (v9d Integration):**
|
|||
|
|
- Jeder Trainingstyp ist mit 1-N Fähigkeiten aus 5 Dimensionen verknüpft
|
|||
|
|
- KI erhält aggregierte Statistik: wie oft wurden welche Fähigkeiten trainiert
|
|||
|
|
- Ermöglicht Aussagen wie: "Dein Training fokussiert stark auf Kraft (8 von 14 Einheiten), aber koordinative Fähigkeiten kommen zu kurz."
|
|||
|
|
- Basis für gezielte Trainingsempfehlungen
|
|||
|
|
|
|||
|
|
**Herzfrequenz & Vitalwerte:**
|
|||
|
|
```
|
|||
|
|
{{ruhepuls_aktuell}} → "52 bpm"
|
|||
|
|
{{ruhepuls_trend}} → "sinkend (-3 bpm letzte 4 Wochen)"
|
|||
|
|
{{hrv_aktuell}} → "58 ms"
|
|||
|
|
{{hrv_baseline}} → "62 ms (30-Tage-Durchschnitt)"
|
|||
|
|
{{erholungsstatus}} → "gut / teilweise / schlecht"
|
|||
|
|
{{vo2max}} → "48,2 ml/kg/min"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Schlaf:**
|
|||
|
|
```
|
|||
|
|
{{schlaf_avg_dauer}} → "7,2h/Nacht (Ø 7 Tage)"
|
|||
|
|
{{schlaf_qualitaet}} → "3,8/5 (Ø 7 Tage)"
|
|||
|
|
{{schlaf_trend}} → "stabil"
|
|||
|
|
{{schlaf_detail}} → ausführliche Tabelle
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Mentales:**
|
|||
|
|
```
|
|||
|
|
{{energie_niveau}} → "3,2/5 (Ø 7 Tage)"
|
|||
|
|
{{stress_niveau}} → "2,8/5 (Ø 7 Tage)"
|
|||
|
|
{{stimmung}} → "3,9/5 (Ø 7 Tage)"
|
|||
|
|
{{meditation_streak}} → "5 Tage in Folge"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Ziele:**
|
|||
|
|
```
|
|||
|
|
{{goal_weight}} → "82 kg"
|
|||
|
|
{{goal_bf_pct}} → "14%"
|
|||
|
|
{{goal_name}} → "Muskelaufbau"
|
|||
|
|
{{ziel_fortschritt}} → "Gewicht: 72% erreicht, KF: 45% erreicht"
|
|||
|
|
{{ziel_prognose}} → "Ziel voraussichtlich in 8 Wochen erreicht"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Profil:**
|
|||
|
|
```
|
|||
|
|
{{name}} → "Lars"
|
|||
|
|
{{geschlecht}} → "männlich"
|
|||
|
|
{{height}} → "178"
|
|||
|
|
{{age}} → "45"
|
|||
|
|
{{sprache}} → "Deutsch" (konfigurierbar per Prompt)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Zeitraum:**
|
|||
|
|
```
|
|||
|
|
{{zeitraum_7d}} → "letzte 7 Tage"
|
|||
|
|
{{zeitraum_30d}} → "letzte 30 Tage"
|
|||
|
|
{{zeitraum_90d}} → "letzte 90 Tage"
|
|||
|
|
{{datum_heute}} → "20. März 2026"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Pipeline (intern):**
|
|||
|
|
```
|
|||
|
|
{{stage1_body}} → JSON-Summary Körper (Pipeline-Stufe 1)
|
|||
|
|
{{stage1_nutrition}} → JSON-Summary Ernährung
|
|||
|
|
{{stage1_activity}} → JSON-Summary Training
|
|||
|
|
{{stage1_sleep}} → JSON-Summary Schlaf (neu)
|
|||
|
|
{{stage1_vitals}} → JSON-Summary Vitalwerte (neu)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. Pipeline-Konfiguration
|
|||
|
|
|
|||
|
|
### 4.1 Was ist eine Pipeline-Konfiguration?
|
|||
|
|
|
|||
|
|
Eine Pipeline-Konfiguration definiert:
|
|||
|
|
- **Name** – z.B. "Alltags-Check", "Wettkampf-Analyse", "Schlaf-Fokus"
|
|||
|
|
- **Aktive Module** – welche Datenquellen fließen ein (Körper, Ernährung, Training, Schlaf, Vitalwerte, Mentales)
|
|||
|
|
- **Zeitraum je Modul** – z.B. Körper 30 Tage, Schlaf 7 Tage, Training 14 Tage
|
|||
|
|
- **Stufen** – welcher Prompt wird in welcher Stufe verwendet
|
|||
|
|
- **Standard** – eine Konfiguration kann als Standard markiert werden
|
|||
|
|
|
|||
|
|
### 4.2 Pipeline-Stufen
|
|||
|
|
|
|||
|
|
**Stufe 1 (parallel):** Mehrere Module-Prompts laufen gleichzeitig, jeder gibt ein JSON-Summary zurück
|
|||
|
|
|
|||
|
|
**Stufe 2:** Synthese-Prompt kombiniert alle Stage-1-Summaries zu einer narrativen Analyse
|
|||
|
|
|
|||
|
|
**Stufe 3 (optional):** Ziel-Abgleich oder spezifische Zusatzanalyse
|
|||
|
|
|
|||
|
|
Admin kann:
|
|||
|
|
- Anzahl der Stufen festlegen (min. 2, max. 4)
|
|||
|
|
- Jeden Stufen-Prompt zuweisen
|
|||
|
|
- Module für Stufe 1 aktivieren/deaktivieren
|
|||
|
|
|
|||
|
|
### 4.3 Vordefinierte Konfigurationen (Beispiele)
|
|||
|
|
|
|||
|
|
**Alltags-Check (Standard):**
|
|||
|
|
- Module: Körper (30T), Ernährung (30T), Training (14T)
|
|||
|
|
- Stufe 1: pipeline_body + pipeline_nutrition + pipeline_activity
|
|||
|
|
- Stufe 2: pipeline_synthesis
|
|||
|
|
- Stufe 3: pipeline_goals
|
|||
|
|
|
|||
|
|
**Schlaf-Fokus:**
|
|||
|
|
- Module: Schlaf (14T), Vitalwerte (7T), Training (14T)
|
|||
|
|
- Stufe 1: pipeline_sleep + pipeline_vitals + pipeline_activity
|
|||
|
|
- Stufe 2: pipeline_synthesis_sleep
|
|||
|
|
|
|||
|
|
**Wettkampf-Analyse:**
|
|||
|
|
- Module: Körper (90T), Training (90T), Vitalwerte (30T), Ziele
|
|||
|
|
- Stufe 1: alle Körper/Training/Vital-Module
|
|||
|
|
- Stufe 2: pipeline_synthesis_performance
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. Nutzer-Ansicht: KI-Analyse starten
|
|||
|
|
|
|||
|
|
### 5.1 Einzelanalyse
|
|||
|
|
|
|||
|
|
1. Nutzer wählt Prompt aus der Bibliothek (nach Kategorie gefiltert)
|
|||
|
|
2. KI-Analyse startet sofort
|
|||
|
|
3. Ergebnis wird angezeigt und gespeichert
|
|||
|
|
|
|||
|
|
### 5.2 Pipeline
|
|||
|
|
|
|||
|
|
1. Nutzer wählt Pipeline-Konfiguration
|
|||
|
|
2. Pipeline startet sofort (alle Stufen laufen automatisch)
|
|||
|
|
3. Ergebnis wird angezeigt und gespeichert
|
|||
|
|
|
|||
|
|
### 5.3 Kein Konfigurationsschritt für Nutzer
|
|||
|
|
|
|||
|
|
Der Nutzer wählt nur Prompt oder Pipeline – kein weiterer Konfigurationsschritt.
|
|||
|
|
Zeitraum und Module sind durch Admin in der Pipeline-Konfiguration festgelegt.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Analyse-Ergebnisse verwalten
|
|||
|
|
|
|||
|
|
### 6.1 Kategorie-Zuordnung
|
|||
|
|
|
|||
|
|
Jedes gespeicherte Analyse-Ergebnis erbt die Kategorie des ausgeführten Prompts.
|
|||
|
|
Ermöglicht spätere Filterung nach Kategorie.
|
|||
|
|
|
|||
|
|
### 6.2 Filtern nach Kategorie
|
|||
|
|
|
|||
|
|
Im Analyse-Verlauf kann nach Kategorie gefiltert werden:
|
|||
|
|
- "Alle" / "Körper" / "Ernährung" / "Training" / etc.
|
|||
|
|
|
|||
|
|
### 6.3 Analyse-Verlauf pro Prompt
|
|||
|
|
|
|||
|
|
Für jeden Prompt ist ein Verlauf einsehbar:
|
|||
|
|
- Liste aller bisherigen Analysen mit diesem Prompt (Datum + Kurzauszug)
|
|||
|
|
- Zeigt wie sich die KI-Aussage über Zeit verändert hat
|
|||
|
|
|
|||
|
|
### 6.4 Favoriten
|
|||
|
|
|
|||
|
|
Nutzer kann Analysen als Favorit markieren (Stern-Symbol).
|
|||
|
|
Favoriten sind in der Verlaufs-Ansicht filterbar.
|
|||
|
|
|
|||
|
|
### 6.5 Löschen
|
|||
|
|
|
|||
|
|
Nutzer kann einzelne Analyse-Ergebnisse manuell löschen.
|
|||
|
|
Keine Massen-Löschung (außer Admin).
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. Sprache
|
|||
|
|
|
|||
|
|
Die Ausgabesprache wird im Prompt-Template selbst gesteuert über den
|
|||
|
|
Platzhalter `{{sprache}}`. Der Wert wird aus den Profil-Einstellungen gezogen.
|
|||
|
|
|
|||
|
|
**Mögliche Werte:** "Deutsch", "Englisch", "Französisch" (erweiterbar)
|
|||
|
|
|
|||
|
|
**Standard:** "Deutsch"
|
|||
|
|
|
|||
|
|
Kein separater Sprach-Schalter auf der Analyse-Seite – Sprache wird einmalig
|
|||
|
|
im Profil konfiguriert.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. Abgrenzung & offene Fragen
|
|||
|
|
|
|||
|
|
### In diesem Modul enthalten:
|
|||
|
|
- Prompt-Bibliothek mit 8 Kategorien
|
|||
|
|
- Vollständige Admin-Verwaltung (CRUD, Reihenfolge, Reset)
|
|||
|
|
- Platzhalter-Browser mit Beispielwerten und Vorschau
|
|||
|
|
- Pipeline-Konfigurationen (mehrere, speicherbar)
|
|||
|
|
- Analyse-Ergebnisse: Kategorie, Filter, Verlauf, Favoriten, Löschen
|
|||
|
|
- Sprach-Platzhalter
|
|||
|
|
|
|||
|
|
### Nicht in diesem Modul:
|
|||
|
|
- Community-Prompts / Prompt-Import von extern → später
|
|||
|
|
- KI-gestützte Prompt-Optimierung → später
|
|||
|
|
- Automatisch geplante Analysen (z.B. wöchentlich) → später
|
|||
|
|
- Prompts für noch nicht implementierte Module (Schlaf, Mentales) werden
|
|||
|
|
vorbereitet aber haben keine echten Daten bis die Module existieren
|
|||
|
|
|
|||
|
|
### Offene Fragen für technische Planung:
|
|||
|
|
1. Wie werden Pipeline-Konfigurationen gespeichert? (neue DB-Tabelle oder JSON in ai_prompts?)
|
|||
|
|
2. Platzhalter-Definitionen: statisch im Code oder dynamisch in DB (für zukünftige Erweiterung)?
|
|||
|
|
3. Wie wird der Beispielwert für den Platzhalter-Browser berechnet – gleicher Endpunkt wie die echte Analyse?
|
|||
|
|
4. Reihenfolge der Prompts: getrennte sort_order pro Kategorie oder global?
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 9. Trainingstypen & Fähigkeiten-Mapping (v9d → v9f Integration)
|
|||
|
|
|
|||
|
|
### 9.1 Hintergrund
|
|||
|
|
|
|||
|
|
In v9d wurde die Basis geschaffen:
|
|||
|
|
- `training_types` Tabelle mit `abilities` JSONB-Spalte
|
|||
|
|
- Admin-CRUD für Trainingstypen (ohne Abilities-UI)
|
|||
|
|
- Taxonomie-Endpoint: `/api/admin/training-types/taxonomy/abilities`
|
|||
|
|
- 5 Fähigkeiten-Dimensionen definiert:
|
|||
|
|
- 🎯 **Koordinativ:** Orientierung, Differenzierung, Kopplung, Gleichgewicht, Rhythmus, Reaktion, Umstellung
|
|||
|
|
- 💪 **Konditionell:** Kraft, Ausdauer, Schnelligkeit, Flexibilität
|
|||
|
|
- 🧠 **Kognitiv:** Konzentration, Aufmerksamkeit, Wahrnehmung, Entscheidungsfindung
|
|||
|
|
- 🎭 **Psychisch:** Motivation, Willenskraft, Stressresistenz, Selbstvertrauen
|
|||
|
|
- ♟️ **Taktisch:** Timing, Strategie, Antizipation, Situationsanalyse
|
|||
|
|
|
|||
|
|
### 9.2 Was wird in v9f ergänzt?
|
|||
|
|
|
|||
|
|
**Admin-UI: Fähigkeiten-Matrix**
|
|||
|
|
|
|||
|
|
Im AdminTrainingTypesPage Formular wird eine Fähigkeiten-Matrix hinzugefügt:
|
|||
|
|
- 5 Sections (eine pro Dimension)
|
|||
|
|
- Pro Dimension: Checkboxes für alle Fähigkeiten
|
|||
|
|
- Multi-Select: Ein Trainingstyp kann mehrere Fähigkeiten pro Dimension trainieren
|
|||
|
|
- Beispiel: "Kampfsport-Sparring" trainiert:
|
|||
|
|
- Koordinativ: Orientierung, Reaktion, Umstellung
|
|||
|
|
- Konditionell: Schnelligkeit, Ausdauer
|
|||
|
|
- Kognitiv: Entscheidung, Wahrnehmung
|
|||
|
|
- Psychisch: Stressresistenz, Selbstvertrauen
|
|||
|
|
- Taktisch: Timing, Antizipation
|
|||
|
|
|
|||
|
|
**Gespeichert als JSONB:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"koordinativ": ["orientierung", "reaktion", "umstellung"],
|
|||
|
|
"konditionell": ["schnelligkeit", "ausdauer"],
|
|||
|
|
"kognitiv": ["entscheidung", "wahrnehmung"],
|
|||
|
|
"psychisch": ["stressresistenz", "selbstvertrauen"],
|
|||
|
|
"taktisch": ["timing", "antizipation"]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Backend: Fähigkeiten-Aggregation**
|
|||
|
|
|
|||
|
|
Neue Endpoint-Funktion (oder Platzhalter-Funktion):
|
|||
|
|
```python
|
|||
|
|
def calculate_abilities_summary(profile_id, days=14):
|
|||
|
|
"""
|
|||
|
|
Aggregiert trainierte Fähigkeiten über Zeitraum.
|
|||
|
|
|
|||
|
|
Returns:
|
|||
|
|
{
|
|||
|
|
"total_activities": 14,
|
|||
|
|
"koordinativ": {
|
|||
|
|
"orientierung": 3, # 3 von 14 Trainings
|
|||
|
|
"gleichgewicht": 5,
|
|||
|
|
...
|
|||
|
|
},
|
|||
|
|
"konditionell": {
|
|||
|
|
"kraft": 8,
|
|||
|
|
"ausdauer": 4,
|
|||
|
|
...
|
|||
|
|
},
|
|||
|
|
...
|
|||
|
|
"balance_score": 0.67, # 0-1, wie ausgewogen
|
|||
|
|
"top_dimension": "konditionell",
|
|||
|
|
"weak_dimension": "kognitiv"
|
|||
|
|
}
|
|||
|
|
"""
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**KI-Prompt Integration:**
|
|||
|
|
|
|||
|
|
Die Fähigkeiten-Platzhalter werden befüllt mit aggregierten Daten:
|
|||
|
|
- `{{faehigkeiten_analyse}}` → vollständige Aufschlüsselung
|
|||
|
|
- `{{faehigkeiten_koordinativ}}` → nur koordinative Dimension
|
|||
|
|
- etc.
|
|||
|
|
|
|||
|
|
Pipeline-Prompt "Training" erhält zusätzlichen Context:
|
|||
|
|
```
|
|||
|
|
Analyse die Fähigkeitenverteilung:
|
|||
|
|
{{faehigkeiten_analyse}}
|
|||
|
|
|
|||
|
|
Gib Empfehlungen für untertrainierte Bereiche.
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 9.3 Nutzen für KI-Analyse
|
|||
|
|
|
|||
|
|
**Beispiel-Insight:**
|
|||
|
|
> "Deine letzten 14 Trainings fokussieren stark auf **konditionelle Fähigkeiten** (Kraft: 8×, Ausdauer: 4×). Koordinative Fähigkeiten kommen zu kurz (nur 3× Gleichgewicht, 2× Reaktion). Für einen ausgewogenen Trainingsplan empfehle ich 2-3 koordinationslastige Einheiten pro Woche – z.B. Kampfsport-Techniktraining, Balance-Übungen oder Mobility-Routinen mit Fokus auf Bewegungskontrolle."
|
|||
|
|
|
|||
|
|
**Korrelationen:**
|
|||
|
|
- Verletzungen / Überlastung ↔ Koordinations-Defizit
|
|||
|
|
- Plateaus im Krafttraining ↔ fehlende kognitive/taktische Komponente
|
|||
|
|
- Erholungsprobleme ↔ psychische Fähigkeiten untertrainiert
|
|||
|
|
|
|||
|
|
### 9.4 Implementierungs-Reihenfolge
|
|||
|
|
|
|||
|
|
1. ✅ v9d Phase 1b: DB-Schema + Admin-CRUD (ohne Abilities-UI) → **erledigt**
|
|||
|
|
2. 🔲 v9f: Abilities-Matrix UI im Admin-Formular
|
|||
|
|
3. 🔲 v9f: Backend-Funktion `calculate_abilities_summary()`
|
|||
|
|
4. 🔲 v9f: Platzhalter `{{faehigkeiten_*}}` implementieren
|
|||
|
|
5. 🔲 v9f: Standard-Prompts aktualisieren mit Fähigkeiten-Context
|
|||
|
|
6. 🔲 v9f: Admin-Doku: "Best Practices" für Fähigkeiten-Zuordnung
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
EOF
|
|||
|
|
echo "OK"
|