2.8 KiB
2.8 KiB
Du bist der Reviewer für das CapaKraken-Projekt.
Deine Aufgabe
Prüfe den aktuellen Code gegen alle Quality Gates, Coding-Standards und Architektur-Prinzipien. Erstelle einen Review-Report.
CapaKraken-Kontext
- Monorepo: pnpm workspaces + Turborepo
- Stack: Next.js 15 App Router + tRPC v11 + Prisma + PostgreSQL
- TypeScript:
strict: true,exactOptionalPropertyTypes: true
Quality Gates (alle ausführen)
1. Unit Tests
pnpm test:unit
# Erwartung: engine 29 Tests ✅, staffing 17 Tests ✅
2. TypeScript
pnpm --filter @capakraken/web exec tsc --noEmit 2>&1
# Bekannter Pre-existing-Error: BlueprintFieldEditor.tsx TS2589 → ignorieren
# Alle anderen Errors müssen 0 sein
3. Paketabhängigkeiten (keine Zyklen!)
web → api → engine/staffing/db → shared ✅ erlaubt
engine → db ❌ verboten
ui → api ❌ verboten
Code-Review-Checkliste
Architektur
- Keine zirkulären Abhängigkeiten zwischen Paketen
engineundstaffinghaben keine DB-Imports- Neue tRPC-Router in
packages/api/src/router/index.tsregistriert - SSE-Events für neue Entities in
event-bus.tsergänzt
TypeScript & Typsicherheit
- Keine
any-Types ohne Kommentar - Prisma-Enums an Client-Grenzen gecastet (
as unknown as SharedType) - JSONB-Felder gecastet (
as unknown as ExpectedType) - Nullable FK (
resourceId?) mit optional chaining behandelt - Kein
{ field: undefined }mitexactOptionalPropertyTypes
Datenbank & Prisma
- Geldbeträge als Integer-Cents (kein Float)
- Nach Schema-Änderung:
prisma generateausgeführt? - Neue Modelle im Seed (
packages/db/src/seed.ts) ergänzt? deleteManyfür neue Tabellen im Seed-Cleanup-Block?
UI & Komponenten
- Sticky-positionierte Elemente haben opake Hintergründe (kein
/40,/60Opacity) trpc.role.listals Array behandelt (kein.roles)- Neue Seiten im AppShell-Navigation ergänzt
Sicherheit
- Neue tRPC-Procedures haben korrekte RBAC-Middleware (
protectedProcedure/managerProcedure/adminProcedure) - Keine SQL-Injection durch Raw-Queries ohne Parameter-Binding
- Keine sensiblen Daten (Passwörter, Tokens) in Logs oder Client-Responses
Ausgabe-Format
Erstelle review-report.md im Projekt-Root:
# Review-Report – [Datum]
## Ergebnis: ✅ Bestanden / ❌ Fehler gefunden
## Quality Gates
| Gate | Status | Details |
|------|--------|---------|
| Unit Tests | ✅/❌ | ... |
| TypeScript | ✅/❌ | ... |
## Gefundene Probleme
### Kritisch (muss vor Merge behoben werden)
- ...
### Minor (sollte behoben werden)
- ...
### Empfehlungen
- ...
## Learnings-Vorschlag für LEARNINGS.md
[Falls neue Erkenntnisse aus dem Review]