hellth-hub/CLAUDE.md
Sebastian Mayer e264765876 Feature: Ziele in Einstellungen-Tab, Sportbonus-Anzeige, Profil-Fix
Health-/Ernährungslogik überarbeitet:

- Fix: upsertProfile speichert fehlende Größe/Gewicht als null statt 0
  (Round-Trip-Bug: gespeicherte 0 scheiterte beim erneuten Speichern an
  z.number().positive()). Frontend clampt zudem mealsPerDay/cooksPerDay
  auf die Zod-Grenzen. 3 neue API-Tests.
- Ziele-Bearbeitung vom Standalone /ziele in den Einstellungen-Tab
  ?tab=ziele gezogen; /ziele-Seite + Sidebar-Eintrag entfernt. Liest/
  schreibt jetzt aus der DB (vorher las der Tab veraltetes localStorage).
- Wochenziel wird automatisch als Tagesziel × 7 berechnet (Feld entfällt).
- Sportbonus klar dargestellt: Tagesansicht addiert den heutigen Sport
  aufs Budget (nur wenn sportAddsCalories aktiv) mit Bolt-Badge; Wochen-
  Box mit Icon und Info "ganze Woche". Dashboard invalidiert alle
  statsSummary-Varianten.
- Belohnende Banner bei Sport heute und bei Kaloriendefizit.
- Doku: rules.md-Verweis auf docs/projektreferenz.md korrigiert.
- Neuer Skill: ernaehrungswissenschaftler (fachliche Abnahme der
  Health-Logik).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 11:12:34 +02:00

2.2 KiB

Claude Working Guidelines - Hellth Hub

Hellth Hub ist eine mobile-first Health-, Ernährungs-, Aktivitäts- und Einkaufs-Tracking-App für den Home-Lab-Betrieb. Monorepo mit pnpm: Next.js 16 / React 19 Frontend (apps/admin), Hono + tRPC + Better Auth API (packages/api), Drizzle/PostgreSQL (packages/db).

Ausführliche Projektreferenz (Dateilandkarte, Features, Altlasten): docs/projektreferenz.md.

Grundregeln

  • Umlaute immer korrekt schreiben: echte ä ö ü Ä Ö Ü ß statt ae oe ue ss. Gilt für UI, Doku, Commits und Antworten.
  • Keine alten Altprojekt-/Tenant-/Community-/Naturfreunde-Begriffe in neue UI oder Doku übernehmen.
  • Einstellungen und Health-Daten sind benutzerbezogen, nicht global.
  • Bestehende Architektur nutzen: apps/admin, packages/api, packages/db.
  • Änderungen mit Tests absichern, besonders bei Auth, Health-Daten, Wochenbudget und Einkaufslisten.
  • Bestehende User-Änderungen nicht zurücksetzen. Keine destruktiven Git-Befehle ohne ausdrückliche Anweisung.
  • Cleanup von Altlasten nur nach ausdrücklicher Freigabe.
  • Neue Formulare nach Möglichkeit mit FormField aus apps/admin/app/_components/form-field.tsx bauen.
  • Bei neuen DB-Funktionen Schema, Migration, API und UI zusammen denken.
  • UI mobile-first denken.

Ports

  • Admin-App lokal: http://localhost:3001
  • API lokal: http://localhost:3002 (Health: /api/health — / direkt liefert 404, ist normal)
  • Postgres: localhost:5432 · pgAdmin: http://localhost:5050

Docker stellt nur db + pgadmin bereit (docker/docker-compose.yml). Lokale Entwicklung läuft über die Dev-Server auf 3001/3002.

Lokaler Start

Docker/Postgres muss laufen (docker ps), dann:

pnpm --filter @hellth/db db:migrate   # Migrationen
pnpm --filter @hellth/api dev         # API (Port 3002)
pnpm --filter admin dev               # Admin (Port 3001)

Tests: pnpm --filter admin test · pnpm --filter @hellth/api test. Typecheck: pnpm typecheck.

Auth/Admin

Admin-User: admin@onl1.eu. Admin erzwingt 2FA (mit Logs/Sicherheitsmechanik bei 2FA-Verlust). Passwörter nicht dokumentieren; bei Bedarf über Seed-/Admin-Skripte neu setzen.