mitai-jinkendo/.claude/docs/functional/SLEEP_MODULE.md
Lars 7940dc7560 docs: Struktur .claude/docs versionieren, working/, Gitea-Index, Regeln
- .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
2026-04-08 13:01:49 +02:00

228 lines
8.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Fachliche Anforderungen: Schlaf-Modul
**Modul:** v9d
**Status:** Fachlich freigegeben, technische Implementierung ausstehend
**Letzte Aktualisierung:** März 2026
---
## 1. Überblick
Das Schlaf-Modul ist ein eigenständiges Tracking-Modul für tägliche Schlafdaten.
Es ergänzt die bestehenden Körper-, Ernährungs- und Aktivitäts-Module um eine
zentrale Gesundheitsdimension. Schlaf wird sowohl manuell erfasst als auch aus
Apple Health / Garmin importiert. Korrelationen mit Ruhepuls, Training und Gewicht
fließen in die KI-Analyse ein.
---
## 2. Erfasste Daten
### 2.1 Pflichtfelder (Schnelleingabe)
- **Datum** welche Nacht (Standard: letzte Nacht)
- **Schlafdauer** in Stunden und Minuten (berechnet aus Ein-/Aufwachzeit oder direkt)
- **Schlafqualität** subjektiv 15 (1 = sehr schlecht, 5 = sehr gut)
### 2.2 Optionale Felder (Detaileingabe)
- **Einschlafzeit** Uhrzeit (z.B. 23:15)
- **Aufwachzeit** Uhrzeit (z.B. 06:45)
- **Aufwach-Häufigkeit** wie oft in der Nacht aufgewacht (010+)
- **Schlafphasen** Dauer in Minuten je Phase:
- Tiefschlaf
- REM-Schlaf
- Leichtschlaf
- Wach (in Bett)
- **Notiz** Freitext (z.B. "Stress, schlechte Nacht", "früh ins Bett")
### 2.3 Abgeleitete Felder (automatisch berechnet)
- **Schlafdauer** aus Einschlafzeit + Aufwachzeit wenn nicht direkt eingegeben
- **Schlafeffizienz** Schlafdauer / Zeit im Bett × 100% (wenn Phasen vorhanden)
- **Tiefschlaf-Anteil %** Tiefschlaf / Gesamtschlaf × 100%
- **REM-Anteil %** REM / Gesamtschlaf × 100%
---
## 3. Erfassungs-Modi
### 3.1 Schnelleingabe (≤ 30 Sekunden)
Minimaler Aufwand für den täglichen Gebrauch:
```
Datum: [gestern / heute Nacht]
Schlafdauer: [7] h [30] min
Qualität: ★★★★☆ (1-5 Sterne)
[Speichern]
```
### 3.2 Detaileingabe (alle Felder)
Vollständige Erfassung für Power-User oder wenn Gerätedaten vorliegen:
```
Datum: [22.03.2026]
Eingeschlafen: [23:15]
Aufgewacht: [06:45]
Schlafdauer: [7h 30min] (automatisch berechnet)
Qualität: ★★★★☆
Aufwachungen: [1]
Tiefschlaf: [95] min
REM-Schlaf: [110] min
Leichtschlaf: [230] min
Wach im Bett: [15] min
Notiz: [...]
[Speichern]
```
### 3.3 Morgendlicher Check-in
- Beim Öffnen der App morgens optional: "Wie hast du geschlafen?"
- Zeigt Schnelleingabe direkt auf dem Dashboard
- Kann in den Einstellungen aktiviert/deaktiviert werden
- Reminder-Logik: nur anzeigen wenn noch kein Eintrag für die letzte Nacht
### 3.4 Import (Apple Health / Garmin)
- Beim CSV/Health-Import werden Schlafdaten automatisch erkannt und zugeordnet
- Importierte Daten befüllen alle verfügbaren Felder (Phasen wenn vorhanden)
- Manuelle Eingabe ergänzt oder überschreibt Importdaten für denselben Tag
- Quelle wird gespeichert (manuell / apple_health / garmin)
---
## 4. Navigation & Dashboard
### 4.1 Eigene Seite in der Navigation
- Neuer Nav-Eintrag: **Schlaf** (zwischen Verlauf und Analyse)
- Icon: Mond oder Bett-Symbol
- Zeigt: Letzte 7 Tage Übersicht + Verlauf + Eingabe-Button
### 4.2 Dashboard-Widget
- Kompaktes Widget auf dem Dashboard (unter den Hauptkennzahlen)
- Zeigt: Letzte Nacht (Dauer + Qualität) + 7-Tage-Durchschnitt
- Klick öffnet die Schlaf-Seite
- Wenn noch kein Eintrag heute: "Schlaf erfassen" Button
---
## 5. Auswertungen
### 5.1 Schlafdauer-Trend
- Zeitraum wählbar: 7 / 30 / 90 Tage
- Liniengrafik: tägliche Schlafdauer
- Referenzlinie: persönliches Schlafziel (konfigurierbar in Einstellungen)
- Durchschnittslinie: gleitender 7-Tage-Durchschnitt
- Farbcodierung: unter Ziel = orange/rot, über Ziel = grün
### 5.2 Schlafqualität-Trend
- Liniengrafik: tägliche Qualität (15)
- 7-Tage-Durchschnitt als Referenzlinie
- Kombiniert mit Schlafdauer in einer Grafik (zwei Y-Achsen)
### 5.3 Schlafphasen-Verteilung
- Balkengrafik: Tiefschlaf / REM / Leichtschlaf / Wach je Nacht
- Durchschnittliche Verteilung über Zeitraum
- Referenzwerte: empfohlene Anteile (Tiefschlaf 15-25%, REM 20-25%)
- Nur sichtbar wenn Phasendaten vorhanden
### 5.4 Schlafschulden-Berechnung
- Definition: Differenz zwischen Schlafziel und tatsächlichem Schlaf (kumuliert)
- Zeitraum: letzte 7 / 14 Tage
- Anzeige: "+2h 15min Schlafschuld" oder "0 kein Defizit"
- Positiver Saldo (Übererfüllung) wird als Puffer angezeigt
### 5.5 Optimales Schlaffenster
- Berechnung aus Einschlafzeit + Schlafqualität über Zeit
- Erkennt wann Schlaf am besten war (z.B. "Beste Qualität bei Einschlafzeit 2223 Uhr")
- Mindestdatenbasis: 14 Einträge mit Einschlafzeit
### 5.6 Korrelationen
Alle Korrelationen benötigen mindestens 14 gemeinsame Datenpunkte:
**Schlaf ↔ Ruhepuls:**
- Streudiagramm: Schlafdauer / Qualität vs. Ruhepuls nächster Morgen
- KI-Aussage: "Nach <7h Schlaf ist dein Ruhepuls Ø X bpm höher"
**Schlaf ↔ Trainingsleistung:**
- Vergleich: Trainingsintensität/-volumen nach gut vs. schlecht geschlafenen Nächten
- KI-Aussage: "Nach Nächten mit >7,5h Schlaf trainierst du Ø X% länger/intensiver"
**Schlaf ↔ Gewicht:**
- Korrelation: Schlafdauer vs. Gewichtsentwicklung (wöchentlich)
- KI-Aussage: "In Wochen mit <6h Schlaf im Schnitt +X kg Gewichtsschwankung"
---
## 6. Schlafziel (konfigurierbar)
- In den Einstellungen: "Mein Schlafziel" Stunden + Minuten
- Standard: 7h 30min
- Wird als Referenzlinie in allen Grafiken angezeigt
- Fließt in Schlafschulden-Berechnung ein
- KI nutzt den Wert als Basis für Schlafmangel-Warnung
---
## 7. KI-Analyse
### 7.1 Neue KI-Platzhalter
```
{{schlaf_avg_dauer}} → "7h 12min (Ø 7 Tage)"
{{schlaf_avg_qualitaet}} → "3,8/5 (Ø 7 Tage)"
{{schlaf_trend_dauer}} → "sinkend / stabil / steigend"
{{schlaf_trend_qualitaet}} → "sinkend / stabil / steigend"
{{schlaf_schulden}} → "+2h 15min (letzte 7 Tage)"
{{schlaf_ziel}} → "7h 30min"
{{schlaf_optimum_fenster}} → "22:0023:00 Uhr (beste Qualität)"
{{schlaf_tiefschlaf_anteil}} → "18% (Ø letzte 14 Tage)"
{{schlaf_rem_anteil}} → "22% (Ø letzte 14 Tage)"
{{schlaf_aufwachungen}} → "1,2x pro Nacht (Ø 7 Tage)"
{{schlaf_korrelation_puls}} → "Ruhepuls +4 bpm nach <7h Schlaf"
{{schlaf_detail}} → tabellarische Übersicht letzte 7 Nächte
```
### 7.2 KI-Analyse-Funktionen
**Schlafmangel erkennen und warnen:**
- Trigger: Schlafdurchschnitt letzte 3 Tage < (Schlafziel 60min)
- KI-Ausgabe: Warnung + konkrete Empfehlung
- Beispiel: "Du schläfst seit 3 Tagen unter deinem Ziel. Schlafschuld: +2h 15min."
**Schlaf ↔ Trainingsleistung korrelieren:**
- Automatische Berechnung sobald genug Daten (14+ Einträge beider Module)
- KI-Ausgabe: narrative Korrelationsbeschreibung mit konkreten Zahlen
**Optimales Schlaffenster empfehlen:**
- Basierend auf historischen Einschlafzeiten + Qualitäten
- KI-Ausgabe: "Deine beste Schlafqualität erzielst du wenn du zwischen 2223 Uhr einschläfst"
**Schlaf ↔ Gewicht:**
- Wöchentliche Korrelation
- KI-Ausgabe: "In Wochen mit mehr Schlaf zeigt dein Gewicht weniger Schwankungen"
**Schlafphasen-Verteilung kommentieren:**
- Nur wenn Phasendaten vorhanden
- Referenz: Tiefschlaf 15-25%, REM 20-25%, Leichtschlaf 50-60%
- KI-Ausgabe: "Dein Tiefschlaf-Anteil liegt bei X% das ist [über/unter/im] empfohlenen Bereich"
---
## 8. Abgrenzung & offene Fragen
### In diesem Modul enthalten:
- Tägliche Schlaferfassung (Schnell + Detail)
- Dashboard-Widget + eigene Navigationsseite
- Morgendlicher Check-in (optional)
- Import aus Apple Health / Garmin CSV
- 5 Auswertungsansichten inkl. Korrelationen
- Konfigurierbares Schlafziel
- 12 neue KI-Platzhalter
- 5 KI-Analyse-Funktionen
### Nicht in diesem Modul:
- Automatischer Live-Sync aus Garmin/Apple Watch v9h (Connectoren)
- Schlaf-Coaching / Schlafhygiene-Tipps optional später
- Schnarchen / Atemaussetzer (SpO2) Teil Vitalwerte v9e
- Push-Notification "Schlafenszeit-Reminder" optional später
### Offene Fragen für technische Planung:
1. Neue DB-Tabelle `sleep_log` oder Erweiterung von `activity_log`?
2. Schlafphasen als separate Spalten oder als JSONB-Feld?
3. Morgendlicher Check-in: Frontend-State oder Backend-Logik (letzte Nacht bereits erfasst?)?
4. Korrelationsberechnung: im Backend (Python) oder im Frontend (JavaScript)?
5. Apple Health Export enthält Schlafphasen-Daten welches CSV-Format wird erwartet?
EOF