Przejdź do głównej zawartości

Jak przeglądać pracę Codex i nie zostać wąskim gardłem

Strategia przeglądu pracy Codex rozstrzyga, ile ludzkiej uwagi dostanie zmiana, zanim Codex zacznie pracę, a nie po fakcie. Każde zadanie dostaje klasę ryzyka (niska, średnia, wysoka lub krytyczna), a klasa wyznacza preset uprawnień, dowody, które Codex musi oddać, automatyczny przegląd i osobę zatwierdzającą. Człowiek czyta kod tylko przy zmianach klasy wysokiej i krytycznej.

Ta strona jest dla programistów, którzy prowadzą kilka wątków Codex naraz, i dla tech leadów, którzy ustalają regułę dla zespołu. Pięć wątków kończy się przed obiadem, każdy z wieloplikowym diffem. Jeśli przeczytasz wszystkie, to ty staniesz się wąskim gardłem. Jeśli scalisz je w ciemno, wpadniesz w drugą pułapkę. Raport Faros AI „AI Engineering Report 2026” (kwiecień 2026), oparty na telemetrii 22 000 programistów z platformy Faros, zmierzył wzrost mediany czasu w przeglądzie o 441,5% i o 31,3% więcej pull requestów scalanych bez żadnego przeglądu. Strategia poniżej omija obie pułapki. Polecenia sprawdzono na Codex CLI 0.157.1.

  • Tabelę czterech klas, która przypisuje każdemu zadaniu Codex preset uprawnień, wymagane dowody, automatyczny przegląd i zatwierdzenie.
  • Presety /permissions i flagi CLI, które ograniczają, czego Codex może dotknąć przed startem, więc po fakcie jest mniej do przeglądania.
  • Raport z dowodami, który oddaje każdy wątek, więc selekcję robisz na faktach, a nie na diffie.
  • Rutynę czyszczenia kolejki wielu zakończonych wątków za jednym podejściem.
  • Cztery prompty do skopiowania i sprawdzenie ścieżek, które wyłapuje źle sklasyfikowane zmiany.

Jeśli nie przeglądałeś jeszcze ani jednej zmiany Codex, zacznij od przeglądu zmian Codex przed commitem. Ta strona zakłada tę pętlę i ją skaluje.

Odpowiedź zależy od tego, co zmiana może zepsuć, a nie od rozmiaru diffu. Przypisz klasę na podstawie ścieżek, których zadanie dotknie, zanim napiszesz prompt. To klasy zmian, a nie poziomy dojrzałości; model przeglądu opartego na dowodach wyjaśnia, dlaczego człowiek najpierw czyta dowody, a kod tylko tam, gdzie dowody są słabe.

Klasa ryzykaTypowe zadania CodexUprawnienia przed startemAutomatyczny przeglądKto zatwierdza
NiskaDokumentacja, teksty, poprawki lintera, podbicia wersji patch zależności, generowane klienty APIPreset Default albo --approve-for-me bez nadzorucodex exec review na innym modelu, bez P0 ani P1Ty, na podstawie raportu z dowodami; tech lead co tydzień sprawdza kilka próbek
ŚredniaFunkcja lub poprawka błędu w jednym module z mocnymi testamiPreset Default w worktreeJak niskaJeden recenzent czyta raport, a kod tylko tam, gdzie dowody są słabe
WysokaPubliczne API, biblioteki współdzielone, zmiany międzymodułowe lub wrażliwe na wydajnośćRead Only na plan, potem Default w worktreeJak średnia plus @codex review ze wskazaniem głównego ryzyka na pull requeścieWłaściciel kodu przez CODEOWNERS
KrytycznaUwierzytelnianie, pieniądze, migracje schematu i danych, prywatność oraz wyrocznia: testy, CI, konfiguracja lintera i typówRead Only na plan; implementacja dopiero po akceptacji planu przez człowiekaJak wysoka plus @codex security review przy zmianach w auth, obsłudze wejścia lub sekretachDwie wskazane z nazwiska osoby, które czytają kod, plus przećwiczony rollback

Dwie reguły trzymają tabelę w ryzach. Zadanie dostaje klasę najbardziej ryzykownej ścieżki, której dotyka, więc „mały refaktor”, który edytuje src/auth/, jest krytyczny. A każda zmiana testów lub CI jest krytyczna, bo zmienia znaczenie „zielonego” dla każdej innej zmiany; zobacz ochronę wyroczni.

Zespołową wersję tej tabeli, z torami przeglądu, limitami WIP i rozkładaniem obciążenia między recenzentów, znajdziesz w zarządzaniu kolejką przeglądów agentów.

Kontrola przed startem jest tańsza niż przegląd po fakcie. Zadanie, które nie może pisać poza swoim worktree, albo w fazie planowania nie może pisać wcale, daje diff z mniejszą liczbą miejsc do sprawdzenia.

Selektor /permissions w TUI Codex CLI 0.157.1 oferuje trzy presety. Ich opisy w brzmieniu z binarki 0.157.1:

PresetCo może CodexDo czego
Read Only„Codex can read files in the current workspace. Approval is required to edit files or access the internet.”Planowanie pracy wysokiej i krytycznej; pytania o kod
Default„Codex can read and edit files in the current workspace, and run commands. Approval is required to access the internet or edit other files.”Implementacja pracy niskiej, średniej oraz zaakceptowanej wysokiej lub krytycznej
Full Access„Codex can edit files outside this workspace and access the internet without asking for approval. Exercise caution when using.”Tylko w jednorazowym sandboksie z ograniczoną siecią, nigdy w głównym checkoucie na twoim laptopie

Z terminala te same wybory to flagi codex:

Okno terminala
# Krytyczna lub wysoka: plan w profilu uprawnień tylko do odczytu (beta w 0.157.1)
codex -c default_permissions=":read-only" "Plan the change described in docs/tasks/refund-idempotency.md"
# Średnia i wyżej: implementacja w nowym zarządzanym worktree Git, jeden na wątek
codex --worktree "Implement the approved plan in docs/tasks/refund-idempotency.md"
# Niska, bez nadzoru: prośby o zgodę idą do automatycznego przeglądu w sandboksie workspace-write
codex --approve-for-me "Fix every oxlint warning in src/components/ without changing behavior"

OpenAI zaleca profile uprawnień dla nowych konfiguracji. Według OpenAI profile i starszy system --sandbox „do not compose”, więc wybierz jeden mechanizm na polecenie. Nie dodawaj --sandbox ani --approve-for-me do polecenia, które ustawia default_permissions. Starszy odpowiednik pierwszej linii to codex --sandbox read-only. Kompromisy między profilami, sandboksami i politykami zatwierdzania w różnych narzędziach opisuje strona o uprawnieniach i sandboksowaniu agentów, a mechanikę worktree — worktree w Codex.

Wpisz klasę do samego promptu zadania. Codex wie wtedy, których ścieżek może dotknąć i jakie dowody jest winien, a niezgodność klasy wychodzi na jaw, zanim powstanie jakikolwiek kod.

Gdy kończy się pięć wątków, selekcję robisz na pięciu raportach, a nie na pięciu diffach. Proś za każdym razem o ten sam raport, żeby brakująca linia była widoczna od razu. Pełny schemat manifestu, który powinien nieść pull request, to pakiet dowodów; prompt poniżej to skrócona wersja dla lokalnego wątku. Żeby każdy wątek był winien raport bez wklejania promptu, zapisz ten wymóg w sekcji projektowego AGENTS.md albo w projektowym skillu w .agents/skills/; zobacz konfigurację AGENTS.md w Codex.

Potem sprawdź dwie linie, w których agent najczęściej się myli, bez czytania kodu:

Okno terminala
git diff --stat origin/main...HEAD -- tests/ # czy wątek ruszył testy, o które go nie proszono?
git diff --name-only origin/main...HEAD | grep -E \
'^(src/auth|src/billing|db/migrations|tests|\.github)/|(^|/)(tsconfig[^/]*\.json|\.?oxlintrc[^/]*|eslint[^/]*|vite\.config\.[jt]s)$|\.(test|spec)\.[jt]sx?$'

Uruchom oba polecenia w worktree wątku. Drugie wypisuje każdą ścieżkę krytyczną zmienioną na gałęzi, łącznie z główną konfiguracją lintera, typów i builda oraz testami leżącymi obok kodu źródłowego. Jeśli wypisze cokolwiek dla zadania sklasyfikowanego jako niskie lub średnie, zmień klasę, zanim zaczniesz czytać dalej. Dopasuj wzorzec do ścieżek eskalacji, plików konfiguracyjnych i wzorców nazw testów w swoim repozytorium. Pierwsze polecenie widzi tylko katalog tests/ w katalogu głównym, więc testy obok kodu wyłapuje drugie.

Skieruj każdą klasę do właściwego przeglądu Codex

Dział zatytułowany „Skieruj każdą klasę do właściwego przeglądu Codex”

Każda klasa dokłada warstwę przeglądu do tej poniżej. Zatrzymaj się na warstwie, której wymaga klasa.

  1. Każda klasa: osobny przebieg przeglądu. Uruchom przegląd jako skrypt, żeby wynik trafił do pliku, który szybko przejrzysz:

    Okno terminala
    codex exec review --base origin/main -c review_model=REVIEW_MODEL -o .codex-review.md

    REVIEW_MODEL to identyfikator modelu innego niż ten, który napisał zmianę, wzięty z listy /model; aktualny zestaw modeli jest w przeglądzie modeli. Recenzent działający na modelu autora zwykle ma te same martwe pola. Przegląd oznacza każde znalezisko od P0 do P3; napraw każde P0 i P1, zanim zmiana pójdzie dalej. Jak stroić reguły, na które się powołuje, i jak mierzyć, co wyłapuje, opisuje code review z Codex.

  2. Średnia i wyżej: recenzent czyta raport z dowodami. Kod otwiera tylko tam, gdzie raport jest słaby: zachowanie bez testu, zakwestionowane znalezisko, ścieżka, która cię zaskoczyła.

  3. Wysoka i wyżej: przegląd na pull requeście. Skomentuj @codex review, dopisując krótko ryzyko, które podniosło klasę zmiany, na przykład wsteczną zgodność publicznej trasy. Ochrona gałęzi z opcją „Require review from Code Owners” kieruje zatwierdzenie do właściciela ścieżki.

  4. Krytyczna: skupiony przegląd lokalny, przebieg bezpieczeństwa i dwie osoby czytające kod. codex review czyta własne instrukcje ze stdin, gdy podasz -, więc długą listę kontrolną trzymasz w pliku:

    Okno terminala
    codex review -c review_model=REVIEW_MODEL - < .codex/review-critical.txt

    Flaga zakresu i własny prompt nie łączą się w 0.157.1 (codex review --base main "…" kończy się błędem), więc zakres nazwij w samych instrukcjach. codex exec review przyjmuje też -m, które wprost wybiera model. Na pull requeście dodaj @codex security review, gdy zmienia się uwierzytelnianie, obsługa wejścia lub sekrety (przewodnik OpenAI po integracji z GitHubem, sprawdzony 2026-08-28). Potem dwie wskazane osoby czytają kod, a wdrożenie ma rollback, który ktoś już uruchomił; zobacz automatyzację wdrożeń z Codex.

Te same warstwy w GitHub Actions, z bramką znalezisk Codex działającą w profilu uprawnień tylko do odczytu, opisuje strona Codex w CI/CD.

Wyczyść kolejkę zakończonych wątków Codex za jednym podejściem

Dział zatytułowany „Wyczyść kolejkę zakończonych wątków Codex za jednym podejściem”

Przeglądanie każdego wątku w chwili, gdy się kończy, zamienia dzień w ciąg przerw. Pozwól wątkom się skończyć, a potem czyść kolejkę w kolejności klas.

  1. Wypisz, co czeka. codex agents przegląda wszystkie sesje na lokalnym demonie app-server, a git worktree list pokazuje gałąź każdego wątku. Jeśli pracujesz w aplikacji desktopowej (codex app, tylko macOS i Windows), jej widok wątków opisuje praca z aplikacją desktopową Codex.
  2. Zbierz raporty z dowodami. Wątek bez raportu wraca z promptem o dowody, zanim ktokolwiek cokolwiek przeczyta.
  3. Najpierw niska klasa. Wątek niskiej klasy z czystym raportem, bez P0 i P1 i bez ścieżek krytycznych scalasz na podstawie dowodów.
  4. Średnią grupuj po modułach. Dwa wątki, które dotykają tego samego modułu, przeglądasz razem, więc konflikty wychodzą przed scaleniem, a nie po nim.
  5. Zarezerwuj czas na wysoką i krytyczną. Potrzebują właścicieli innych niż ty; otwórz pull requesty i je przypisz, zamiast trzymać je w swojej kolejce.
  6. Przestań zaczynać. Gdy czeka więcej wątków, niż przejrzysz w mniej więcej jednej sesji pracy, nie uruchamiaj nowych, dopóki kolejka nie opadnie. Zarządzanie kolejką przeglądów zamienia to w limit WIP dla zespołu.

Uruchom tę sesję przez codex -c default_permissions=":read-only", żeby sama selekcja nie mogła zmienić żadnej gałęzi. Zasady dzielenia pracy na tory od początku opisują przepływy wieloagentowe w Codex.

Skąd wiesz, że strategia przeglądu działa, bez czytania każdej linii?

Dział zatytułowany „Skąd wiesz, że strategia przeglądu działa, bez czytania każdej linii?”

Strategia, która przepuszcza błędy, wygląda tak samo jak ta, która działa — dopóki produkcja nie powie inaczej. Co miesiąc śledź cztery liczby dla każdej klasy ryzyka i pozwól im przesuwać klasy w górę lub w dół.

SygnałSkąd go wziąćCo mówiWłaściciel
Przepuszczone defekty i reverty na klasęOznaczaj incydenty i reverty klasą zmiany, która je spowodowałaKlasa, której zmiany przepuszczają defekty, potrzebuje cięższej warstwy przegląduTech lead
Odsetek przeklasyfikowańLicz wątki, w których sprawdzenie ścieżek lub raport podniosły klasęWysoki odsetek oznacza zbyt luźno określony zakres zadańTech lead
Skuteczność recenzenta Codex na podłożonych błędachTest podłożonych błędów ze strony code review z CodexCzy warstwa automatyczna znajduje defekty, na których ci zależyWłaściciel reguł przeglądu
Czas w przeglądzie na klasęZnaczniki czasu pull requestów z twojego hostingu GitCzy praca niskiej klasy faktycznie płynie i gdzie tworzy się kolejkaTech lead

Klasa zmian zasługuje na lżejszy przegląd dopiero po serii scaleń bez revertów i bez przepuszczonych defektów, a traci go po jednym. Te etapy opisuje protokół przenoszenia zaufania. Zatwierdzenie nigdy nie przechodzi na Codex: każde scalenie ma właściciela — człowieka albo skonfigurowany przez ciebie pipeline — a tabela na początku strony mówi, którego.

Co się psuje, gdy skalujesz przegląd Codex według ryzyka?

Dział zatytułowany „Co się psuje, gdy skalujesz przegląd Codex według ryzyka?”

Zadanie niskiej klasy po cichu dotyka ścieżki krytycznej. Prompt na to pozwolił albo Codex poprosił o zgodę, a ktoś kliknął „tak”. Naprawa: uruchamiaj sprawdzenie ścieżek na każdej gałęzi przed przeglądem i zrób z niego wymagany job CI, który pada, gdy ścieżka krytyczna zmienia się bez zatwierdzenia właściciela kodu.

Przegląd nic nie znajduje w dużym diffie. Zakres jest zły: --uncommitted pomija commity, które wątek już zrobił. Naprawa: dla wszystkiego, co żyje na gałęzi, przeglądaj z --base origin/main. Przegląd ścieżki krytycznej przyjmuje własne instrukcje, więc tam nazwij origin/main w pliku instrukcji, jak w kroku 4 kierowania przeglądu.

Recenzent za każdym razem zgadza się z autorem. Przegląd w tej samej sesji dzieli model i kontekst autora. Naprawa: ustaw review_model na inny model i uruchom przegląd w świeżym procesie, jak w krokach kierowania; test podłożonych błędów zostaje dowodem.

Testy przechodzą, bo wątek je zmienił. Każda edycja w tests/ czyni zmianę krytyczną, niezależnie od zadania. Naprawa: najpierw sprawdź git diff --stat na katalogach testów i obejmij testy oraz konfigurację CI plikiem CODEOWNERS.

--approve-for-me zatwierdził więcej, niż się spodziewałeś. Automatyczny przegląd rozstrzyga prośby o zgodę na granicy sandboksa; nie przegląda kodu. Naprawa: zostaw go dla pracy niskiej klasy w sandboksie workspace-write, a do ponowienia pojedynczej odrzuconej akcji używaj /approve, zamiast poszerzać uprawnienia całej sesji.

Kolejka ciągle rośnie. Startuje więcej wątków, niż zdążasz wyczyścić. Naprawa: przestań uruchamiać nowe wątki, tnij zadania na mniejsze (małe partie to jedna z umiejętności w DORA AI Capabilities Model, Google Cloud, 2025-09-23) i przenoś więcej pracy do niskiej klasy tylko przez etapy przenoszenia zaufania, nigdy przez pomijanie przeglądu.

Flaga uprawnień zgłasza błąd albo nic nie zmienia. Profil i --sandbox się nie łączą, a codex -a w 0.157.1 przyjmuje tylko on-request i never. Naprawa: jeden mechanizm na polecenie, a z codex exec usuń -a: nie ma takiej flagi i i tak działa z zatwierdzaniem never.

Używasz też innego agenta? Ta sama strategia działa z innymi mechanizmami kontroli w automatyzacji przeglądów z Claude Code i w kierowaniu i zatwierdzaniu PR-ów w Cursor.