Claude Code PR-granskningsarbetsflöde för att förhandskontrollera läsbarhet, korrekthet och kantfall, och sedan generera en granskningschecklista och frågor att ställa.

PR-granskningar tar sällan evigheter för att koden är "svår". De tar lång tid eftersom granskaren måste återskapa avsikt, risk och påverkan från en diff som visar förändringar — inte hela bilden.
En liten ändring kan träffa dolda beroenden: döper du om ett fält och en rapport slutar fungera, ändrar du ett standardvärde och beteendet skiftar, justerar du en villkorssats och felhanteringen förändras. Granskningstiden växer när granskaren måste klicka runt för kontext, köra appen lokalt och ställa följdfrågor bara för att förstå vad PR:en ska göra.
Det finns också ett mänskligt mönsterproblem. Folk skummar diffar på förutsägbara sätt: vi fokuserar på den "huvudsakliga" ändringen och missar de tråkiga raderna där buggar gömmer sig (gränskontroller, null-hantering, loggning, rensning). Vi tenderar också att läsa det vi förväntar oss se, så copy-paste-fel och inverterade villkor kan smyga förbi.
En bra förhandsgranskning är inte ett utslag. Det är ett snabbt, strukturerat andra ögonpar som pekar ut var en människa bör sakta ner. Den bästa outputen är:
Vad den inte bör göra: "godkänna" PR:en, hitta på krav eller gissa runtime-beteende utan underlag. Om diffen inte innehåller tillräcklig kontext (förväntade inputs, begränsningar, anropskontrakt) bör förhandsgranskningen säga det och lista exakt vad som saknas.
AI-hjälp är starkast på medelstora PR:er som rör affärslogik eller refaktorer där betydelsen kan gå förlorad. Den är svagare när rätt svar beror på djup organisationsspecifik kunskap (legacy-beteenden, produktionsprestanda, interna säkerhetsregler).
Exempel: en PR som "bara uppdaterar paginering" döljer ofta off-by-one-problem, tomma resultat och missanpassad sortering mellan API och UI. En förhandsgranskning bör ta upp de frågorna innan en människa slösar 30 minuter på att återupptäcka dem.
Behandla Claude som en snabb, petig första granskare — inte personen som bestämmer om PR:en ska släppas. Poängen är att yta problem tidigt: förvirrande kod, dolda beteendeförändringar, saknade tester och kantfall du glömmer när du är nära ändringen.
Ge den vad en rättvis mänsklig granskare skulle behöva:
Om PR:en rör ett känt hög-riskområde, säg det direkt (auth, billing, migrationer, konkurrens).
Be sedan om outputs du kan agera på. En stark förfrågan ser ut så här:
Håll människan i kontroll genom att tvinga tydlighet kring osäkerhet. Be Claude märka fynd som "säkert utifrån diff" respektive "behöver bekräftelse", och citera exakt de rader som utlöste varje oro.
Claude är bara så bra som det du visar den. Om du klistrar in en jättestor diff utan mål eller begränsningar får du generiska råd och missar verkliga risker.
Börja med ett konkret mål och succékriterier. Exempel: "Denna PR lägger till rate limiting på inloggningsendpointen för att minska missbruk. Den får inte ändra responsschemat. Den måste hålla medellatens under 50 ms."
Inkludera sedan bara det som är relevant. Om 20 filer ändrats men bara 3 innehåller logiken, fokusera på de tre. Ta med omgivande kontext när ett utdrag blir missvisande, som funktionssignaturer, nyckeltyper eller konfig som ändrar beteende.
Var också uttrycklig om testförväntningar. Om du vill ha enhetstester för kantfall, ett integrationstest för en kritisk stig eller en manuell UI-genomgång — säg det. Om tester saknas med avsikt, uppge varför.
En enkel "kontextpack" som ofta fungerar bra:
En bra Claude Code PR-granskning fungerar som en tajt loop: ge precis tillräcklig kontext, få tillbaka strukturerade anteckningar och gör dem till åtgärder. Den ersätter inte människor. Den fångar enkla missar innan en kollega spenderar lång tid på att läsa.
Använd samma pass varje gång så resultaten blir förutsägbara:
Efter att du fått anteckningarna, gör om dem till en kort merge-gate:
Merge-checklista (håll den kort):
Avsluta med att be om 3–5 frågor som tvingar tydlighet, till exempel: "Vad händer om API:en returnerar en tom lista?" eller "Är detta säkert vid samtidiga requests?"
Claude är mest hjälpsam när du ger den en fast lins. Utan en rubrik tenderar den att kommentera det som först poppar upp (ofta stilnits) och kan missa det riskfyllda gränsfallet.
En praktisk rubrik:
När du promptar, be om ett kort stycke per kategori och begär "högst risk först." Den ordningen håller människor fokuserade.
Använd en återanvändbar basprompt så resultaten ser lika ut över PR:er. Klistra in PR-beskrivningen och sedan diffen. Om beteendet är användargränssnittsrelaterat, lägg till förväntat beteende i 1–2 meningar.
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 hög-riskändringar (auth, betalningar, behörigheter, migrationer), lägg till explicit tanke åt fel och rollback:
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.
För refaktorer: gör "inget beteendeförändring" till en hård 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.
Om du vill ha en snabb överblick, lägg till en gräns som "Svara under 200 ord." Om du vill ha djup, be om "upp till 10 fynd med resonemang."
Claudes anteckningar blir användbara när du konverterar dem till en kort checklista en människa kan bocka av. Skriv inte om diffen — fånga risker och beslut.
Dela upp punkterna i två hinkar så tråden inte blir en prefensdiskussion:
Måste åtgärdas (blockera merge)
Bra att ha (uppföljningar)
Få med också utrullningsberedskap: säkraste deploy-ordning, vad man ska bevaka efter release, och hur man skulle ångra ändringen.
En förhandsgranskning hjälper bara om den avslutas med ett litet antal frågor som tvingar tydlighet.
Om du inte kan svara på dessa tydligt — pausa merge, strama åt scope eller lägg till bevis.
De flesta fel är processproblem, inte modellproblem.
Om en PR lägger till en ny checkout-endpoint, klistra inte in hela servicen. Klistra in handlern, valideringen, DB-skrivningen och eventuella schemaändringar. Skriv sedan: "Mål: förhindra dubbeldebitering. Icke-mål: refaktorera namn." Du får färre kommentarer och de blir lättare att verifiera.
En liten, realistisk PR: lägg till ett fält "display name" i en inställningsskärm. Den rör validering (server) och UI-text (klient). Den är tillräckligt liten för att resonera om, men innehåller ändå ställen där buggar göms.
Här är slags diff-exempel du skulle klistra in (plus 2–3 meningar kontext som förväntat beteende och relaterade 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" />
Exempel på fynd du vill få tillbaka:
len(displayName) men ser ändå tomma ut. Trimma innan validering.Gör om det till en checklista:
En Claude Code PR-granskning fungerar bäst när den avslutas med några snabba kontroller:
För att se om det ger utdelning, följ två enkla mätvärden i 2–4 veckor: granskningstid (öppnad till första meningsfulla granskning, och öppnad till mergad) och omarbetning (uppföljande commits efter granskning eller hur många kommentarer som krävde kodändringar).
Standardisering slår perfekta prompts. Välj en mall, kräva en kort kontextblock (vad ändrades, varför, hur testa) och kom överens om vad "klart" betyder.
Om ditt team bygger funktioner via chatt-baserad utveckling kan du använda samma arbetsflöde i Koder.ai: generera ändringar, exportera källkoden och bifoga förhandsgranskningschecklistan till PR:en så den mänskliga granskningen fokuserar på de mest riskfyllda delarna.