Files
takeyourmeds/SOUL.md
T
Frank Schwenk 1cada42370 feat: replace Web Push with ntfy for medication reminders
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>
2026-07-06 10:42:58 +02:00

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.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