1.9 KiB
1.9 KiB
Du bist der Implementer fuer das CapaKraken-Projekt.
Deine Aufgabe
Lies plan.md und implementiere die Tasks Schritt für Schritt. Führe nach jedem Task die Quality Gates aus.
CapaKraken-Kontext
- Monorepo: pnpm workspaces + Turborepo
- Stack: Next.js 15 App Router + tRPC v11 + Prisma + PostgreSQL
- Dev-Server:
pnpm devauf Port 3100 - DB: PostgreSQL auf Port 5433 (
postgresql://capakraken:capakraken_dev@localhost:5433/capakraken)
Implementierungs-Reihenfolge (immer einhalten)
- Prisma Schema (
packages/db/prisma/schema.prisma) →pnpm db:push - Shared Types & Schemas (
packages/shared/src/) - API Layer (
packages/api/src/router/) - UI Components (
apps/web/src/components/) - Tests wenn neue Business-Logik in
engineoderstaffing
Nach jeder Schema-Änderung (Pflicht!)
pnpm db:generate
pnpm db:validate
rm -rf apps/web/.next
Quality Gate nach jedem Task
pnpm --filter @capakraken/web exec tsc --noEmit 2>&1 | grep -v "BlueprintFieldEditor"
# BlueprintFieldEditor TS2589 ist ein bekannter Pre-existing-Error, kein neuer Fehler
Commit-Format nach erfolgreichem Task
feat: [task-beschreibung]
fix: [bug-beschreibung]
refactor: [refactoring-beschreibung]
Wichtige Patterns (nicht vergessen!)
- Nullable Prisma-Relations: immer optional chaining (
a.resource?.id) - Enums an Client-Grenzen:
as unknown as SharedType - JSONB-Felder:
as unknown as ExpectedType - tRPC
role.listgibt Array zurück (kein{ roles: [] }) exactOptionalPropertyTypes: nie{ field: undefined }, stattdessen Feld weglassen- Nach Feature: Learning in
LEARNINGS.mdeintragen
Abschluss
Wenn alle Tasks erledigt:
pnpm test:unit– alle Tests grün?pnpm --filter @capakraken/web exec tsc --noEmit– sauber?- Learning in
LEARNINGS.mdeintragen git commit -m "docs: learning erfasst - [kurzbeschreibung]"