# HealthManager Inventory

**Stand:** 2026-06-13 17:01 CEST  
**Quelle:** lokale Code-Arbeitskopie `/home/agent/.hermes/repos/HealthManager`, Skill-/README-Dokumentation und Skriptcode; keine produktive Health-DB, keine PDFs, keine Reports und keine Drive-Links geöffnet oder kopiert.  
**Remote:** `Gamexgit/HealthManager`, privat, Branch `main`; letzte bekannte Remote-Aktualisierung 2026-05-12.

## Datenschutz- und Sicherheitsstatus

HealthManager dokumentiert selbst:

- Repo enthält keine Gesundheitsdatenbank.
- Repo enthält keine PDFs.
- Repo enthält keine Rohdokumente.
- Repo enthält keine Credentials.
- Enthalten sind Health-Pipeline-Skripte, Cron-/Sync-Skripte, Datenbankschema ohne Daten, Workflow-/Restore-Dokumentation und Skill-Dokumentation.
- Produktive DB und Hermes-Konfiguration werden separat verschlüsselt nach Google Drive gesichert.

**Bewertung:** Grün für Code-/Schema-/Runbook-Inventar, Rot für direkte Health-Datenintegration.

## Tech Stack und Struktur

### Repository-Struktur

```text
scripts/health/                 Health-Pipeline, Dashboard, Reports, Apple Health Import
scripts/cron/                   Automatisierte Sync-/Backup-Jobs
database/schema.sql             SQLite-Schema ohne Patientendaten
database/integrity_check.txt    Letzter Integritätsstatus der produktiven DB
docs/                           Workflow-Dokumentation
skills/health-data-management/  Operatives Wissen / Runbook
```

### Hauptskripte

- `scripts/health/health_pipeline.py`
- `scripts/health/health_dashboard_v3.py`
- `scripts/health/generate_doctor_report.py`
- `scripts/health/apple_health_drive_sync.py`
- `scripts/health/apple_health_import.py`
- `scripts/health/apple_health_analytics.py`
- `scripts/health/generate_health_data_quality_report.py`
- `scripts/health/process_all_health_documents.py`
- `scripts/health/link_lab_values_to_documents.py`
- `scripts/health/verify_system.py`
- `scripts/cron/weekly_health_drive_backup.py`
- `scripts/cron/health_daily_sync.py`
- `scripts/cron/yazio_sync.py`
- `scripts/cron/apple_health_daily_sync.py`
- `scripts/cron/health_weekly_report.py`
- `scripts/cron/morning_briefing.py`

## Startbefehle und vorhandene CLI-Kommandos

### Health Pipeline

Pfadabhängig produktiv auf JARVIS/Hermes Host:

```bash
python3 ~/.hermes/assets/Gesundheit/scripts/health_pipeline.py <command>
```

Im Repo erkennbarer CLI-Unterbau:

```bash
python3 scripts/health/health_pipeline.py generate-lab-report
python3 scripts/health/health_pipeline.py export-correction [--batch-id ...] [--output ...]
python3 scripts/health/health_pipeline.py apply-corrections <xlsx> [--batch-id ...]
python3 scripts/health/health_pipeline.py dashboard
python3 scripts/health/health_pipeline.py daily-report [--date YYYY-MM-DD]
python3 scripts/health/health_pipeline.py weekly-report [--end-date YYYY-MM-DD]
python3 scripts/health/health_pipeline.py register-inbox
python3 scripts/health/health_pipeline.py upload <path> --parent <drive-folder-id>
```

**MVP-Relevanz:** Nur `status`/existence/metadata-artige Checks wären geeignet; die vorhandenen Kommandos schreiben Reports, registrieren Inbox oder laden Drive hoch und sind daher für MVP deaktiviert.

### System Verification

```bash
python3 scripts/health/verify_system.py
```

**Warnung:** Das Script öffnet produktive DB und gibt Counts aus. Für Jarvis Global Dashboard nicht direkt ausführen, bevor eine sanitized Variante existiert.

### Weekly Backup

```bash
python3 ~/.hermes/scripts/weekly_health_drive_backup.py
```

Hermes Cron laut README:

```text
04918ca83019 — sonntags 23:55
```

**MVP-Relevanz:** Nur letzter Backup-Status als sanitized Summary, nicht Backup auslösen.

## Ports und APIs

### HTTP APIs

Im HealthManager Repo wurde keine FastAPI-/HTTP-API als produktiver Service identifiziert. HealthManager ist aktuell skript-/datei-/reportorientiert.

**Bewertung:** Gelb. Für das JARVIS Dashboard braucht Health einen Adapter, der entweder sichere Statusdateien/Metadaten liest oder eine neue read-only Health Status API bereitstellt. Keine direkte DB-Abfrage aus dem Frontend.

### Ports

Keine dedizierten HealthManager-Ports identifiziert.

## Produktive Runtime-Pfade

Laut README und Skill:

```text
~/.hermes/assets/Gesundheit/health_data.db
~/.hermes/assets/Gesundheit/scripts/
~/.hermes/assets/Gesundheit/reports/
~/.hermes/assets/Gesundheit/inbox/
~/.hermes/assets/Gesundheit/processed/
~/.hermes/assets/Gesundheit/archiv/
~/.hermes/assets/Gesundheit/logs/
~/.hermes/scripts/
```

**No-Go:** Produktive DB, PDFs, Rohdokumente, Reports, Drive link JSONs und Inbox-/Archiv-Inhalte nicht ins Jarvis Repo kopieren und nicht global im Dashboard anzeigen.

## Datenmodell laut Schema ohne Daten

Das Repo enthält `database/schema.sql` ohne Patientendaten. Relevante Tabellen:

- `dokumente`
- `laborwerte`
- `medikamente`
- `dokumente_status`
- `health_events`
- `vitalzeichen`
- `auswertungen`
- `ernaehrung`
- `symptome`
- `symptom_log`
- `arztbesuche`
- `korrelationen`
- `tagebuch`
- `health_processing_runs`
- `laborwerte_staging`
- `document_insights`
- weitere Apple-Health-/Report-/Review-Tabellen laut Migration/Skill möglich

Sensitive Felder im Schema:

- `dokumente.extrahierte_inhalte`
- `dokumente.drive_file_id`
- `dokumente.drive_web_url`
- `dokumente.local_original_path`
- `laborwerte.wert`, `wert_original`, Laborwerte und Referenzbereiche
- Symptome, Ernährung, Tagebuch, Arztbesuche, Medikationen
- Dokumenttitel, Institutionen, Notes, Insights

## Vorhandene Dashboards und Reports

### Health Dashboard v3

- Generator: `scripts/health/health_dashboard_v3.py`
- Pipeline command: `health_pipeline.py dashboard`
- Produktiver Output laut Skill: `~/.hermes/assets/Gesundheit/reports/health_dashboard.html`
- Enthält Labortrends, Health Events, Symptome, Medikamenten-/Phaseninformationen, Apple-Health-Module und teils Dokument-/PDF-Links.

**Integration:** Rot für direkte Einbettung/Global View. Gelb als Link in geschützter Health-Detailseite nach Sanitizing. Kein iframe-first.

### Arztbericht / PDF

- Generator: `scripts/health/generate_doctor_report.py`
- Produktiver Output laut Skill: `reports/arztbericht_aktuell.pdf`
- Upload nach Google Drive möglich; Link JSON möglich.

**Integration:** Rot für globales Dashboard. Allenfalls geschützter Report-Link nach expliziter Freigabe und ohne Drive-Link-Leak.

### Daily/Weekly Health Reports

- `daily-report` und `weekly-report` schreiben Markdown Reports.
- Weekly Report zählt u.a. neue Dokumente, Ernährungseinträge, Symptomeinträge, offene Labor-Korrekturen.

**Integration:** Gelb. Die Counts sind potenziell geeignet, aber Reportinhalte nicht global anzeigen.

## Backup-/Restore-Mechanismen

### GitHub

- Code, Skripte, Doku, Schema ohne Daten.
- Keine PDFs/DB/Credentials.

### Google Drive verschlüsselt

`weekly_health_drive_backup.py` erstellt:

- konsistente SQLite-Backup-Kopie intern im verschlüsselten Bundle
- Schema Dump
- Integrity Report
- Health Skripte ohne PDFs/Rohdokumente
- Hermes Quick Backup
- Skills und User Scripts
- optional externe Credentials nur innerhalb des verschlüsselten Bundles
- Upload nur als `.tar.gz.gpg` plus nicht-sensitive Manifestdaten

**Wichtige Sicherheitsmechanismen:**

- GPG AES256
- Passphrase aus lokaler Datei, nicht in Git
- Ausschluss von PDFs, Bildern, Rohdokumenten und unverschlüsselten Uploads

### Restore grob laut README

1. Verschlüsseltes Google-Drive-Backup herunterladen.
2. Mit lokaler GPG-Passphrase entschlüsseln.
3. `health/health_data.db` nach Produktivpfad kopieren.
4. Skripte wiederherstellen.
5. Hermes Quick Backup importieren.
6. SQLite `PRAGMA integrity_check` prüfen.

## Gefahrlos aggregierbare Daten für JARVIS Global Dashboard

Diese Daten können grundsätzlich aggregiert werden, wenn ein sanitizing Adapter sie liefert und keine Rohwerte/Links/Namen ausgibt:

### Grün — sofort als Konzept integrierbar, technische Adapter fehlen noch

1. **Pipeline Liveness / Status verfügbar?**
   - Beispiel: existiert HealthManager Runtime-Pfad, existiert DB ja/nein, letztes Script erfolgreich ja/nein.
   - Keine Counts aus DB ohne Adapter.

2. **Backup-Status als Boolean/Alter**
   - letzter verschlüsselter Backup-Run vorhanden/alt?
   - Keine Backup-Dateinamen mit sensiblen Details, keine Drive-Links.

3. **Report-Existenz als Boolean/Alter**
   - `health_dashboard.html` existiert: ja/nein, zuletzt geändert.
   - `arztbericht_aktuell.pdf` existiert: ja/nein, zuletzt geändert.
   - Keine Inhalte, keine Links global.

4. **Review-Queue Count**
   - Anzahl offener Labor-Staging-Reviews, aber nur Count.
   - Keine Parameter, Werte, Einheiten, Daten.

### Gelb — nur mit Sanitizing/Adapter

1. **Dokumentenstatus Counts**
   - Anzahl neu/eingearbeitet/archiviert/offene Reviews.
   - Keine Dateinamen, Institutionen, Pfade, Drive IDs.

2. **Apple Health Sync Status**
   - letzter Importzeitpunkt, Anzahl Dateien/Records nur stark aggregiert.
   - Keine Metrik-Rohwerte, keine JSON-Dateinamen, keine täglichen Werte.

3. **YAZIO Sync Status**
   - letzter erfolgreicher Sync, neue Einträge ja/nein.
   - Keine Mahlzeiten, Kalorien, Notes.

4. **Dashboard/Report generation status**
   - letzter Run, Status ok/failed, Artefakt-Typ.
   - Keine Report-Inhalte oder Drive Links.

5. **Health Events Summary**
   - Count/Trend-Level nur in Health Detail, nicht global.
   - Keine Diagnosen/Symptombeschreibungen global.

### Rot — nicht ins Gesamtdashboard

- Volle Laborwerte oder Labortrenddaten auf globaler Startseite.
- PDF-Inhalte oder extrahierte Arztberichttexte.
- Drive Links, Drive File IDs, lokale Originalpfade.
- Dokumentdateinamen.
- Symptome, Tagebuch, Ernährungstexte, Medikamentendetails global.
- Arztbesuche, Diagnosen, Institutionen, Behandlernamen.
- Raw Apple Health Werte.
- YAZIO Mahlzeiten/Ernährungsdetails.
- Korrelationen oder medizinische Interpretationen als globale Alerts.

## Geeignete Integrationspunkte

### MVP Health Module Card

Maximal 3 KPIs:

1. **Pipeline:** ok/degraded/offline.
2. **Reviews:** offene Review-Counts, nur Zahl.
3. **Reports:** aktueller Report vorhanden/alt, nur Status.

### Attention Items

- Health pipeline degraded.
- Offene Review-Korrekturen > 0.
- Letzter verschlüsselter Backup-Run zu alt.
- Report veraltet.

### Legacy Links

- Link zu Health Dashboard v3 nur in Health-Detail, nicht iframe.
- Link zum Arztbericht nur geschützt und nicht global.

## No-Go-Bereiche

1. Produktive DB direkt im JARVIS Frontend lesen.
2. Produktive DB ins Jarvis Repo kopieren.
3. Report-HTML/PDF ins Jarvis Repo kopieren.
4. Drive Links global anzeigen.
5. PDF-Inhalte oder `extrahierte_inhalte` anzeigen.
6. Laborwerte oder medizinische Trends im globalen Overview anzeigen.
7. Pipeline-Kommandos auslösen, bevor Preview -> Confirm -> Audit existiert.
8. `verify_system.py` direkt als Dashboard Backend verwenden, weil es produktive Counts und Details ausgibt.

## Priorität für technische Umsetzung

1. Health status adapter ohne DB-Inhalte: Runtime-Pfad erreichbar, Scripts vorhanden, Reports existence/mtime.
2. Sanitized review count adapter: nur Count offener Staging Reviews, keine Werte/Parameter.
3. Backup freshness adapter: letzter verschlüsselter Backup-Status, keine Dateinamen/Drive-Links.
4. Health detail link registry: Legacy links geschützt, keine iframes.
5. Spätere read-only Health API im HealthManager Repo, damit Jarvis nicht direkt SQLite lesen muss.
