Code-Review-Skill-Beispiel
Ein Skill, der der KI hilft, konsistentes, hochwertiges Code-Review-Feedback zu geben.
Anwendungsfall
Dieser Skill stellt sicher, dass KI-Reviewer:
- Auf Sicherheitslücken prüfen
- Leistungsprobleme identifizieren
- Code-Stil-Konsistenz beibehalten
- Konstruktives Feedback geben
Vollständige SKILL.md
markdown
---
name: Code Review Guidelines
description: Provide thorough, constructive code review feedback
version: 1.0.0
author: Engineering Best Practices
platforms:
- claude-code
- codex
categories:
- development
tags:
- code-review
- quality
- security
---
# Code-Review-Richtlinien
## Review-Philosophie
Code-Review dient der Verbesserung der Codequalität und dem Wissensaustausch,
nicht dem Finden von Fehlern. Seien Sie konstruktiv, spezifisch und lehrreich.
## Review-Checkliste
### Sicherheit (Kritisch)
- [ ] Eingabevalidierung bei allen Benutzerdaten
- [ ] Keine SQL-Injection-Schwachstellen
- [ ] Keine XSS-Schwachstellen
- [ ] Keine hartcodierten Anmeldedaten oder Geheimnisse
- [ ] Ordnungsgemäße Authentifizierungs-/Autorisierungsprüfungen
- [ ] Sichere Zufallszahlengenerierung
### Leistung
- [ ] Keine N+1-Abfrageprobleme
- [ ] Angemessene Indizierung für Datenbankabfragen
- [ ] Keine unnötigen Re-Renders (React)
- [ ] Ordnungsgemäße Memoization wo nötig
- [ ] Effiziente Algorithmen für die Datengröße
### Codequalität
- [ ] Funktionen machen eine Sache gut
- [ ] Aussagekräftige Variablen-/Funktionsnamen
- [ ] Kein toter oder auskommentierter Code
- [ ] Angemessene Fehlerbehandlung
- [ ] Konsistenter Codestil
### Testen
- [ ] Tests decken den Happy Path ab
- [ ] Tests decken Grenzfälle ab
- [ ] Tests sind lesbar und wartbar
- [ ] Keine flaky Tests
## Feedback-Richtlinien
### Ton
- Seien Sie respektvoll und konstruktiv
- Erklären Sie das "Warum" hinter Vorschlägen
- Stellen Sie Fragen statt Forderungen
- Würdigen Sie gute Arbeit
### Struktur
1. Beginnen Sie mit dem, was gut ist
2. Äußern Sie Bedenken mit Kontext
3. Schlagen Sie Verbesserungen mit Beispielen vor
4. Enden Sie positiv
### Beispiele
**Gutes Feedback:**
"Erwägen Sie hier eine parametrisierte Abfrage zu verwenden, um SQL-Injection zu verhindern.
Die aktuelle String-Verkettung könnte bösartige Eingaben ermöglichen.
\`\`\`sql
-- Anstatt dies:
query = "SELECT * FROM users WHERE id = " + userId
-- Erwägen Sie:
query = "SELECT * FROM users WHERE id = ?"
params = [userId]
\`\`\`"
**Weniger hilfreiches Feedback:**
"Das ist falsch. Verwenden Sie Prepared Statements."
## Kommentar-Präfixe
Verwenden Sie diese Präfixe, um den Schweregrad anzugeben:
- **[KRITISCH]** - Muss vor dem Merge behoben werden (Sicherheit, Datenverlust)
- **[WICHTIG]** - Sollte behoben werden, bedeutendes Problem
- **[VORSCHLAG]** - Nice-to-have-Verbesserung
- **[FRAGE]** - Suche nach Klarstellung
- **[KLEINIGKEIT]** - Geringfügige Stilpräferenz
## Häufige Probleme
### Sicherheit
**SQL-Injection:**
\`\`\`javascript
// Anfällig
db.query(\`SELECT * FROM users WHERE email = '\${email}'\`);
// Sicher
db.query('SELECT * FROM users WHERE email = ?', [email]);
\`\`\`
**XSS:**
\`\`\`jsx
// Anfällig
<div dangerouslySetInnerHTML={{__html: userInput}} />
// Sicher
<div>{sanitize(userInput)}</div>
\`\`\`
### Leistung
**N+1-Abfragen:**
\`\`\`javascript
// Problem: N+1-Abfragen
users.forEach(async user => {
const posts = await db.query('SELECT * FROM posts WHERE user_id = ?', [user.id]);
});
// Lösung: Batch-Abfrage
const posts = await db.query('SELECT * FROM posts WHERE user_id IN (?)', [userIds]);
\`\`\`
### Codequalität
**Magische Zahlen:**
\`\`\`javascript
// Unklar
if (status === 3) { ... }
// Klar
const STATUS_COMPLETED = 3;
if (status === STATUS_COMPLETED) { ... }
\`\`\`
## Genehmigungskriterien
Genehmigen wenn:
- Keine kritischen oder wichtigen Probleme
- Tests bestehen
- Code folgt Stilrichtlinien
- Dokumentation aktualisiert wenn nötig
Änderungen anfordern wenn:
- Sicherheitslücken existieren
- Kritische Bugs gefunden
- Tests für neue Funktionalität fehlen
- Breaking Changes nicht dokumentiert
Anpassungstipps
- Team-Standards hinzufügen: Fügen Sie Ihre spezifischen Codierungskonventionen ein
- Schweregrade anpassen: Passen Sie an die Risikotoleranz Ihres Teams an
- Tools einbeziehen: Referenzieren Sie Linter, Formatter usw.
- Beispiele hinzufügen: Verwenden Sie Code aus Ihrer Codebasis
Nächste Schritte
- API-Integration - API-Design-Skill
- Datenanalyse - Daten-Workflow-Skill