diff --git a/.gitignore b/.gitignore
index 6bda3f9..1cd4a77 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,9 @@ build/
coverage/
*.tsbuildinfo
+# Next.js auto-generated (siehe https://nextjs.org/docs/app/api-reference/config/typescript)
+next-env.d.ts
+
# Logs
*.log
.logs/
diff --git a/CLAUDE.md b/CLAUDE.md
index dfc836e..733cc48 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -1,11 +1,40 @@
# Claude Working Guidelines - Hellth Hub
-Hellth Hub ist eine mobile-first Health- und Ernährungstracking-App für den Home-Lab-Betrieb.
+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`).
-Wichtig:
+**Ausführliche Projektreferenz** (Dateilandkarte, Features, Altlasten): [`docs/projektreferenz.md`](docs/projektreferenz.md).
-- Umlaute immer korrekt schreiben.
-- Keine alten Altprojekt-/Tenant-/Community-Begriffe in neue UI oder Doku übernehmen.
+## 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.
\ No newline at end of file
+- Ä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)
+- Docker-App: `http://localhost:3000` · Postgres: `localhost:5432` · pgAdmin: `http://localhost:5050`
+
+## Lokaler Start
+
+Docker/Postgres muss laufen (`docker ps`), dann:
+
+```powershell
+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.
diff --git a/apps/admin/next-env.d.ts b/apps/admin/next-env.d.ts
deleted file mode 100644
index c4b7818..0000000
--- a/apps/admin/next-env.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-///
-///
-import "./.next/dev/types/routes.d.ts";
-
-// NOTE: This file should not be edited
-// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
diff --git a/claude-info.md b/docs/projektreferenz.md
similarity index 73%
rename from claude-info.md
rename to docs/projektreferenz.md
index 5bf9ca8..ce762a2 100644
--- a/claude-info.md
+++ b/docs/projektreferenz.md
@@ -1,4 +1,6 @@
-# Hellth Hub Projektinfo
+# Hellth Hub - Projektreferenz
+
+Ausführliches Nachschlagewerk. Die immer geltenden Regeln und der Schnellstart stehen in [`CLAUDE.md`](../CLAUDE.md) im Repo-Root.
## Kurzüberblick
@@ -6,18 +8,6 @@ Hellth Hub ist eine mobile-optimierte Web-App für persönliches Health-, Ernäh
Das Projekt wurde technisch aus einem kopierten Naturfreunde-Hub-Grundgerüst entwickelt. Naturfreunde-Funktionen wurden weitgehend entfernt oder ersetzt. Das alte Projekt dient nur noch als historische/technische Vorlage, nicht als fachliche Grundlage.
-Wichtig: In deutscher UI und Dokumentation immer echte Umlaute verwenden, also `ä`, `ö`, `ü`, `ß` statt `ae`, `oe`, `ue`, `ss`.
-
-## Arbeitsverzeichnis
-
-Aktueller Projektpfad:
-
-```text
-c:\EurOwiG\Entwicklung\forgejo\hellth-hub
-```
-
-Das Monorepo liegt direkt im Repo-Root (`apps/`, `packages/`, `docker/` …). Der frühere `nf-hub/`-Unterordner wurde am 2026-05-27 entfernt und sein Inhalt nach oben gezogen.
-
## Tech Stack
- Monorepo mit `pnpm`
@@ -27,44 +17,7 @@ Das Monorepo liegt direkt im Repo-Root (`apps/`, `packages/`, `docker/` …). De
- Docker: Postgres und pgAdmin, plus vorhandener App-Container
- Auth: Better Auth mit Login, 2FA, Passkeys
-## Wichtige Ports
-
-- Admin-App lokal: `http://localhost:3001`
-- API lokal: `http://localhost:3002`
-- API Healthcheck: `http://localhost:3002/api/health`
-- Docker-App: `http://localhost:3000`
-- Postgres: `localhost:5432`
-- pgAdmin: `http://localhost:5050`
-
-Hinweis: `http://localhost:3002` direkt kann `404` liefern. Das ist normal, weil die API unter `/api/...` hängt.
-
-## Lokaler Start
-
-Docker/Postgres muss laufen:
-
-```powershell
-docker ps
-```
-
-Migrationen anwenden:
-
-```powershell
-pnpm --filter @hellth/db db:migrate
-```
-
-API starten:
-
-```powershell
-pnpm --filter @hellth/api dev
-```
-
-Admin starten:
-
-```powershell
-pnpm --filter admin dev
-```
-
-Seeds:
+## Seeds
```powershell
pnpm --filter @hellth/api seed:health
@@ -114,7 +67,7 @@ Der Demo-Recipe-Seed erzeugt 50 öffentliche Testrezepte mit IDs `demo-recipe-01
Wearables/Fitbit/Health-Connect-Vorbereitung.
- `apps/admin/app/(authed)/einstellungen/page.tsx`
- User-Profil, Sicherheit, 2FA, Passkeys, Rezept-/Ernährungspräferenzen.
+ User-Profil, Sicherheit, 2FA, Passkeys, Rezept-/Ernährungspräferenzen. Aufgeteilt in Tabs (`_components/settings-tabs.tsx`, `section-card.tsx`, `status-banner.tsx`), Tab-Auswahl über `?tab=`-Query.
- `apps/admin/app/(authed)/einstellungen/punkte/page.tsx`
Globale Admin-Einstellung für Hellfireclub-/Aktivitätspunkte.
@@ -221,18 +174,9 @@ Vorschläge berücksichtigen vorrangig User-Profil:
### Admin Activity Feed
-Pfad:
+Pfad: `/aktivitaetsfeed`
-```text
-/aktivitaetsfeed
-```
-
-Zeigt aktuell:
-
-- Rezeptvorschläge
-- Marktänderungsanträge
-
-Marktänderungen können direkt übernommen oder abgelehnt werden.
+Zeigt aktuell Rezeptvorschläge und Marktänderungsanträge. Marktänderungen können direkt übernommen oder abgelehnt werden.
### Hellfireclub
@@ -254,18 +198,6 @@ Marktänderungen können direkt übernommen oder abgelehnt werden.
- Fitbit-Aktivitätskatalog ist vorhanden.
- Manuelle Aktivitäten sind möglich.
-## Auth/Admin
-
-Admin-User:
-
-```text
-admin@onl1.eu
-```
-
-Passwort steht nicht hier dokumentieren. Falls nötig über vorhandene Admin-/Seed-Skripte neu setzen.
-
-Admin erzwingt 2FA. Es gibt zusätzliche Logs/Sicherheitsmechanik, falls 2FA-Status verloren geht.
-
## Tests und Checks
Admin-Tests:
@@ -292,12 +224,12 @@ Admin-Build:
$env:NEXT_PUBLIC_API_URL='http://localhost:3002'; pnpm --filter admin build
```
-Zuletzt erfolgreich:
+Zuletzt erfolgreich (Stand 2026-05-29):
-- API-Tests: 28/28
+- API-Tests: 38/38
- Admin-Tests: 10/10
-- API-Typecheck: grün
-- Admin-Build: grün
+- Typecheck: grün (alle Pakete)
+- Lint: 0 Errors (react-hooks-Warnings = bestehendes Muster)
## Lokale Dev-Logs
@@ -310,25 +242,7 @@ Wenn die Prozesse im Hintergrund gestartet wurden, liegen Logs hier:
.logs/admin-dev.err.log
```
-## Wichtige Arbeitsregeln
-
-- Bestehende User-Änderungen nicht zurücksetzen.
-- Keine destruktiven Git-Befehle ohne ausdrückliche Anweisung.
-- Für manuelle Code-Edits bevorzugt `apply_patch` verwenden.
-- Bei Suche `rg` bevorzugen.
-- UI mobile-first denken.
-- Keine Naturfreunde-Fachlogik wieder einführen.
-- Neue Formulare nach Möglichkeit mit `FormField` und `inputClassName` aus `apps/admin/app/_components/form-field.tsx` bauen.
-- Bei neuen DB-Funktionen Schema, Migration, API und UI zusammen denken.
-- Bei deutscher UI immer Umlaute korrekt schreiben.
-
-## Aktuelle bekannte Besonderheiten
-
-- `localhost:3002` direkt liefert 404; `/api/health` ist der richtige API-Test.
-- Docker stellt primär DB/pgAdmin bereit; lokale Entwicklung läuft über `pnpm --filter @hellth/api dev` und `pnpm --filter admin dev`.
-- Die Docker-App läuft zusätzlich auf `localhost:3000`, ist aber nicht der primäre lokale Dev-Workflow.
-
-## Wichtige Orientierung für Claude: Repo-Konsistenz
+## Repo-Konsistenz und Altlasten
Das Hellth-Hub-Monorepo liegt direkt im Repo-Root. Aktuell relevant sind:
@@ -357,14 +271,4 @@ Diese Altlast ist noch da und sollte **nicht angepackt werden**, weil sie die DB
- `packages/db/drizzle/*.sql` und `meta/*.json` (Migrationen 0000-0008) enthalten noch Naturfreunde-Tabellen-DDL aus der Schema-Historie. Drizzle tracked sie per Datei + Hash - Umbenennen oder Löschen würde die DB inkonsistent machen. Wenn das stört, ist ein dedizierter "Schema-Reset" notwendig (alle Migrationen löschen, neue `0000_init.sql` aus aktuellem Schema generieren, DB neu aufbauen).
-### Arbeitsregel für neue Aufgaben
-
-Pfade in Antworten immer ohne `nf-hub/`-Präfix - das Monorepo liegt im Repo-Root:
-
-```text
-apps/admin
-packages/api
-packages/db
-```
-
-Keine Naturfreunde-Funktionalität wiederbeleben. Wenn eine Altlast aus der obigen Liste auftaucht: höchstens kurz erwähnen, dann im aktuellen Hellth-Hub-Code weiterarbeiten. Cleanup nur nach ausdrücklicher Benutzerfreigabe.
+Keine Naturfreunde-Funktionalität wiederbeleben. Wenn eine Altlast auftaucht: höchstens kurz erwähnen, dann im aktuellen Hellth-Hub-Code weiterarbeiten. Cleanup nur nach ausdrücklicher Benutzerfreigabe.