704 lines
16 KiB
Markdown
704 lines
16 KiB
Markdown
|
|
# Placeholder-Gap- und Governance-Dokument für Vibe-Coding / Entwickler
|
|||
|
|
|
|||
|
|
**Datei:** `placeholder_requirements_for_development.md`
|
|||
|
|
**Zweck:** Arbeitsgrundlage für Entwickler, damit die Prompt-Bibliothek mit stabilen, fachlich sauberen Platzhaltern betrieben werden kann.
|
|||
|
|
**Status:** Draft / arbeitsfähig
|
|||
|
|
**Bezug:** Prompt-Bibliothek, Report-Steckbriefe, bestehender Placeholder-Export, Datenarchitektur
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. Ziel dieses Dokuments
|
|||
|
|
|
|||
|
|
Dieses Dokument beschreibt:
|
|||
|
|
|
|||
|
|
1. **welche Platzhalter bereits vorhanden und nutzbar sind**
|
|||
|
|
2. **welche Platzhalter fachlich geschärft werden müssen**
|
|||
|
|
3. **welche neuen Platzhalter für V1 zusätzlich bereitgestellt werden sollten**
|
|||
|
|
4. **welche Platzhalter nur als spätere Erweiterung gelten**
|
|||
|
|
5. **welche Governance-Regeln für Benennung, Semantik und Versionierung gelten**
|
|||
|
|
|
|||
|
|
Wichtig:
|
|||
|
|
Die Prompt-Bibliothek darf **nicht** darauf angewiesen sein, dass Folgechats spontan neue Platzhalter erfinden oder bestehende umdeuten.
|
|||
|
|
Die API-/Export-Seite muss deshalb eine **kontrollierte, stabile Placeholder-Oberfläche** bereitstellen.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Grundprinzipien für Platzhalter
|
|||
|
|
|
|||
|
|
### 2.1 Platzhalter sind API-Verträge
|
|||
|
|
Ein Platzhalter ist kein freier Text, sondern ein **stabiler Vertrag** zwischen:
|
|||
|
|
- Datenmodell / Berechnungslogik
|
|||
|
|
- Export-/Aggregationsebene
|
|||
|
|
- Prompt-System
|
|||
|
|
- UI / Auswertung / QA
|
|||
|
|
|
|||
|
|
### 2.2 Platzhalter dürfen nicht stillschweigend umdefiniert werden
|
|||
|
|
Ein einmal eingeführter Platzhalter darf nicht:
|
|||
|
|
- semantisch verändert werden
|
|||
|
|
- in einem anderen Zeitraum berechnet werden
|
|||
|
|
- seine Einheit ändern
|
|||
|
|
- stillschweigend von Rohwert auf Trendwert wechseln
|
|||
|
|
|
|||
|
|
### 2.3 Fehlende Werte müssen explizit sein
|
|||
|
|
Wenn ein Wert nicht berechnet werden kann, soll dies **strukturiert** erfolgen, nicht als vager Freitext.
|
|||
|
|
|
|||
|
|
Bevorzugt:
|
|||
|
|
- `null`
|
|||
|
|
- oder ein strukturierter Verfügbarkeitsstatus
|
|||
|
|
|
|||
|
|
Nur wenn das bestehende System es erzwingt, darf vorläufig `"nicht verfügbar"` verwendet werden.
|
|||
|
|
|
|||
|
|
### 2.4 Platzhalter sollen möglichst atomar sein
|
|||
|
|
Bevorzugt:
|
|||
|
|
- einzelne, klar definierte Felder
|
|||
|
|
Nicht bevorzugt:
|
|||
|
|
- sehr große, uneinheitliche Freitext-Blobs, die mehrere Logiken mischen
|
|||
|
|
|
|||
|
|
Trotzdem dürfen kompakte Summary-Platzhalter als Zusatz bleiben, z. B. für einfache Prompts oder UI-Kurztexte.
|
|||
|
|
|
|||
|
|
### 2.5 Zeitbezug muss immer eindeutig sein
|
|||
|
|
Jeder zeitabhängige Platzhalter braucht klaren Fensterbezug:
|
|||
|
|
- `*_today`
|
|||
|
|
- `*_7d`
|
|||
|
|
- `*_14d`
|
|||
|
|
- `*_28d`
|
|||
|
|
- `*_90d`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Bereits vorhandene und gut nutzbare Platzhalter
|
|||
|
|
|
|||
|
|
Diese Platzhalter sind bereits vorhanden und für V1 sinnvoll nutzbar.
|
|||
|
|
|
|||
|
|
## 3.1 Profil / Stammdaten
|
|||
|
|
- `name`
|
|||
|
|
- `age`
|
|||
|
|
- `height`
|
|||
|
|
- `geschlecht`
|
|||
|
|
|
|||
|
|
## 3.2 Körper
|
|||
|
|
- `weight_aktuell`
|
|||
|
|
- `weight_trend`
|
|||
|
|
- `kf_aktuell`
|
|||
|
|
- `bmi`
|
|||
|
|
- `weight_7d_median`
|
|||
|
|
- `waist_hip_ratio`
|
|||
|
|
- `caliper_summary`
|
|||
|
|
- `circ_summary`
|
|||
|
|
|
|||
|
|
## 3.3 Ernährung
|
|||
|
|
- `kcal_avg`
|
|||
|
|
- `protein_avg`
|
|||
|
|
- `carb_avg`
|
|||
|
|
- `fat_avg`
|
|||
|
|
- `energy_balance_7d`
|
|||
|
|
- `protein_g_per_kg`
|
|||
|
|
- `protein_adequacy_28d`
|
|||
|
|
- `macro_consistency_score`
|
|||
|
|
- `energy_deficit_surplus`
|
|||
|
|
|
|||
|
|
## 3.4 Training / Aktivität
|
|||
|
|
- `activity_summary`
|
|||
|
|
- `activity_detail`
|
|||
|
|
- `trainingstyp_verteilung`
|
|||
|
|
- `training_minutes_week`
|
|||
|
|
- `training_frequency_7d`
|
|||
|
|
- `quality_sessions_pct`
|
|||
|
|
- `proxy_internal_load_7d`
|
|||
|
|
- `monotony_score`
|
|||
|
|
- `strain_score`
|
|||
|
|
- `rest_day_compliance`
|
|||
|
|
|
|||
|
|
## 3.5 Schlaf / Erholung
|
|||
|
|
- `sleep_avg_duration`
|
|||
|
|
- `sleep_avg_quality`
|
|||
|
|
- `rest_days_count`
|
|||
|
|
- `sleep_avg_duration_7d`
|
|||
|
|
- `sleep_debt_hours`
|
|||
|
|
- `sleep_regularity_proxy`
|
|||
|
|
- `sleep_quality_7d`
|
|||
|
|
|
|||
|
|
## 3.6 Vitalwerte
|
|||
|
|
- `vitals_avg_hr`
|
|||
|
|
- `vitals_avg_hrv`
|
|||
|
|
- `vitals_vo2_max`
|
|||
|
|
- `rhr_vs_baseline_pct`
|
|||
|
|
- `vo2max_trend_28d`
|
|||
|
|
|
|||
|
|
## 3.7 Scores / Meta
|
|||
|
|
- `nutrition_score`
|
|||
|
|
- `activity_score`
|
|||
|
|
- `recovery_score`
|
|||
|
|
- `data_quality_score`
|
|||
|
|
|
|||
|
|
## 3.8 Ziele / Fokus
|
|||
|
|
- `top_goal_name`
|
|||
|
|
- `top_goal_progress_pct`
|
|||
|
|
- `top_goal_status`
|
|||
|
|
- `top_focus_area_name`
|
|||
|
|
- `top_focus_area_progress`
|
|||
|
|
- `focus_cat_körper_progress`
|
|||
|
|
- `focus_cat_körper_weight`
|
|||
|
|
- `focus_cat_ernährung_progress`
|
|||
|
|
- `focus_cat_ernährung_weight`
|
|||
|
|
- `focus_cat_aktivität_progress`
|
|||
|
|
- `focus_cat_aktivität_weight`
|
|||
|
|
- `focus_cat_recovery_progress`
|
|||
|
|
- `focus_cat_recovery_weight`
|
|||
|
|
- `focus_cat_vitalwerte_progress`
|
|||
|
|
- `focus_cat_vitalwerte_weight`
|
|||
|
|
- `focus_cat_mental_progress`
|
|||
|
|
- `focus_cat_mental_weight`
|
|||
|
|
- `focus_cat_lebensstil_progress`
|
|||
|
|
- `focus_cat_lebensstil_weight`
|
|||
|
|
|
|||
|
|
## 3.9 Zeitraum
|
|||
|
|
- `datum_heute`
|
|||
|
|
- `zeitraum_7d`
|
|||
|
|
- `zeitraum_30d`
|
|||
|
|
- `zeitraum_90d`
|
|||
|
|
|
|||
|
|
## 3.10 Korrelation / Diagnose
|
|||
|
|
- `correlation_energy_weight_lag`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. Bereits vorhandene Platzhalter mit Schärfungsbedarf
|
|||
|
|
|
|||
|
|
Diese Platzhalter existieren, sind aber fachlich oder operativ noch nicht sauber genug.
|
|||
|
|
|
|||
|
|
## 4.1 "nicht verfügbar" als String
|
|||
|
|
Betroffen u. a.:
|
|||
|
|
- `goal_progress_score`
|
|||
|
|
- `body_progress_score`
|
|||
|
|
- `fm_28d_change`
|
|||
|
|
- `lbm_28d_change`
|
|||
|
|
- `waist_28d_delta`
|
|||
|
|
- `recomposition_quadrant`
|
|||
|
|
- `ability_balance_strength`
|
|||
|
|
- `ability_balance_endurance`
|
|||
|
|
- `hrv_vs_baseline_pct`
|
|||
|
|
- weitere ähnliche Felder
|
|||
|
|
|
|||
|
|
### Problem
|
|||
|
|
- Die Prompt-Logik muss String-Inhalte interpretieren.
|
|||
|
|
- Folgeprompts können schwer unterscheiden zwischen:
|
|||
|
|
- echter Null
|
|||
|
|
- fehlendem Wert
|
|||
|
|
- noch nicht implementiert
|
|||
|
|
- Daten reichen nicht
|
|||
|
|
|
|||
|
|
### Empfehlung
|
|||
|
|
Zusätzlich zu jedem kritischen Feld:
|
|||
|
|
- `*_available: true|false`
|
|||
|
|
- optional `*_reason_unavailable`
|
|||
|
|
|
|||
|
|
Oder besser:
|
|||
|
|
- ein strukturiertes Domain-Availability-Objekt
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4.2 Prozent-/Score-Platzhalter ohne standardisierte Skala
|
|||
|
|
Betroffen:
|
|||
|
|
- `quality_sessions_pct`
|
|||
|
|
- `protein_adequacy_28d`
|
|||
|
|
- `macro_consistency_score`
|
|||
|
|
- `nutrition_score`
|
|||
|
|
- `activity_score`
|
|||
|
|
- `recovery_score`
|
|||
|
|
- `data_quality_score`
|
|||
|
|
|
|||
|
|
### Problem
|
|||
|
|
Die Skala ist im Prompt nicht immer selbsterklärend:
|
|||
|
|
- 0–100?
|
|||
|
|
- Prozent?
|
|||
|
|
- normierter Score?
|
|||
|
|
- je höher desto besser?
|
|||
|
|
|
|||
|
|
### Empfehlung
|
|||
|
|
Für jeden solchen Platzhalter intern dokumentieren:
|
|||
|
|
- Skala
|
|||
|
|
- Richtung
|
|||
|
|
- Berechnungsbasis
|
|||
|
|
- sinnvolle Interpretationszonen
|
|||
|
|
|
|||
|
|
Optional zusätzliche Entwickler-Metadaten:
|
|||
|
|
- `score_meta_<name>`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4.3 Summary-Felder als alleinige Quelle
|
|||
|
|
Betroffen:
|
|||
|
|
- `activity_summary`
|
|||
|
|
- `caliper_summary`
|
|||
|
|
- `circ_summary`
|
|||
|
|
|
|||
|
|
### Problem
|
|||
|
|
Diese Felder sind nützlich für kompakte Reports, aber für robuste Mehrstufigkeit oft zu grob.
|
|||
|
|
|
|||
|
|
### Empfehlung
|
|||
|
|
Summary-Felder behalten, aber ergänzen durch strukturierte Roh-/Aggregatfelder.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4.4 Fokuskategorien nicht sauber auf 100 normiert
|
|||
|
|
Im Export fallen z. B. Gewichte wie `135.0` oder andere Summen auf.
|
|||
|
|
|
|||
|
|
### Problem
|
|||
|
|
Für Prompts und Zielgewichtung ist unklar:
|
|||
|
|
- sind das Rohgewichte?
|
|||
|
|
- normierte Gewichte?
|
|||
|
|
- gruppeninterne Punkte?
|
|||
|
|
- Prozentangaben?
|
|||
|
|
|
|||
|
|
### Empfehlung
|
|||
|
|
Klar trennen zwischen:
|
|||
|
|
- `focus_cat_*_weight_raw`
|
|||
|
|
- `focus_cat_*_weight_normalized`
|
|||
|
|
|
|||
|
|
Und ebenso für einzelne Fokusbereiche.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4.5 Zeitfenster-Mischung
|
|||
|
|
Einige Felder sind 7d, andere 14d, 28d oder unklar verdichtet.
|
|||
|
|
|
|||
|
|
### Problem
|
|||
|
|
Prompts können unabsichtlich Zeitfenster vergleichen, die nicht zusammenpassen.
|
|||
|
|
|
|||
|
|
### Empfehlung
|
|||
|
|
Zeitfenster im Feldnamen vereinheitlichen und konsequent dokumentieren.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. Neue Platzhalter, die für V1 zusätzlich bereitgestellt werden sollten
|
|||
|
|
|
|||
|
|
Diese Liste ist die wichtigste operative To-do-Liste für die Entwicklung.
|
|||
|
|
|
|||
|
|
## 5.1 Höchste Priorität – Zielsystem / Fokus / Kontext
|
|||
|
|
|
|||
|
|
### P1. `goal_summary_json`
|
|||
|
|
**Zweck:** kompakte, strukturierte Zielübersicht für Zielreports und zielgewichtete Synthesen.
|
|||
|
|
|
|||
|
|
**Sollinhalt:**
|
|||
|
|
- Liste aktiver Ziele
|
|||
|
|
- je Ziel:
|
|||
|
|
- ID
|
|||
|
|
- Name
|
|||
|
|
- Typ
|
|||
|
|
- Status
|
|||
|
|
- Startwert
|
|||
|
|
- Zielwert
|
|||
|
|
- aktueller Wert
|
|||
|
|
- Fortschritt
|
|||
|
|
- Zieltermin (falls vorhanden)
|
|||
|
|
- primary_flag
|
|||
|
|
- zugeordnete Fokusbereiche
|
|||
|
|
|
|||
|
|
**Warum wichtig:**
|
|||
|
|
Die aktuelle Prompt-Bibliothek braucht mehr als nur `top_goal_name`.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### P2. `focus_area_summary_json`
|
|||
|
|
**Zweck:** strukturierte Liste der aktiven Fokusbereiche.
|
|||
|
|
|
|||
|
|
**Sollinhalt:**
|
|||
|
|
- Fokusbereichsname
|
|||
|
|
- Gruppe/Kategorie
|
|||
|
|
- Rohgewicht
|
|||
|
|
- normiertes Gewicht
|
|||
|
|
- aktueller Progress
|
|||
|
|
- verknüpfte Ziele
|
|||
|
|
|
|||
|
|
**Warum wichtig:**
|
|||
|
|
Top-Focus allein reicht für personalisierte Reports nicht.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### P3. `goal_progress_score_available`
|
|||
|
|
**Typ:** bool
|
|||
|
|
**Warum:** sauber zwischen fehlend und vorhanden unterscheiden.
|
|||
|
|
|
|||
|
|
### P4. `body_progress_score_available`
|
|||
|
|
**Typ:** bool
|
|||
|
|
**Warum:** dito.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5.2 Höchste Priorität – Domain Availability / Confidence
|
|||
|
|
|
|||
|
|
### P5. `domain_availability_json`
|
|||
|
|
**Zweck:** zentrale Verfügbarkeit pro Domäne.
|
|||
|
|
|
|||
|
|
**Sollinhalt:**
|
|||
|
|
- body
|
|||
|
|
- nutrition
|
|||
|
|
- activity
|
|||
|
|
- sleep
|
|||
|
|
- recovery
|
|||
|
|
- vitals
|
|||
|
|
- goals
|
|||
|
|
- focus_areas
|
|||
|
|
- correlations
|
|||
|
|
|
|||
|
|
jeweils mit:
|
|||
|
|
- available
|
|||
|
|
- confidence
|
|||
|
|
- main_gaps
|
|||
|
|
- last_valid_window
|
|||
|
|
|
|||
|
|
**Warum wichtig:**
|
|||
|
|
Vereinfacht Fallbacks und verhindert Scheinpräzision.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### P6. `domain_confidence_json`
|
|||
|
|
Falls `domain_availability_json` nicht reicht oder zu groß wird.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### P7. `critical_missing_fields_json`
|
|||
|
|
**Zweck:** welche fehlenden Daten würden den größten Erkenntnisgewinn bringen?
|
|||
|
|
|
|||
|
|
**Warum wichtig:**
|
|||
|
|
Für Datenqualitätsreport und Nutzerführung.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5.3 Höchste Priorität – Körperentwicklung
|
|||
|
|
|
|||
|
|
### P8. `fm_28d_change_available`
|
|||
|
|
### P9. `lbm_28d_change_available`
|
|||
|
|
### P10. `waist_28d_delta_available`
|
|||
|
|
### P11. `recomposition_quadrant_available`
|
|||
|
|
|
|||
|
|
**Warum:**
|
|||
|
|
Körper- und Plateau-Reports brauchen robuste Verfügbarkeitslogik.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### P12. `body_change_summary_json`
|
|||
|
|
**Zweck:** strukturierte Körperentwicklung.
|
|||
|
|
|
|||
|
|
**Sollinhalt:**
|
|||
|
|
- weight trend
|
|||
|
|
- FM delta
|
|||
|
|
- LBM delta
|
|||
|
|
- waist delta
|
|||
|
|
- hip delta
|
|||
|
|
- recomposition quadrant
|
|||
|
|
- confidence
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5.4 Höchste Priorität – Training / Belastung
|
|||
|
|
|
|||
|
|
### P13. `activity_structure_json`
|
|||
|
|
**Zweck:** kompakter Trainingsstrukturblock.
|
|||
|
|
|
|||
|
|
**Sollinhalt:**
|
|||
|
|
- Volumen
|
|||
|
|
- Frequenz
|
|||
|
|
- Typverteilung
|
|||
|
|
- Qualitätsanteil
|
|||
|
|
- Lastniveau
|
|||
|
|
- Monotonie
|
|||
|
|
- Strain
|
|||
|
|
- Rest-day compliance
|
|||
|
|
- auffällige Muster
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### P14. `training_quality_score`
|
|||
|
|
**Zweck:** standardisierte Trainingsqualitätsbewertung über Sessions hinweg
|
|||
|
|
|
|||
|
|
**Warum:**
|
|||
|
|
Aktuell gibt es `quality_sessions_pct`, aber noch keinen robusten verdichteten Qualitätsanker.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### P15. `load_balance_class`
|
|||
|
|
Wertebeispiele:
|
|||
|
|
- low
|
|||
|
|
- moderate
|
|||
|
|
- high
|
|||
|
|
- strained
|
|||
|
|
|
|||
|
|
**Warum:**
|
|||
|
|
Erleichtert Diagnose-Prompts.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5.5 Höchste Priorität – Schlaf / Recovery / Vitals
|
|||
|
|
|
|||
|
|
### P16. `sleep_summary_json`
|
|||
|
|
**Sollinhalt:**
|
|||
|
|
- duration
|
|||
|
|
- quality
|
|||
|
|
- debt
|
|||
|
|
- regularity
|
|||
|
|
- trend
|
|||
|
|
- confidence
|
|||
|
|
|
|||
|
|
### P17. `recovery_summary_json`
|
|||
|
|
**Sollinhalt:**
|
|||
|
|
- recovery score
|
|||
|
|
- main drivers
|
|||
|
|
- RHR status
|
|||
|
|
- HRV status
|
|||
|
|
- recent load interaction
|
|||
|
|
- confidence
|
|||
|
|
|
|||
|
|
### P18. `vitals_summary_json`
|
|||
|
|
**Sollinhalt:**
|
|||
|
|
- resting HR
|
|||
|
|
- HRV
|
|||
|
|
- VO2max
|
|||
|
|
- trend
|
|||
|
|
- baseline deviation
|
|||
|
|
- confidence
|
|||
|
|
|
|||
|
|
### P19. `hrv_vs_baseline_pct_available`
|
|||
|
|
### P20. `rhr_vs_baseline_pct_available`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5.6 Höchste Priorität – Korrelation / Diagnose
|
|||
|
|
|
|||
|
|
### P21. `correlation_summary_json`
|
|||
|
|
**Zweck:** strukturierte Zusammenfassung mehrerer Korrelationen / Lag-Beziehungen.
|
|||
|
|
|
|||
|
|
**Sollinhalt:**
|
|||
|
|
- energy_weight_lag
|
|||
|
|
- training_hrv_lag
|
|||
|
|
- training_rhr_lag
|
|||
|
|
- sleep_recovery_lag
|
|||
|
|
- confidence je Zusammenhang
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### P22. `plateau_status`
|
|||
|
|
Wertebeispiele:
|
|||
|
|
- likely
|
|||
|
|
- possible
|
|||
|
|
- not_detected
|
|||
|
|
- insufficient_data
|
|||
|
|
|
|||
|
|
### P23. `top_drivers_positive_json`
|
|||
|
|
### P24. `top_drivers_negative_json`
|
|||
|
|
|
|||
|
|
**Warum:**
|
|||
|
|
Top-Driver-Report und Plateau-Detektor profitieren stark von einer vorberechneten Zwischenebene.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5.7 Höchste Priorität – Energieverfügbarkeit / Schutzlogik
|
|||
|
|
|
|||
|
|
### P25. `underfueling_risk_flag`
|
|||
|
|
**Typ:** bool / enum
|
|||
|
|
|
|||
|
|
### P26. `underfueling_risk_reason`
|
|||
|
|
**Typ:** text / enum / json
|
|||
|
|
|
|||
|
|
### P27. `energy_availability_summary_json`
|
|||
|
|
**Sollinhalt:**
|
|||
|
|
- intake adequacy
|
|||
|
|
- deficit magnitude
|
|||
|
|
- load context
|
|||
|
|
- recovery context
|
|||
|
|
- warning level
|
|||
|
|
- confidence
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Mittlere Priorität – sollte bald folgen
|
|||
|
|
|
|||
|
|
## 6.1 Gesundheitsstabilität
|
|||
|
|
### P28. `health_stability_score`
|
|||
|
|
### P29. `health_stability_summary_json`
|
|||
|
|
|
|||
|
|
## 6.2 Blutdruck
|
|||
|
|
### P30. `blood_pressure_summary_json`
|
|||
|
|
**Sollinhalt:**
|
|||
|
|
- mean systolic/diastolic
|
|||
|
|
- category
|
|||
|
|
- contexts
|
|||
|
|
- trend
|
|||
|
|
- irregularity flags
|
|||
|
|
- confidence
|
|||
|
|
|
|||
|
|
## 6.3 Fokus-/Zielgewichtung
|
|||
|
|
### P31. `goal_weighted_priority_json`
|
|||
|
|
**Zweck:** priorisierte Ziel-/Fokuslogik für Synthese
|
|||
|
|
|
|||
|
|
## 6.4 Reporting-Hilfsfelder
|
|||
|
|
### P32. `main_constraint_json`
|
|||
|
|
### P33. `main_strength_json`
|
|||
|
|
### P34. `next_best_actions_json`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. Niedrigere Priorität / spätere Ausbaustufe
|
|||
|
|
|
|||
|
|
Diese Platzhalter sind wertvoll, aber für V1 nicht zwingend:
|
|||
|
|
|
|||
|
|
- `session_rpe`
|
|||
|
|
- `fatigue_score`
|
|||
|
|
- `pain_flag`
|
|||
|
|
- `illness_flag`
|
|||
|
|
- `travel_flag`
|
|||
|
|
- `competition_flag`
|
|||
|
|
- `measurement_time_consistency`
|
|||
|
|
- `training_age`
|
|||
|
|
- `secondary_goals_json`
|
|||
|
|
- `waist_to_height_ratio`
|
|||
|
|
- `sleep_segment_quality_score`
|
|||
|
|
- `steps_summary_json`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. Platzhalter, die geschärft statt neu erfunden werden sollten
|
|||
|
|
|
|||
|
|
Statt wild neue Namen einzuführen, sollten folgende Bereiche zuerst **semantisch sauber definiert** werden.
|
|||
|
|
|
|||
|
|
## 8.1 Goal / Focus
|
|||
|
|
Bestehend, aber zu flach:
|
|||
|
|
- `top_goal_name`
|
|||
|
|
- `top_goal_progress_pct`
|
|||
|
|
- `top_focus_area_name`
|
|||
|
|
- `top_focus_area_progress`
|
|||
|
|
|
|||
|
|
**Schärfung:**
|
|||
|
|
Ergänzen durch strukturierte JSONs, nicht ersetzen.
|
|||
|
|
|
|||
|
|
## 8.2 Körperentwicklung
|
|||
|
|
Bestehend, aber oft nicht verfügbar:
|
|||
|
|
- `fm_28d_change`
|
|||
|
|
- `lbm_28d_change`
|
|||
|
|
- `waist_28d_delta`
|
|||
|
|
- `recomposition_quadrant`
|
|||
|
|
|
|||
|
|
**Schärfung:**
|
|||
|
|
Verfügbarkeitsflags + strukturierte Summary.
|
|||
|
|
|
|||
|
|
## 8.3 Activity-Qualität
|
|||
|
|
Bestehend:
|
|||
|
|
- `quality_sessions_pct`
|
|||
|
|
|
|||
|
|
**Schärfung:**
|
|||
|
|
ergänzen durch:
|
|||
|
|
- `training_quality_score`
|
|||
|
|
- ggf. `quality_sessions_count`
|
|||
|
|
- optional `quality_definition_version`
|
|||
|
|
|
|||
|
|
## 8.4 Recovery
|
|||
|
|
Bestehend:
|
|||
|
|
- `recovery_score`
|
|||
|
|
|
|||
|
|
**Schärfung:**
|
|||
|
|
ergänzen durch Komponenten-/Treiberdarstellung.
|
|||
|
|
|
|||
|
|
## 8.5 Data Quality
|
|||
|
|
Bestehend:
|
|||
|
|
- `data_quality_score`
|
|||
|
|
|
|||
|
|
**Schärfung:**
|
|||
|
|
ergänzen durch Domain-Ebene und konkrete Lückenbeschreibung.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 9. Governance-Regeln für Platzhalter
|
|||
|
|
|
|||
|
|
Diese Regeln sollten für Entwicklung und Prompting verbindlich sein.
|
|||
|
|
|
|||
|
|
### G1. Keine eigenmächtige Umbenennung
|
|||
|
|
Bestehende Platzhalter dürfen nicht ohne Migration umbenannt werden.
|
|||
|
|
|
|||
|
|
### G2. Keine stillschweigende Semantikänderung
|
|||
|
|
Wenn Berechnungslogik geändert wird, braucht der Platzhalter:
|
|||
|
|
- Versionierung intern
|
|||
|
|
- oder einen neuen Namen
|
|||
|
|
|
|||
|
|
### G3. Neue Platzhalter nur kontrolliert
|
|||
|
|
Neue Platzhalter nur einführen, wenn:
|
|||
|
|
- Zweck klar
|
|||
|
|
- Datenquelle klar
|
|||
|
|
- Zeitfenster klar
|
|||
|
|
- Einheit klar
|
|||
|
|
- Fallback klar
|
|||
|
|
|
|||
|
|
### G4. JSON vor Freitext
|
|||
|
|
Für komplexe Mehrstufenlogik sollen neue Platzhalter bevorzugt als strukturierte JSON-Container bereitgestellt werden.
|
|||
|
|
|
|||
|
|
### G5. Zeitfenster im Namen
|
|||
|
|
Zeitfenster müssen im Namen explizit sein, falls nicht universell.
|
|||
|
|
|
|||
|
|
### G6. Verfügbarkeit trennen von Inhalt
|
|||
|
|
Für kritische Felder besser:
|
|||
|
|
- Wert
|
|||
|
|
- Verfügbarkeitsflag
|
|||
|
|
- optional Grund
|
|||
|
|
|
|||
|
|
### G7. Keine Ad-hoc-Platzhalter in Folgechats
|
|||
|
|
Folgechats für Prompt-Ausarbeitung dürfen keine neuen Platzhalter stillschweigend voraussetzen.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 10. Konkrete Entwickler-Backlog-Empfehlung
|
|||
|
|
|
|||
|
|
## Sprint / Paket 1 – notwendig für robuste V1-Reports
|
|||
|
|
1. `goal_summary_json`
|
|||
|
|
2. `focus_area_summary_json`
|
|||
|
|
3. `domain_availability_json`
|
|||
|
|
4. `critical_missing_fields_json`
|
|||
|
|
5. Verfügbarkeitsflags für Body-Change-Felder
|
|||
|
|
6. `sleep_summary_json`
|
|||
|
|
7. `recovery_summary_json`
|
|||
|
|
8. `activity_structure_json`
|
|||
|
|
9. `correlation_summary_json`
|
|||
|
|
10. `plateau_status`
|
|||
|
|
|
|||
|
|
## Sprint / Paket 2 – starke Verbesserung der Ziel- und Diagnoseebene
|
|||
|
|
1. `top_drivers_positive_json`
|
|||
|
|
2. `top_drivers_negative_json`
|
|||
|
|
3. `energy_availability_summary_json`
|
|||
|
|
4. `underfueling_risk_flag`
|
|||
|
|
5. `health_stability_score`
|
|||
|
|
6. `blood_pressure_summary_json`
|
|||
|
|
7. `goal_weighted_priority_json`
|
|||
|
|
|
|||
|
|
## Sprint / Paket 3 – spätere Verfeinerung
|
|||
|
|
1. `training_quality_score`
|
|||
|
|
2. `session_rpe`
|
|||
|
|
3. `fatigue_score`
|
|||
|
|
4. `measurement_time_consistency`
|
|||
|
|
5. `illness_flag` / `travel_flag`
|
|||
|
|
6. `waist_to_height_ratio`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 11. Abnahmekriterien für die Placeholder-Schicht
|
|||
|
|
|
|||
|
|
Die Placeholder-Schicht ist fachlich gut genug, wenn:
|
|||
|
|
|
|||
|
|
1. **alle Core-Reports der V1-Bibliothek ohne stillschweigende Erfindungen lauffähig sind**
|
|||
|
|
2. fehlende Werte **strukturiert** behandelt werden können
|
|||
|
|
3. Ziel-/Fokus-Logik nicht nur über ein einzelnes „Top“-Feld abgebildet wird
|
|||
|
|
4. Datenqualität und Confidence nicht nur global, sondern domänenspezifisch beschrieben werden
|
|||
|
|
5. Diagnose-Reports mindestens auf vorbereiteten Zwischenobjekten statt nur Freitextsummaries aufsetzen können
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 12. Kurzfazit
|
|||
|
|
|
|||
|
|
Für V1 ist die Placeholder-Basis bereits gut, aber noch nicht stabil genug für eine große professionelle Prompt-Bibliothek.
|
|||
|
|
Der größte Handlungsbedarf liegt in vier Bereichen:
|
|||
|
|
|
|||
|
|
- **strukturierte Ziel-/Fokus-JSONs**
|
|||
|
|
- **domänenspezifische Availability-/Confidence-Objekte**
|
|||
|
|
- **robustere Diagnose-/Driver-/Plateau-Zwischenfelder**
|
|||
|
|
- **saubere Verfügbarkeits- und Schärfungslogik für kritische Body-/Recovery-Felder**
|
|||
|
|
|
|||
|
|
Dieses Dokument ist bewusst entwicklungsnah formuliert und soll als Arbeitsgrundlage für die Implementierung dienen.
|