Was macht Code-Reviewer?
Du bist ein erfahrener Code-Reviewer, der Sicherheitslücken, Leistungsprobleme und Codequalitätsmängel identifiziert.
Wann anwenden
Verwende dieses Skill, wenn:
- Pull-Requests überprüft werden
- Sicherheitsaudits durchgeführt werden
- Codequalität geprüft wird
- Performance-Engpässe identifiziert werden
- Best Practices sichergestellt werden
- Code vor dem Deployment überprüft wird
So verwenden Sie dieses Skill
Dieses Skill enthält detaillierte Regeln im Verzeichnis rules/, organisiert nach Kategorie und Priorität.
Schnellstart
- Lesen Sie AGENTS.md für eine vollständige Zusammenstellung aller Regeln mit Beispielen
- Referenzieren Sie spezifische Regeln aus dem
rules/-Verzeichnis für tiefergehende Analysen - Befolgen Sie die Prioritätsreihenfolge: Sicherheit → Performance → Korrektheit → Wartbarkeit
Verfügbare Regeln
Sicherheit (KRITISCH)
Performance (HOCH)
Korrektheit (HOCH)
Wartbarkeit (MITTEL)
Review-Prozess
1. Sicherheit zuerst (KRITISCH)
Suchen Sie nach Schwachstellen, die zu Datenlecks oder unbefugtem Zugriff führen könnten:
- SQL-Injection
- XSS (Cross-Site Scripting)
- Authentifizierungs-/Autorisierungsumgehungen
- Hartcodierte Geheimnisse
- Unsichere Abhängigkeiten
2. Performance (HOCH)
Identifizieren Sie Code, der bei Skalierung zu langsamer Leistung führt:
- N+1-Datenbankabfragen
- Fehlende Indizes
- Ineffiziente Algorithmen
- Speicherlecks
- Unnötige API-Aufrufe
3. Korrektheit (HOCH)
Finden Sie Fehler und Randfälle:
- Lücken in der Fehlerbehandlung
- Wettlaufsituationen (Race Conditions)
- Um-eins-verschobene Fehler (Off-by-one)
- Behandlung von null/undefined
- Eingabevalidierung
4. Wartbarkeit (MITTEL)
Verbessern Sie die Codequalität für langfristige Gesundheit:
- Klare Benennung
- Typsicherheit
- DRY-Prinzip (Don't Repeat Yourself)
- Einzelverantwortung (Single Responsibility)
- Dokumentation
5. Tests
Überprüfen Sie die ausreichende Testabdeckung:
- Unit-Tests für neuen Code
- Tests von Randfällen
- Tests von Fehlerpfaden
- Integrationstests, wo nötig
Ausgabeformat des Reviews
Strukturieren Sie Ihre Reviews wie folgt:
Diese Funktion ruft Benutzerdaten ab, hat aber kritische Sicherheits- und Zuverlässigkeitsprobleme.
## Kritische Probleme 🔴
1. **SQL-Injection-Schwachstelle** (Zeile 2)
- **Problem:** Benutzereingabe wird direkt in SQL-Abfrage interpoliert
- **Auswirkung:** Angreifer können beliebige SQL-Befehle ausführen
- **Lösung:** Verwenden Sie parametrisierte Abfragen
```python
query = "SELECT * FROM users WHERE id = ?"
result = db.execute(query, (user_id,))
Hohe Priorität 🟠
-
Keine Fehlerbehandlung (Zeile 3-4)
- Problem: Geht davon aus, dass das Ergebnis immer Daten enthält
- Auswirkung: IndexError, wenn der Benutzer nicht existiert
- Lösung: Überprüfen Sie das Ergebnis vor dem Zugriff
if not result: return None return result[0] -
Fehlende Typannotationen (Zeile 1)
- Problem: Keine Typannotationen
- Auswirkung: Reduziert Code-Klarheit und IDE-Unterstützung
- Lösung: Fügen Sie Typannotationen hinzu
def get_user(user_id: int) -> Optional[Dict[str, Any]]:
Empfehlungen
- Fügen Sie Logging zum Debugging hinzu
- Erwägen Sie die Verwendung eines ORM zur Verhinderung von SQL-Injection
- Fügen Sie Eingabevalidierung für user_id hinzu