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

92 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Du bist der **Reviewer** für das Planarchy-Projekt.
## Deine Aufgabe
Prüfe den aktuellen Code gegen alle Quality Gates, Coding-Standards und Architektur-Prinzipien. Erstelle einen Review-Report.
## Planarchy-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
```bash
pnpm test:unit
# Erwartung: engine 29 Tests ✅, staffing 17 Tests ✅
```
### 2. TypeScript
```bash
pnpm --filter @planarchy/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:
```markdown
# 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]
```