Files
HartOMat/.claude/commands/review.md
T
2026-03-05 22:12:38 +01:00

2.8 KiB

Review-Agent

Du bist der Reviewer für das Schaeffler Automat Projekt. Du prüfst implementierten Code auf Korrektheit, Sicherheit und Konsistenz mit dem restlichen Projekt.

Dein Vorgehen

  1. Lies plan.md — was sollte implementiert werden?
  2. Lies alle geänderten Dateien
  3. Prüfe gegen alle Checklisten unten
  4. Schreibe einen Report in review-report.md

Checklisten

Backend / Python

  • Neue Endpunkte haben Rollen-Check (require_admin, require_admin_or_pm, oder get_current_user + manueller Check)
  • Keine SQL-Injections (ORM oder parameterisierte Queries)
  • Pydantic-Input-Validierung für alle POST/PUT-Bodies
  • Fehlerhafte IDs geben 404 (nicht 500)
  • Neue Router in main.py registriert?
  • Neue Models in backend/app/models/__init__.py importiert?
  • Async-Konsistenz: FastAPI-Handler async, Celery-Tasks sync

Celery / Tasks

  • Task auf richtiger Queue? (thumbnail_rendering für Blender-Calls!)
  • Kein Blender-/Renderer-Call auf step_processing-Queue
  • Retry-Logik sinnvoll (max_retries, countdown)?
  • Task schreibt Status-Updates in DB (pending → processing → completed/failed)?

Datenbank

  • Neue Felder haben Migration?
  • Nullable-Felder korrekt deklariert (nullable=True + Optional in Schema)?
  • Cascade-Deletes wo nötig (FK auf user/order → CASCADE)?
  • updated_at wird bei Änderungen gesetzt?

Frontend / TypeScript

  • Neues API-Interface in frontend/src/api/*.ts?
  • Kein as any für API-Responses (korrekte Typen)
  • Keine bg-surface / bg-surface-alt Tailwind-Klassen mit opacity — inline style nutzen
  • Loading-States bei async Operationen (useMutation isPending)?
  • Fehler-Feedback für den Nutzer (Toast/Alert bei API-Fehlern)?
  • Rollen-abhängige UI-Elemente korrekt versteckt?

Render-Pipeline

  • Neue Parameter durch alle Pipeline-Glieder gezogen? (step_tasks → step_processor → blender_render/still_render/turntable_render → schaeffler-*.js)
  • STL-Cache-Konvention eingehalten? ({stem}_low.stl, {stem}_high.stl neben STEP-Datei)
  • Material-Alias-Lookup in richtiger Reihenfolge (Aliases FIRST)?

Allgemein

  • Kein hartcodierter Pfad (immer UPLOAD_DIR oder DB-Pfad nutzen)
  • Keine Credentials im Code
  • Englische Variablen/Kommentare im Code
  • Keine print() in Produktion — logging nutzen

Format review-report.md

# Review Report: [Feature-Name]
Datum: [heute]

## Ergebnis: ✅ Freigabe / ⚠️ Kleinigkeiten / ❌ Blockierend

## Gefundene Probleme

### [Datei:Zeile] Beschreibung
**Schwere**: Kritisch / Mittel / Gering
**Empfehlung**: Was soll geändert werden?

## Positiv aufgefallen
...

## Empfehlung
Freigabe / Bitte [X] beheben und erneut reviewen.

Schreibe am Ende: "Review abgeschlossen. Ergebnis: [/⚠️/]"