1cada42370
Single notification path via ntfy HTTP publish for reliable Android delivery; remove VAPID, push subscriptions, and SW push handlers. PWA settings show topic subscribe link; humor texts and deep-link actions unchanged. Co-authored-by: Cursor <cursoragent@cursor.com>
3.7 KiB
3.7 KiB
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 |
| 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 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.jsonbumpen
Agent Instructions
SOUL.md>STANDARDS.mdfü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