Claude Code PR-Review-Workflow: Diffs vor der Review auf Lesbarkeit, Korrektheit und Randfälle prüfen, dann eine Reviewer-Checkliste und Fragen erstellen.

PR-Reviews dauern selten ewig, weil der Code „schwierig“ ist. Sie dauern so lange, weil der Reviewer aus einem Diff, das nur Änderungen zeigt, nicht die Absicht, die Risiken und die Auswirkungen rekonstruieren kann.
Eine kleine Änderung kann versteckte Abhängigkeiten treffen: ein Feld umbenennen und ein Bericht bricht, ein Default ändern und das Verhalten verschiebt sich, eine Bedingung anpassen und die Fehlerbehandlung ändert sich. Die Review-Zeit wächst, wenn der Reviewer überall klicken muss, die App lokal starten muss und Nachfragen stellen muss, nur um zu verstehen, was der PR erreichen soll.
Es gibt außerdem ein menschliches Musterproblem. Menschen überfliegen Diffs auf vorhersehbare Weise: Wir konzentrieren uns auf die „Haupt“-Änderung und übersehen die langweiligen Zeilen, in denen Bugs versteckt sind (Grenzprüfungen, Null-Behandlung, Logging, Aufräumen). Wir lesen auch oft, was wir erwarten zu sehen, sodass Copy-Paste-Fehler und invertierte Bedingungen durchrutschen können.
Eine gute Vorab-Prüfung ist kein Urteil. Sie ist ein schneller, strukturierter zweiter Blick, der zeigt, wo ein Mensch langsamer werden sollte. Das beste Ergebnis ist:
Was es nicht tun sollte: den PR „freigeben“, Anforderungen erfinden oder Laufzeitverhalten ohne Belege raten. Wenn der Diff nicht genug Kontext enthält (erwartete Eingaben, Einschränkungen, Aufruferverträge), sollte die Vorab-Prüfung genau das sagen und auflisten, was fehlt.
KI-Hilfe ist am stärksten bei mittelgroßen PRs, die Geschäftslogik oder Refactorings betreffen, wo Bedeutung verloren gehen kann. Sie ist schwächer, wenn die richtige Antwort tief organisationsspezifisches Wissen erfordert (Legacy-Verhalten, Produktions-Performance-Eigenheiten, interne Sicherheitsregeln).
Beispiel: Ein PR, der „nur die Pagination aktualisiert“, verbirgt oft Off-by-One-Probleme, leere Ergebnisse und nicht übereinstimmende Sortierung zwischen API und UI. Eine Vorab-Prüfung sollte diese Fragen aufwerfen, bevor ein Mensch 30 Minuten damit verbringt, sie neu zu entdecken.
Behandle Claude wie einen schnellen, pingeligen Erstprüfer, nicht wie die Person, die entscheidet, ob der PR ausgeliefert wird. Ziel ist es, Probleme früh zu entdecken: verwirrenden Code, versteckte Verhaltensänderungen, fehlende Tests und Randfälle, die man vergisst, wenn man nah an der Änderung dran ist.
Gib ihm, was ein fairer menschlicher Reviewer benötigen würde:
Wenn der PR einen bekannten Hochrisikobereich berührt, sag das gleich vorneweg (Auth, Abrechnung, Migrationen, Concurrency).
Fordere dann Ergebnisse an, die du umsetzen kannst. Eine starke Anfrage sieht so aus:
Halte den Menschen in der Verantwortung, indem du Klarheit über Unsicherheiten erzwingst. Bitte Claude, Funde als „aus dem Diff sicher“ vs. „muss bestätigt werden“ zu kennzeichnen und die genauen Zeilen zu zitieren, die jeden Punkt ausgelöst haben.
Claude ist nur so gut wie das, was du ihm zeigst. Wenn du einen riesigen Diff ohne Ziel oder Einschränkungen einfügst, bekommst du allgemeine Ratschläge und verpasst die echten Risiken.
Fang mit einem konkreten Ziel und Erfolgskriterien an. Zum Beispiel: „Dieser PR fügt Rate-Limiting zum Login-Endpoint hinzu, um Missbrauch zu reduzieren. Er darf die Antwortstruktur nicht ändern. Er muss die durchschnittliche Latenz unter 50 ms halten."
Behalte danach nur das, was relevant ist. Wenn 20 Dateien geändert wurden, aber nur 3 die Logik enthalten, konzentriere dich auf diese. Füge Kontext hinzu, wenn ein Ausschnitt irreführend wäre, wie Funktionssignaturen, wichtige Typen oder Konfigurationen, die das Verhalten ändern.
Sei schließlich explizit bei den Test-Erwartungen. Wenn du Unit-Tests für Randfälle willst, einen Integrationstest für einen kritischen Pfad oder einen manuellen UI-Check, sag es. Wenn Tests absichtlich fehlen, erkläre warum.
Ein einfaches „Context-Pack“, das gut funktioniert:
Eine gute Claude Code PR-Review funktioniert als enger Loop: gib gerade genug Kontext, erhalte strukturierte Notizen zurück und verwandle sie dann in Maßnahmen. Sie ersetzt keine Menschen. Sie fängt einfache Fehler bevor ein Kollege viel Zeit mit Lesen verbringt.
Verwende bei jeder Review dieselben Durchläufe, damit die Ergebnisse vorhersehbar bleiben:
Nachdem du Notizen erhalten hast, verwandle sie in ein kurzes Merge-Gate:
Merge-Checkliste (kurz halten):
Schließe mit 3 bis 5 Fragen ab, die Klarheit erzwingen, wie „Was passiert, wenn die API eine leere Liste zurückgibt?“ oder „Ist das unter konkurrierenden Anfragen sicher?"
Claude ist am hilfreichsten, wenn du ihm eine feste Linse gibst. Ohne Rubrik kommentiert er oft das, was als Erstes auffällt (häufig Stil-Nits) und kann den einen riskanten Grenzfall übersehen.
Eine praktische Rubrik:
Wenn du promptest, fordere einen kurzen Absatz pro Kategorie an und bitte um „höchstes Risiko zuerst“. Diese Reihenfolge hält Menschen fokussiert.
Verwende eine wiederverwendbare Basisvorlage, damit Ergebnisse über PRs hinweg gleich aussehen. Füge die PR-Beschreibung dann den Diff an. Wenn Verhalten nutzerseitig ist, ergänze erwartetes Verhalten in 1–2 Sätzen.
You are doing a pre-review of a pull request.
Context
- Repo/service: <name>
- Goal of change: <1-2 sentences>
- Constraints: <perf, security, backward compatibility, etc>
Input
- PR description:
<...>
- Diff (unified diff):
<...>
Output format
1) Summary (max 4 bullets)
2) Readability notes (nits + suggested rewrites)
3) Correctness risks (what could break, and why)
4) Edge cases to test (specific scenarios)
5) Reviewer checklist (5-10 checkboxes)
6) Questions to ask the author before merge (3-7)
Rules
- Cite evidence by quoting the relevant diff lines and naming file + function/class.
- If unsure, say what info you need.
Für Hochrisiko-Änderungen (Auth, Zahlungen, Berechtigungen, Migrationen) füge explizites Failure- und Rollback-Denken hinzu:
Extra focus for this review:
- Security/privacy risks, permission bypass, data leaks
- Money/credits/accounting correctness (double-charge, idempotency)
- Migration safety (locks, backfill, down path, runtime compatibility)
- Monitoring/alerts and rollback plan
Return a “stop-ship” section listing issues that should block merge.
Bei Refactors mache „kein Verhaltenswechsel“ zur harten Regel:
This PR is a refactor. Assume behavior must be identical.
- Flag any behavior change, even if minor.
- List invariants that must remain true.
- Point to the exact diff hunks that could change behavior.
- Suggest a minimal test plan to confirm equivalence.
Wenn du einen schnellen Überblick willst, füge ein Limit wie „Antworte in unter 200 Wörtern“ hinzu. Wenn du Tiefe willst, bitte um „bis zu 10 Findings mit Begründung."
Claude’s Notizen werden nützlich, wenn du sie in eine kurze Checkliste verwandelst, die ein Mensch abarbeiten kann. Wiederhole nicht den Diff. Erfasse Risiken und Entscheidungen.
Teile Items in zwei Gruppen, damit das Thread nicht in Präferenz-Debatten ausartet:
Must-fix (Merge blockieren)
Nice-to-have (Follow-ups)
Erfasse außerdem Rollout-Bereitschaft: sicherste Deploy-Reihenfolge, worauf nach Release zu achten ist und wie du die Änderung rückgängig machst.
Eine Vorab-Prüfung hilft nur, wenn sie mit einer kleinen Menge Fragen endet, die Klarheit erzwingen.
Wenn du diese Fragen nicht in klaren Worten beantworten kannst, pausiere den Merge und verschmäler den Scope oder füge Belege hinzu.
Die meisten Fehler sind Prozess-Probleme, nicht Modell-Probleme.
Wenn ein PR einen neuen Checkout-Endpoint hinzufügt, füge nicht den ganzen Service ein. Füge den Handler, Validierung, DB-Write und Schema-Änderungen ein. Dann schreibe: „Ziel: doppelte Belastungen verhindern. Nicht-Ziele: Namens-Refactor.“ Du bekommst weniger Kommentare, und die Kommentare sind leichter zu überprüfen.
Ein kleines, realistisch wirkendes PR: Füge ein „display name“-Feld zu einem Einstellungen-Screen hinzu. Es berührt die Validierung (Server) und UI-Texte (Client). Es ist klein genug, um es zu überblicken, aber enthält trotzdem Stellen, wo Bugs versteckt sind.
Hier sind die Diff-Snippets, die du einfügen würdest (plus 2–3 Sätze Kontext wie erwartetes Verhalten und verwandte Tickets):
- if len(name) == 0 { return error("name required") }
+ if len(displayName) < 3 { return error("display name too short") }
+ if len(displayName) > 30 { return error("display name too long") }
- <TextInput label="Name" value={name} />
+ <TextInput label="Display name" value={displayName} helperText="Shown on your profile" />
Beispiele für Findings, die du zurückhaben willst:
len(displayName)-Prüfung, sehen aber trotzdem leer aus. Vor der Validierung trimmen.Verwandle das in eine Checkliste:
Eine Claude Code PR-Review endet am besten mit ein paar schnellen Checks:
Um zu prüfen, ob es sich lohnt, tracke zwei einfache Metriken für 2–4 Wochen: Review-Zeit (öffnet bis erste sinnvolle Review und öffnet bis Merge) und Nacharbeit (Follow-up-Commits nach Review oder wie viele Kommentare Code-Änderungen erforderten).
Standardisierung schlägt perfekte Prompts. Wähle eine Vorlage, verlange einen kurzen Kontext-Block (was sich ändert, warum, wie zu testen) und einigt euch auf eine Definition von „done“.
Wenn dein Team Features durch Chat-basiertes Development baut, kannst du denselben Workflow in Koder.ai anwenden: generiere Änderungen, exportiere den Quellcode und hänge dann die Vorab-Checkliste an den PR, damit die menschliche Review auf die riskantesten Teile fokussiert bleibt.