# SOUL.md — TakeYourMeds Persönliche Medikamenten-PWA — nicht der Chat-Mood (siehe `MOOD.md`). --- ## Agent Quick Start | | | |---|---| | **Was** | Single-User PWA: Med-Erinnerungen, Einnahme-Log, Streak/Heatmap, sarkastischer Humor | | **Domain** | [medis.schwenk.online](https://medis.schwenk.online) | | **Stack** | FastAPI + SQLite + Vanilla JS PWA, ntfy, APScheduler | | **Deploy** | Docker Compose auf `boka` → `/home/frank/medis.schwenk.online` (Fränky deployt) | | **Secrets** | `.env` only — PIN, JWT, NTFY_TOKEN, OpenRouter | | **Tests** | Pragmatisch — keine Pflicht-Suite; manuell ntfy + PWA prüfen | | **Commit** | Nur auf explizite Anweisung | --- ## Product Name **TakeYourMeds** (intern: medis) ## One-Liner Persönliche Medikamenten-PWA mit dezenten Erinnerungen, Einnahme-Logging und sarkastischem Humor — für ADHS-realistische Routinen. ## Vision Medikamente nicht vergessen, ohne Schuld-Trip oder Alarm-Hölle. Die App erinnert dezent, loggt Einnahmen, zeigt Fortschritt (Streak, Heatmap) und liefert kleine Dopamin-Hits — weil ADHS-Gehirne Belohnung brauchen, nicht noch eine To-do-Liste. ## Audience **Fränky** — Single-User, persönliches Gerät (Android PWA + Desktop). Erwartet: zuverlässige Reminder, schnelle „genommen"-Aktion, ehrlicher Ton, kein Corporate-Bullshit. ## Tone & Wording Wie in `messages.yaml` — direkt, sarkastisch, ADHS-aware, liebevoll unter der Schicht: - **Voice:** Du, trocken, selbstironisch, kein Motivations-Coach - **Formality:** casual (Du) - **Error messages:** ehrlich + hilfreich („Push nicht konfiguriert" statt „Etwas ist schiefgelaufen") - **Forbidden:** LinkedIn-Sprech, „leverage", „synergy", übertriebene Wellness-Floskeln, Schuld-Trips ### Wording Examples | Context | Good | Bad | |---------|------|-----| | Success | „Genommen! Dein Gehirn gibt dir einen langsamen High-Five." | „Großartig! Du hast heute wieder Großes geleistet! 🎉" | | Error | „Reminder kommt nicht — NTFY_TOKEN in .env?" | „Ein unerwarteter Fehler ist aufgetreten." | | Empty state | „Noch nichts geloggt. Typisch." | „Beginne deine Wellness-Journey!" | ## Design - **Palette:** `#F12F12` (theme_color), utilitarian PWA - **Feel:** minimal, schnell, mobile-first — keine Deko-Orgie ## Non-Goals - Kein Multi-User / keine Accounts für andere - Kein SaaS, kein App-Store-Launch - Keine Dark Patterns (Streak-Shaming, Paywall, Engagement-Bait) - Kein Medizin-Ratgeber — nur Erinnerung & Logging - Kein Build-Step-Frontend (Vanilla JS bleibt) ## Infrastructure (project-local) | | | |---|---| | Server | `boka` (Debian 12) | | Path | `/home/frank/medis.schwenk.online` | | Domain | `medis.schwenk.online` | | DB | `data/medis.sqlite` (Volume) | | Config | `meds.yaml`, `messages.yaml` (read-only mounts) | | Push | ntfy → [ntfy.schwenk.online](https://ntfy.schwenk.online/) Topic `takeyourmeds` | ## Project-Specific Rules - **ntfy only** — Server publiziert Reminder; ntfy-App auf dem Handy empfängt. Kein Web Push/VAPID. - **`reminder_window_minutes: 90`** — nicht sofort „verpasst" um 08:01; ADHS-realistisch - **Abend-Check 21:00** — überfällige Slots → `missed` - **Roast/Motivation** — OpenRouter optional; Notifications nutzen statische `messages.yaml` - **PIN in .env** — Single-User, `hmac.compare_digest`; kein Over-Engineering - **Kein nginx** — FastAPI serviert API + Static (KISS) - **Service Worker** — aggressives Caching; bei SW-Änderungen `version.json` bumpen --- ## Agent Instructions - `SOUL.md` > `STANDARDS.md` für UI/UX und Produkt-Ton - Secrets nie committen — Token/Keys nur `.env` - Deploy: Fränky, außer explizit anders gesagt - Neue Regeln hier oder in `BOUNDARIES.md` — Agent schlägt vor, Fränky bestätigt