Obserwujesz, jak AI przepisuje twój moduł uwierzytelniania. Wygląda pewnie. Kod płynie. Piętnaście zmodyfikowanych plików, 800 zmienionych linii. Zaakceptowałeś wszystko, bo “wyglądało dobrze”. Dwa tygodnie później odkrywasz, że AI cicho usunęło sprawdzanie ochrony CSRF, które było w oryginalnym kodzie. Nikt tego nie wychwycił, bo nikt naprawdę nie przeglądał.
Druga skrajność jest równie marnotrawna: zatwierdzasz każdy pojedynczy zapis pliku, przeglądasz każdą linię w momencie generowania i spędzasz więcej czasu na nadzorowaniu AI, niż zajęłoby ci samodzielne napisanie kodu.
Efektywna współpraca człowiek-AI to ani ślepe zaufanie, ani ciągły nadzór. To przemyślany zestaw wzorców określających, kiedy angażować się głęboko, kiedy pozwolić AI pracować autonomicznie i jak efektywnie przeglądać.
Twoja rola zmienia się w trakcie sesji programistycznej. Rozpoznanie, w którym trybie powinieneś być, oszczędza czas i wcześnie wychwytuje problemy.
Tryb architekta
Definiujesz podejście. To dzieje się podczas planowania, gdy piszesz wymagania, przeglądasz propozycje i podejmujesz decyzje architektoniczne. AI proponuje, ty decydujesz. Spędź tu najwięcej czasu — błędy w architekturze są najdroższe do naprawienia.
Tryb nadzorcy
AI implementuje, a ty monitorujesz. Obserwujesz strumień zmian, szukasz czerwonych flag i jesteś gotowy nacisnąć Escape, jeśli coś pójdzie nie tak. Nie musisz rozumieć każdej linii w czasie rzeczywistym, ale powinieneś zauważyć, gdy AI modyfikuje pliki, których nie powinno dotykać, lub obiera podejście, na które się nie umówiłeś.
Tryb recenzenta
AI ukończyło zadanie. Przeglądasz całość zmiany, uruchamiasz testy i decydujesz, czy commitować. Tu wychwycisz subtelne problemy: luki bezpieczeństwa, problemy wydajnościowe, brakujące przypadki brzegowe i naruszenia konwencji zespołu.
Escape zatrzymuje agenta w trakcie akcji, zachowując kontekst
Checkpointy pozwalają cofnąć się do dowolnego wcześniejszego stanu
Tryb przeglądania pokazuje wszystkie oczekujące zmiany przed ich zastosowaniem
Background Agent uruchamia zadania asynchronicznie, a ty pracujesz nad czymś innym, z przeglądem przed scaleniem
Before you start implementing, list all the files you plan to modify.
I want to verify the scope before you begin.
Użyj widoku diff w Cursor do przeglądania zmian plik po pliku po zakończeniu pracy AI. Akceptuj lub odrzucaj zmiany poszczególnych plików zamiast akceptować wszystko na raz.
Claude Code zapewnia szczegółową kontrolę:
Escape zatrzymuje Claude w trakcie akcji
Escape + Escape otwiera menu cofania do przywrócenia wcześniejszego stanu
Plan Mode (Shift+Tab) zapobiega wszelkim modyfikacjom plików
System uprawnień wymaga zatwierdzenia zapisu plików i komend
/compact podsumowuje kontekst, gdy sesja się wydłuża
Implement the rate limiter from the plan. After each file you modify,
stop and tell me what you changed and why. Wait for my approval
before moving to the next file.
Dla maksymalnej autonomii z zachowaniem bezpieczeństwa użyj trybu sandbox Claude Code (/sandbox). Claude może pracować swobodnie w granicach systemu plików i sieci, które zdefiniujesz.
Codex oferuje przegląd na wielu poziomach:
Przegląd w aplikacji pokazuje kompletne diffy przed scaleniem do twojego brancha
Przegląd inline w IDE pozwala akceptować lub odrzucać poszczególne zmiany
Tryby zatwierdzania kontrolują, ile autonomii ma Codex (on-request, on-failure, never)
Wątki cloudowe działają w izolowanych środowiskach, więc nic nie dotyka twojego lokalnego kodu, dopóki nie przejrzysz
Implement the rate limiter. Show me the full diff when done.
Do not push or merge until I review.
Podejście Codex oparte na worktree oznacza, że AI pracuje na oddzielnej kopii twojego kodu. Przeglądasz i scalasz zmiany jawnie, podobnie jak przy przeglądaniu PR.
Przegląd kodu generowanego przez AI różni się od przeglądania kodu ludzkiego. AI nie męczy się, nie chodzi na skróty i nie ma gorszych dni — ale ma systematyczne martwe punkty. Skup swój przegląd na tych obszarach:
Sprawdzenie zakresu. Czy AI zmodyfikowało tylko pliki, które powinno? Uruchom git diff --stat, żeby zobaczyć pełny obraz przed zagłębieniem się w poszczególne pliki.
Usunięty kod. Każdy kod, który AI usunęło, powinien być uzasadniony. Usunięcia są zmianami najwyższego ryzyka, bo łatwo je przeoczyć w diffie.
Bezpieczeństwo. Szukaj zakodowanych na stałe sekretów, brakującej walidacji danych wejściowych, osłabionego uwierzytelniania i niezaescapowanych danych użytkownika. Modele AI są trenowane na kodzie, który często nie stosuje najlepszych praktyk bezpieczeństwa.
Obsługa błędów. Sprawdź, czy błędy są obsługiwane, a nie cicho połykane. Szukaj pustych bloków catch, brakujących sprawdzeń null i zignorowanych wartości zwracanych.
Pokrycie testami. Czy nowe testy są sensowne, czy AI napisało testy, które przechodzą trywialnie? Sprawdź, czy asercje są konkretne i czy przypadki brzegowe są pokryte.
Najbardziej produktywni programiści korygują kurs wcześnie. Delikatna korekta po pierwszym pliku jest tańsza niż pełne przepisanie po piętnastu plikach.
Stop. The approach you're taking with the notification service
won't work because it doesn't account for our message queue.
Let me redirect: instead of direct database writes, use the
existing event bus in @src/services/eventBus.ts. Read that file
first, then revise your approach.
Jeśli Cursor zaszedł za daleko w złą stronę, użyj checkpointów do cofnięcia do ostatniego dobrego stanu, zamiast ręcznie cofać zmiany.
Undo that last change. The notification service should use the
event bus pattern, not direct database writes. Read
src/services/eventBus.ts for the pattern we use.
Jeśli kontekst sesji jest zaśmiecony nieudanymi podejściami, użyj /clear i zacznij od nowa z lepszym promptem. Czysty kontekst z dobrym promptem zawsze wygrywa z zanieczyszczonym kontekstem i poprawkami.
W aplikacji Codex możesz dodawać dalsze prompty, żeby przekierować:
Change approach: use the event bus pattern from
src/services/eventBus.ts instead of direct database writes.
Revert the notification service changes and start over with
the event bus approach.
Przy wątkach cloudowych możesz porzucić wątek całkowicie i rozpocząć nowy ze zmienionym promptem. Praca oryginalnego wątku jest czysto odrzucana.
Stajesz się wąskim gardłem. Jeśli spędzasz więcej czasu na zatwierdzaniu poszczególnych zapisów plików, niż AI spędza na ich generowaniu, to nadmierny nadzór. Grupuj przegląd — pozwól AI ukończyć zadanie, a następnie przejrzyj cały diff.
Ufasz zbyt mocno. Jeśli znajdujesz błędy na produkcji, które pochodzą z kodu generowanego przez AI, uszczelnij proces przeglądów. Dodaj obowiązkowe progi pokrycia testami. Użyj wzorca pisarz/recenzent z dwoma oddzielnymi sesjami.
AI ciągle odchodzi od planu. Jeśli korekty kursu nie są skuteczne, problem prawdopodobnie leży w jakości promptu lub przeciążeniu kontekstu. Odwołuj się jawnie do pliku planu w każdym prompcie. Utrzymuj sesje skupione na pojedynczych zadaniach.
Zmęczenie przeglądem. Przeglądanie 500 linii kodu generowanego przez AI jest wyczerpujące. Podziel duże zmiany na wiele commitów, każdy przeglądany niezależnie. Użyj promptu samoprzeglądu AI, żeby wstępnie przefiltrować problemy, zanim sam spojrzysz na kod.