Workflow przeglądu PR z Claude Code: wstępne sprawdzenie czytelności, poprawności i przypadków brzegowych, a potem wygenerowanie checklisty recenzenta i pytań do autora.

Przeglądy PR rzadko trwają wieczność, ponieważ kod jest „trudny”. Trwają tak długo, ponieważ recenzent musi odtworzyć intencję, ryzyko i wpływ na podstawie diffu, który pokazuje tylko zmiany, a nie całą historię.
Niewielka edycja może uderzyć w ukryte zależności: zmiana nazwy pola i raport przestaje działać, zmiana wartości domyślnej i zachowanie się przesuwa, poprawka warunku i zmienia się obsługa błędów. Czas przeglądu rośnie, gdy recenzent musi klikać wokół, by znaleźć kontekst, uruchamiać aplikację lokalnie i zadawać pytania uzupełniające tylko po to, by zrozumieć, co PR ma robić.
Jest też problem z ludzkim wzorcem przeglądania. Ludzie przelatują po diffach w przewidywalny sposób: skupiamy się na „głównej” zmianie i pomijamy nudne linie, gdzie chowają się błędy (sprawdzenia graniczne, obsługa nulli, logowanie, sprzątanie). Mamy też tendencję do czytania tego, co spodziewamy się zobaczyć, więc błędy typu copy-paste i odwrócone warunki mogą przejść niezauważone.
Dobry wstępny przegląd nie wydaje wyroku. To szybkie, ustrukturyzowane drugie spojrzenie, które wskazuje, gdzie człowiek powinien zwolnić. Najlepszy wynik to:
Czego nie powinno robić: „zatwierdzać” PR, wymyślać wymagań lub zgadywać zachowanie w czasie wykonywania bez dowodów. Jeśli diff nie zawiera wystarczającego kontekstu (oczekiwane wejścia, ograniczenia, kontrakty wywołujące), wstępny przegląd powinien to jasno wskazać i wymienić dokładnie, czego brakuje.
Wsparcie AI jest najsilniejsze przy średnich PR-ach, które dotykają logiki biznesowej lub refaktorów, gdzie znaczenie może się zgubić. Jest słabsze, gdy właściwa odpowiedź zależy od głębokiej, specyficznej wiedzy organizacyjnej (zachowania legacy, wydajność produkcyjna, wewnętrzne zasady bezpieczeństwa).
Przykład: PR, który „tylko aktualizuje paginację”, często kryje błędy o przesunięciu o jeden, puste wyniki i niedopasowane sortowanie między API a UI. Wstępny przegląd powinien wypunktować te pytania zanim człowiek straci 30 minut na ich ponowne odkrywanie.
Traktuj Claude’a jak szybkie, wybredne pierwsze spojrzenie, a nie osobę decydującą, czy PR trafi do produkcji. Celem jest wczesne wykrycie problemów: mylący kod, ukryte zmiany zachowania, brakujące testy i przypadki brzegowe, o których zapomnisz będąc blisko zmiany.
Daj mu to, czego uczciwy recenzent by potrzebował:
Jeśli PR dotyka znanego obszaru wysokiego ryzyka, zaznacz to na początku (autoryzacja, rozliczenia, migracje, współbieżność).
Następnie poproś o rezultaty, na które możesz zareagować. Mocna prośba wygląda tak:
Utrzymuj człowieka w roli decydenta, wymuszając jasność co do niepewności. Poproś Claude’a, aby oznaczył ustalenia jako „pewne na podstawie diffu” vs „wymaga potwierdzenia” oraz cytował dokładne linie, które wywołały każde zastrzeżenie.
Claude jest tak dobry, jak materiał, który mu pokażesz. Jeśli wkleisz gigantyczny diff bez celu i ograniczeń, dostaniesz ogólne porady i przegapisz realne ryzyka.
Zacznij od konkretnego celu i kryteriów sukcesu. Na przykład: „Ten PR dodaje rate limiting do endpointu logowania, aby ograniczyć nadużycia. Nie powinien zmieniać kształtu odpowiedzi. Musi utrzymać średnie opóźnienie poniżej 50 ms.”
Następnie dołącz tylko to, co istotne. Jeśli zmieniło się 20 plików, ale tylko 3 zawierają logikę, skup się na nich. Dołącz kontekst otaczający, gdy fragment może wprowadzać w błąd, np. sygnatury funkcji, kluczowe typy lub konfiguracja zmieniająca zachowanie.
Na koniec bądź wprost w kwestii oczekiwań testowych. Jeśli chcesz testy jednostkowe dla przypadków brzegowych, test integracyjny dla krytycznej ścieżki lub ręczne sprawdzenie UI, powiedz to. Jeśli testy są celowo brakujące, wyjaśnij dlaczego.
Prosty „pakiet kontekstowy”, który dobrze działa:
Dobry przegląd Claude Code PR działa jako ciasna pętla: podaj wystarczający kontekst, otrzymaj ustrukturyzowane notatki, a potem przekształć je w działania. Nie zastępuje ludzi. Wyłapuje łatwe przeoczenia zanim kolega poświęci długi czas na czytanie.
Używaj tych samych przejść za każdym razem, aby wyniki były przewidywalne:
Po otrzymaniu notatek zamień je w krótką bramkę przed scaleniem:
Checklista do scalenia (krótko):
Zakończ prosząc o 3–5 pytań, które wymuszają jasność, np. „Co się stanie, jeśli API zwróci pustą listę?” albo „Czy to jest bezpieczne przy współbieżnych żądaniach?”
Claude jest najbardziej pomocny, gdy dasz mu stałą soczewkę. Bez rubryki ma tendencję do komentowania pierwszych zauważonych rzeczy (często drobiazgów stylu) i może przegapić jeden ryzykowny przypadek brzegowy.
Praktyczna rubryka:
Gdy wysyłasz zapytanie, poproś o jeden krótki akapit na kategorię i poproś „najpierw najwyższe ryzyko”. To porządkowanie skupia uwagę ludzi.
Używaj powtarzalnego szablonu bazowego, aby wyniki wyglądały podobnie między PR-ami. Wklej opis PR, potem diff. Jeśli zachowanie dotyka użytkownika, dodaj oczekiwane zachowanie w 1–2 zdaniach.
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.
Dla zmian wysokiego ryzyka (auth, płatności, uprawnienia, migracje) dodaj myślenie o awariach i rollbacku:
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.
Dla refaktorów, uczynienie „braku zmiany zachowania” regułą twardą:
This PR is a refactor. Assume behavior must be identical.
- Flag any behaviour 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.
Jeśli chcesz szybkiego przeglądu, dodaj limit jak „Odpowiedz w mniej niż 200 słowach.” Jeśli chcesz głębi, poproś o „do 10 ustaleń z uzasadnieniem.”
Notatki Claude’a stają się użyteczne, gdy zamienisz je w krótką checklistę, którą człowiek może zamknąć. Nie powtarzaj diffu. Zapisz ryzyka i decyzje.
Podziel elementy na dwa koszyki, aby w wątku nie doszło do debat o preferencjach:
Do naprawienia (blokuje scalenie)
Miłe do posiadania (follow-upy)
Zapisz też gotowość do rolloutu: najbezpieczniejsza kolejność wdrożenia, czego pilnować po release i jak cofnąć zmianę.
Wstępny przegląd pomaga tylko wtedy, gdy kończy się małym zbiorem pytań wymuszających jasność.
Jeśli nie potrafisz odpowiedzieć na te pytania prostymi słowami, wstrzymaj scalenie i doprecyzuj zakres lub dodaj dowód.
Większość awarii to problemy procesowe, nie modelowe.
Jeśli PR dodaje endpoint checkout, nie wklej całego serwisu. Wklej handler, walidację, zapis do DB i wszelkie zmiany schematu. Następnie powiedz: „Cel: zapobiec podwójnym opłatom. Niecel: refaktoryzacja nazw.” Otrzymasz mniej komentarzy, a te które będą, łatwiej będzie zweryfikować.
Mały, realistyczny PR: dodanie pola „display name” do ekranu ustawień. Dotyka walidacji (server) i tekstu UI (client). Jest na tyle mały, że można go rozumieć, ale wciąż pełen miejsc, gdzie mogą się czaić błędy.
Oto fragmenty diffu, które warto wkleić (plus 2–3 zdania kontekstu jak oczekiwane zachowanie i powiązane tickety):
- 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\" />
Przykładowe ustalenia, które chciałbyś dostać:
len(displayName), ale nadal wyglądają na puste. Przytnij przed walidacją.Zamień to na checklistę:
Przegląd Claude Code PR działa najlepiej, gdy kończy się kilkoma szybki sprawdzeniami:
Aby sprawdzić, czy się opłaca, monitoruj przez 2–4 tygodnie dwa proste wskaźniki: czas przeglądu (od otwarcia do pierwszej sensownej recenzji i od otwarcia do scalenia) oraz przeróbki (dodatkowe commity po recenzji albo ile komentarzy wymagało zmian w kodzie).
Standaryzacja bije idealne prompty. Wybierz jeden szablon, wymagaj krótkiego bloku kontekstowego (co się zmieniło, dlaczego, jak testować) i uzgodnij, co oznacza „gotowe”.
Jeśli twój zespół buduje funkcje przez chat-based development, możesz zastosować ten sam workflow wewnątrz Koder.ai: generuj zmiany, eksportuj źródła, a potem dołącz wstępną checklistę do PR, aby ludzki przegląd skupił się na najbardziej ryzykownych częściach.