Przejdź do głównej zawartości

Wykonaj swoje pierwsze zadanie w Codex

Pierwsze zadanie w Codex uruchamia otwarty prompt na wszystkich czterech powierzchniach: w aplikacji desktopowej ChatGPT, interfejsie CLI, rozszerzeniu IDE oraz w środowiskach Cloud. Każda powierzchnia realizuje ten sam cykl eksploracji, analizy, implementacji i testowania, napędzany przez modele takie jak GPT-5.6 Sol i GPT-6 Astra, różniąc się sposobem wizualizacji postępu, bramkowaniem uprawnień w piaskownicy (sandbox) oraz przeglądem diffa.

Ten przewodnik prowadzi przez pierwsze wieloplikowe zadanie w OpenAI Codex: znalezienie luk w obsłudze błędów, implementację poprawek, uruchomienie testów i ocenę funkcji właściwych dla danej powierzchni. Integrację z całym cyklem zespołu opisuje etap Build.

  • Zrealizujesz pełne zadanie obejmujące prompt, wykonanie w piaskownicy i przegląd diffa.
  • Przetestujesz ten sam prompt w aplikacji desktopowej, terminalu CLI, edytorze IDE i w chmurze.
  • Zrozumiesz wpływ polityk zatwierdzania, worktree gita i granic piaskownicy na proces tworzenia kodu.
  • Wykorzystasz szablony promptów do wykrywania błędów, refaktoryzacji i implementacji funkcji.

W ramach przewodnika wykonamy praktyczne zadanie: zlokalizowanie luki w obsłudze wyjątków w trasach API, wdrożenie obsługi błędów oraz zabezpieczenie poprawki dedykowanym testem automatycznym. Ćwiczenie weryfikuje odczyt plików, analizę AST, generowanie kodu, wykonywanie poleceń w piaskownicy oraz śledzenie statusu gita.

Użyj następującego promptu:

Find an error handling gap in this project's API routes: a place where an
exception could crash the server or return a misleading response. Fix it with
proper error handling and add a test that proves the fix works. Run the tests
to confirm they pass.

Prompt kładzie nacisk na mierzalny rezultat. Codex musi zbadać repozytorium, zidentyfikować faktyczny problem, zaimplementować rozwiązanie i przeprowadzić walidację. Jeśli Twój projekt nie posiada tras API, dostosuj prompt do warstwy logiki biznesowej.

Aby wykonać zadanie w aplikacji desktopowej:

  1. Otwórz aplikację ChatGPT w trybie Codex i wybierz katalog swojego projektu.

  2. Kliknij New Thread. Wybierz tryb Worktree, aby odizolować zmiany w osobnym drzewie roboczym gita, lub Local, aby modyfikować bieżący katalog.

  3. Wklej prompt do okna kompozytora i naciśnij Enter.

  4. Obserwuj postęp prac. Aplikacja prezentuje w czasie rzeczywistym odczyt plików, analizę zależności, modyfikacje kodu oraz uruchamianie testów. Przy konfiguracji workspace-write i zatwierdzaniu on-request rutynowe operacje w repozytorium przebiegają bez konieczności potwierdzeń.

  5. Po zakończeniu pracy przejdź do panelu Review, aby ocenić pełny diff.

  6. Użyj zintegrowanego terminala (Cmd+J), aby sprawdzić wyniki testów i przejrzeć zmodyfikowane pliki.

Możliwości aplikacji desktopowej:

  • Wątki równoległe: Uruchamianie równoległych sesji na niezależnych worktree bez konfliktów gałęzi.
  • Izolacja worktree: Zmiany pozostają w izolowanym drzewie gita, nie naruszając głównej gałęzi.
  • Wprowadzanie głosowe: Przytrzymaj Ctrl+M, aby podyktować prompt.
  • Powiadomienia systemowe: Alerty informują o ukończeniu długotrwałych zadań w tle.

Na każdej powierzchni Codex realizuje zadanie w pięciu etapach:

  1. Eksploracja: Codex analizuje strukturę repozytorium, odczytuje konfigurację i mapuje zależności modułów.

  2. Analiza: Wyszukuje brakujące bloki obsługi wyjątków, porównując je ze standardami frameworka.

  3. Implementacja: Modyfikuje pliki źródłowe, wprowadzając walidację danych, bloki try-catch lub handlery błędów.

  4. Testowanie: Tworzy lub aktualizuje specyfikacje testowe i uruchamia runnera w piaskownicy.

  5. Podsumowanie: Zwraca raport zawierający opis wykrytej luki, listę zmienionych plików oraz status testów.

Precyzja wykonania zależy od zawartości pliku AGENTS.md. Sprecyzowanie menedżera pakietów, polecenia testowego (pnpm vitest run) oraz granic architektonicznych zapobiega błędnym domysłom modelu.

Stosuj poniższe szablony w codziennych pracach programistycznych:

Poniższa tabela przedstawia rekomendowany wybór środowiska w zależności od zadania:

Typ zadaniaRekomendowana powierzchniaUzasadnienie
Szybka poprawka błędu w jednym plikuCLI lub rozszerzenie IDEMinimalne przełączanie kontekstu i szybki czas reakcji.
Refaktoryzacja wieloplikowaAplikacja Desktop (tryb Worktree)Czysta izolacja gałęzi i równoległe wątki pracy.
Długotrwała migracjaŚrodowisko CloudDziałanie w tle na niezależnych zasobach obliczeniowych.
Automatyzacja pull requestówCloud + integracja GitHubBezpośrednie generowanie PR wraz z podsumowaniami.
Interaktywne debugowanieTerminal CLI (tryb TUI)Szybkie cofanie kroków klawiszem Esc i rozwidlenia sesji.
Prace nad interfejsem graficznymRozszerzenie IDENatychmiastowy podgląd diffa i bezpośrednia weryfikacja w edytorze.
  • Codex modyfikuje niewłaściwe pliki: Zdefiniuj precyzyjne granice katalogów w pliku AGENTS.md (np. “API routes live in src/routes/, not src/api/”).
  • Testy nie przechodzą po zmianach kodu: Upewnij się, że w AGENTS.md zdefiniowano dokładne polecenie uruchamiania testów (np. npm run test:unit).
  • Codex zapętla się w powtarzanych próbach: Wciśnij Esc w CLI lub zatrzymaj wątek w aplikacji desktopowej. Uruchom prompt ponownie z dodatkowymi ograniczeniami.
  • Zadanie w chmurze wykonuje się zbyt wolno: Zoptymalizuj skrypty inicjalizacyjne środowiska, aby zapewnić cache’owanie zależności między uruchomieniami.
  • Okna zatwierdzania blokują automatyzację: Uruchamiaj CLI z flagami codex --sandbox workspace-write --ask-for-approval on-request, co pozwala na automatyczną pracę w granicach projektu przy zachowaniu kontroli nad systemem.

Aby upewnić się, że zadanie zakończyło się powodzeniem:

  1. Sprawdź zmodyfikowane i nowo utworzone pliki:

    Okno terminala
    git status -s

    Potwierdź, że modyfikacje objęły wyłącznie zamierzone pliki.

  2. Uruchom nowo dodany test:

    Okno terminala
    npm test

    Upewnij się, że wszystkie pakiety testów przechodzą pomyślnie.

  3. Wykonaj weryfikację typów i formatowania:

    Okno terminala
    npm run typecheck && npm run lint

    Upewnij się, że narzędzia nie zwracają błędów.