Doku: CLAUDE.md verschlankt, Referenz nach docs/ ausgelagert

- CLAUDE.md auf Kern reduziert (Regeln, Ports, Start, Auth), lädt
  jede Session schlanker
- claude-info.md -> docs/projektreferenz.md (Dateilandkarte, Features,
  Altlasten als Nachschlagewerk)
- Teststand auf 38 API-Tests aktualisiert
- .gitignore: next-env.d.ts ignorieren (Next.js auto-generiert) und
  aus Versionierung entfernt

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sebastian Mayer 2026-05-29 10:20:03 +02:00
parent e42a8109bf
commit 36b92c07b7
4 changed files with 50 additions and 120 deletions

3
.gitignore vendored
View file

@ -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/

View file

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

View file

@ -1,6 +0,0 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
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.

View file

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