Files
openclaw/skills/gitea-code-review/SKILL.md
2026-05-22 14:42:55 +00:00

5.9 KiB
Raw Blame History

name, description
name description
gitea-code-review Code-Review-Agent für Gitea Issues. Prüft Codequalität, Sicherheit und Architekturkonformität. Teil der Gitea Issue Pipeline.

Code-Review-Agent

Rolle: Phase 3 der Gitea Issue Pipeline. Qualitätssicherung vor dem Test.

Wichtiger Hinweis: KI reviewt KI

Dieser Agent führt ein Self-Review durch die KI prüft ihren eigenen Code. Das ist besser als kein Review, aber kein echter Gatekeeper.

  • Bei kritischen Änderungen (Sicherheit, Finanzen, Auth, DB-Schema): Martin bitten, selbst zu reviewen
  • Bei Komplexität L: Martin muss den Review bestätigen bevor weitergegangen wird
  • Self-Review fängt offensichtliche Bugs, Style-Issues und Sicherheitsbasics ab
  • Subtile Logikfehler können durchgehen

Eingang

  • Feature Branch mit Implementierung
  • Spezifikationsdokument: memory/gitea-specs/issue-<number>.md

Aufgaben

Codequalität prüfen

  • Lesbarkeit und Verständlichkeit bewerten
  • Komplexität der Funktionen prüfen (Cyclomatic Complexity)
  • Duplication vermeiden (DRY)
  • SOLID-Prinzipien beachten
  • YAGNI kein Over-Engineering

Code-Quality-Checkliste (PFLICHT)

Jeder Review MUSS diese Checks durchführen:

# Check Kriterium Schweregrad bei Verletzung
1 Funktionslänge Max 30 Zeilen pro Funktion (ohne Leerzeilen) 🟡 Should-Fix
2 Dateilänge Max 300 Zeilen pro Datei 🟡 Should-Fix
3 Verschachtelung Max 3 Ebenen (if/for/while) 🟡 Should-Fix
4 Magic Numbers Keine unbenannten Zahlen im Code 🔵 Nitpick
5 Console.log Keine console.log/print in Produktionscode 🔴 Must-Fix
6 Dead Code Keine auskommentierten Blöcke, unreachable code 🟡 Should-Fix
7 Ternary-Chains Max 1 Ternary, keine Verschachtelung 🟡 Should-Fix
8 Dependencies Keine unnötigen neuen Dependencies 🟡 Should-Fix
9 Error-Handling Alle Fehlerpfade behandelt, kein silent catch 🔴 Must-Fix
10 Input-Validation Alle User-Inputs validiert/sanitized 🔴 Must-Fix
11 Secrets Keine Passwörter/Tokens/Keys im Code 🔴 Must-Fix
12 Typsicherheit Kein any in TypeScript, korrekte Typen 🟡 Should-Fix

Ergebnis der Checkliste im Review-Dokument dokumentieren.

Zusätzliche automatische Checks:

# Linter-Ergebnis prüfen
npm run lint
# Formatter-Check
npx prettier --check .
# Dependency-Audit
npm audit --audit-level=moderate

Bei Fehlern: 🔴 Must-Fix, Review darf nicht APPROVED werden.

Sicherheitsprobleme erkennen

  • Input Validation auf allen Einstiegspunkten
  • SQL Injection / XSS / CSRF prüfen
  • Auth/Authz korrekt implementiert
  • Keine Secrets im Code
  • Dependency-Schwachstellen prüfen

Architekturkonformität prüfen

  • Entspricht die Umsetzung der Spezifikation?
  • Layer-Trennung eingehalten?
  • Abhängigkeiten in die richtige Richtung?
  • Keine zirkulären Abhängigkeiten

Duplikate identifizieren

  • Copy-Paste-Code erkennen
  • Gemeinsame Logik extrahierbar?
  • Bestehende Utility-Funktionen genutzt?

Lesbarkeit bewerten

  • Aussagekräftige Namen für Variablen, Funktionen, Klassen
  • Komplexe Logik kommentiert?
  • Funktionen nicht zu lang (>30 Zeilen = Warnung)

Naming-Konventionen prüfen

  • Projekt-Styleguide eingehalten
  • Konsistente Benennung throughout
  • Keine Abkürzungen ohne Notwendigkeit

Performanceprobleme erkennen

  • Ineffiziente Queries / Algorithmen
  • Unnötige Synchronisierung
  • Memory Leaks potenziell
  • Blocking Calls in async Kontext

Potenzielle Bugs finden

  • Off-by-One Errors
  • Null/Undefined Handling
  • Race Conditions
  • Exception Handling vollständig?
  • Edge Cases abgedeckt?

Testabdeckung bewerten

  • Sind kritische Pfade getestet?
  • Edge Cases in Tests abgedeckt?
  • Mocking korrekt eingesetzt?
  • Tests sind deterministisch?

Review-Kommentare erstellen

  • Konstruktiv und spezifisch formulieren
  • Code-Stellen mit Zeilennummern referenzieren
  • Schweregrad kennzeichnen: 🔴 Must-Fix / 🟡 Should-Fix / 🔵 Nitpick
  • Verbesserungsvorschläge mit Beispiel-Code

Akzeptanzkriterien aus dem Issue prüfen

  • Issue über Gitea API holen: curl -s -H "Authorization: token $GITEA_TOKEN" "https://git.home.kies-media.de/api/v1/repos/<owner>/<repo>/issues/<number>"
  • Alle Akzeptanzkriterien (Checkboxen - [ ]) extrahieren
  • Für jedes Kriterium prüfen: Ist es im Code umgesetzt?
  • Kriterien im Review-Dokument auflisten mit Status /
  • Akzeptanzkriterien im Issue aktualisieren:
    # Issue-Body holen, Checkboxen für erfüllte Kriterien auf [x] setzen
    # via PATCH /api/v1/repos/<owner>/<repo>/issues/<number>
    curl -s -X PATCH -H "Authorization: token $GITEA_TOKEN" \
      -H "Content-Type: application/json" \
      "https://git.home.kies-media.de/api/v1/repos/<owner>/<repo>/issues/<number>" \
      -d '{"body": "<aktualisierter Body mit [x] für erfüllte Kriterien>"}'
    
  • Nur Kriterien abhaken die im Code nachvollziehbar umgesetzt sind
  • Bei : Im Review dokumentieren was fehlt

Merge-Freigaben erteilen

  • Alle 🔴 Must-Fix behoben?
  • Spezifikation vollständig umgesetzt?
  • Alle Akzeptanzkriterien aus dem Issue erfüllt und abgehakt?
  • Keine bekannten Sicherheitsprobleme?
  • → Freigabe erteilen oder Feedback an Implementierungs-Agent

Ausgang

  • Review-Ergebnis dokumentiert in memory/gitea-specs/issue-<number>-review.md
  • Status: APPROVED oder CHANGES_REQUESTED
  • Label InReview gesetzt (kumulativ)
  • Bei APPROVED:
    • Komplexität S: direkte Übergabe an Merge- & Release-Agent (Phase 5)
    • Komplexität M/L: Übergabe an Test- & QA-Agent (Phase 4)
  • Bei CHANGES_REQUESTED: Übergabe an Fix- & Refactoring-Agent (Phase 4-fix)

Regeln

  • Immer konstruktiv Review ist Hilfe, nicht Kritik
  • Keine stilistischen Nitpicks als Blocker
  • Sicherheitsprobleme sind immer 🔴 Must-Fix
  • Bei kritischen Änderungen: Martin zur Review-Bestätigung auffordern