- .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
16 KiB
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:
- welche Platzhalter bereits vorhanden und nutzbar sind
- welche Platzhalter fachlich geschärft werden müssen
- welche neuen Platzhalter für V1 zusätzlich bereitgestellt werden sollten
- welche Platzhalter nur als spätere Erweiterung gelten
- 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
nameageheightgeschlecht
3.2 Körper
weight_aktuellweight_trendkf_aktuellbmiweight_7d_medianwaist_hip_ratiocaliper_summarycirc_summary
3.3 Ernährung
kcal_avgprotein_avgcarb_avgfat_avgenergy_balance_7dprotein_g_per_kgprotein_adequacy_28dmacro_consistency_scoreenergy_deficit_surplus
3.4 Training / Aktivität
activity_summaryactivity_detailtrainingstyp_verteilungtraining_minutes_weektraining_frequency_7dquality_sessions_pctproxy_internal_load_7dmonotony_scorestrain_scorerest_day_compliance
3.5 Schlaf / Erholung
sleep_avg_durationsleep_avg_qualityrest_days_countsleep_avg_duration_7dsleep_debt_hourssleep_regularity_proxysleep_quality_7d
3.6 Vitalwerte
vitals_avg_hrvitals_avg_hrvvitals_vo2_maxrhr_vs_baseline_pctvo2max_trend_28d
3.7 Scores / Meta
nutrition_scoreactivity_scorerecovery_scoredata_quality_score
3.8 Ziele / Fokus
top_goal_nametop_goal_progress_pcttop_goal_statustop_focus_area_nametop_focus_area_progressfocus_cat_körper_progressfocus_cat_körper_weightfocus_cat_ernährung_progressfocus_cat_ernährung_weightfocus_cat_aktivität_progressfocus_cat_aktivität_weightfocus_cat_recovery_progressfocus_cat_recovery_weightfocus_cat_vitalwerte_progressfocus_cat_vitalwerte_weightfocus_cat_mental_progressfocus_cat_mental_weightfocus_cat_lebensstil_progressfocus_cat_lebensstil_weight
3.9 Zeitraum
datum_heutezeitraum_7dzeitraum_30dzeitraum_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_scorebody_progress_scorefm_28d_changelbm_28d_changewaist_28d_deltarecomposition_quadrantability_balance_strengthability_balance_endurancehrv_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_pctprotein_adequacy_28dmacro_consistency_scorenutrition_scoreactivity_scorerecovery_scoredata_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_summarycaliper_summarycirc_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_rawfocus_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_rpefatigue_scorepain_flagillness_flagtravel_flagcompetition_flagmeasurement_time_consistencytraining_agesecondary_goals_jsonwaist_to_height_ratiosleep_segment_quality_scoresteps_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_nametop_goal_progress_pcttop_focus_area_nametop_focus_area_progress
Schärfung:
Ergänzen durch strukturierte JSONs, nicht ersetzen.
8.2 Körperentwicklung
Bestehend, aber oft nicht verfügbar:
fm_28d_changelbm_28d_changewaist_28d_deltarecomposition_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
goal_summary_jsonfocus_area_summary_jsondomain_availability_jsoncritical_missing_fields_json- Verfügbarkeitsflags für Body-Change-Felder
sleep_summary_jsonrecovery_summary_jsonactivity_structure_jsoncorrelation_summary_jsonplateau_status
Sprint / Paket 2 – starke Verbesserung der Ziel- und Diagnoseebene
top_drivers_positive_jsontop_drivers_negative_jsonenergy_availability_summary_jsonunderfueling_risk_flaghealth_stability_scoreblood_pressure_summary_jsongoal_weighted_priority_json
Sprint / Paket 3 – spätere Verfeinerung
training_quality_scoresession_rpefatigue_scoremeasurement_time_consistencyillness_flag/travel_flagwaist_to_height_ratio
11. Abnahmekriterien für die Placeholder-Schicht
Die Placeholder-Schicht ist fachlich gut genug, wenn:
- alle Core-Reports der V1-Bibliothek ohne stillschweigende Erfindungen lauffähig sind
- fehlende Werte strukturiert behandelt werden können
- Ziel-/Fokus-Logik nicht nur über ein einzelnes „Top“-Feld abgebildet wird
- Datenqualität und Confidence nicht nur global, sondern domänenspezifisch beschrieben werden
- 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.