Files
CapaKraken/.claude/commands/review.md
T

2.8 KiB
Raw Blame History

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
  • engine und staffing haben keine DB-Imports
  • Neue tRPC-Router in packages/api/src/router/index.ts registriert
  • SSE-Events für neue Entities in event-bus.ts ergä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 } mit exactOptionalPropertyTypes

Datenbank & Prisma

  • Geldbeträge als Integer-Cents (kein Float)
  • Nach Schema-Änderung: prisma generate ausgeführt?
  • Neue Modelle im Seed (packages/db/src/seed.ts) ergänzt?
  • deleteMany für neue Tabellen im Seed-Cleanup-Block?

UI & Komponenten

  • Sticky-positionierte Elemente haben opake Hintergründe (kein /40, /60 Opacity)
  • trpc.role.list als 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]