Przejdź do głównej zawartości

Polecenie /goal daje agentowi kodującemu cel ze sprawdzalną linią mety i utrzymuje go w pracy tura po turze, dopóki cel nie zostanie spełniony, nie zatrzyma go budżet lub limit albo dopóki go nie wyczyścisz. Claude Code, Codex i Cursor mają /goal, ale różnią się tym, kto orzeka o zakończeniu pracy, a od tego zależy, na ile możesz ufać wynikowi.

Ta strona jest dla programistów, którzy prowadzą długie sesje z agentem, i dla tech leadów, którzy chcą, żeby takie sesje kończyły się dowodami. Od trzech godzin prowadzisz migrację. Agent kończy turę, przeglądasz diff, wpisujesz „kontynuuj”, a on kończy kolejną. Linia mety jest oczywista („wszystkie miejsca wywołań zmigrowane, wszystkie testy zielone”), a mimo to każdy krok czeka, aż naciśniesz Enter.

  • Zestawienie, jak /goal działa w Claude Code, Codeksie i Cursorze oraz kto w każdym z nich orzeka „gotowe”
  • Polecenia do uruchamiania, podglądu, wstrzymywania i czyszczenia celu w każdym narzędziu
  • Trzy cele do skopiowania, które kończą się czysto, oraz prompt audytu zakończonego przebiegu
  • Czterokrokową kontrolę, która dowodzi wyniku bez czytania każdej zmienionej linii
  • Tabelę awarii: co zatrzymuje lub oszukuje przebieg z celem i jak z tego wyjść

Zwykła tura agenta kończy się, gdy model uzna, że powiedział dość. /goal zastępuje to warunkiem i pętlą: agent planuje krok, wprowadza zmianę, uruchamia twoje sprawdzenia, a potem „coś” pyta: „czy warunek jest spełniony?”. Jeśli nie, następna tura startuje bez ciebie.

Tym „czymś” narzędzia się różnią:

Claude CodeCodexCursor
Kto orzeka „gotowe”Osobny mały, szybki model (domyślnie Haiku na Claude API) czyta transkrypt po każdej turzeTen sam agent, który wykonuje pracę, przeprowadza wbudowany audyt ukończenia i sam oznacza cel jako zakończonyNieudokumentowane (sprawdzone 28.08.2026)
Werdyktyniespełniony · spełniony · niemożliwycomplete · blocked (agent); paused (ty); stalled, usage-limited, budget-limited (środowisko uruchomieniowe)—
Sterowanie/goal <warunek>, /goal, /goal clear/goal <cel>, /goal, /goal edit, /goal pause, /goal resume, /goal clear/goal [cel]
Kończy się sam, gdycel jest spełniony albo uznany za niemożliwy (cel usunięty); wystąpi błąd, który musisz naprawić (cel usunięty); wykrycie zastoju albo limit użycia wstrzymuje go, a cel pozostaje ustawionyagent oznaczy cel jako complete; ta sama blokada powtórzy się w trzech kolejnych turach (blocked); wyczerpie się limit użycia albo budżet tokenów celu—
Bez próśb o zatwierdzenieclaude -p "/goal …"Sesja interaktywna z --approve-for-me (w codex exec 0.157.1 nie potwierdzono bezobsługowej formy /goal)Sprawdź w swoim buildzie
Dostępne odv2.1.139goals stabilne i domyślnie włączone w 0.157.119.08.2026, z adnotacją „Rolling out” (nadal, sprawdzone 12.10.2026)

Źródła: dokumentacja /goal w Claude Code (sprawdzone 26.09.2026, CLI 2.1.283); w Codeksie codex features list i prompty celu wbudowane w binarkę codex-cli 0.157.1 (sprawdzone 26.09.2026); referencja poleceń CLI Cursora (sprawdzone 28.08.2026).

Wynikają z tego dwie rzeczy. W Claude Code ewaluator nie uruchamia poleceń ani nie czyta plików: ocenia wyłącznie to, co agent wypisał. W Codeksie sędzia i wykonawca to ten sam model, więc nawet dobrze sformułowany audyt pozostaje samooceną. W Cursorze nic udokumentowanego w ogóle nie sprawdza celu. We wszystkich trzech niezależny dowód musi przyjść z zewnątrz: z polecenia testowego, hooka albo CI. Sekcja o dowodzie poniżej pokazuje, jak to zrobić.

  1. Najpierw wybierz tryb uprawnień. Cel nie zmienia trybu uprawnień, więc sesja w trybie Manual zatrzyma się na pierwszym niezatwierdzonym npm test. Sesje interaktywne od v2.1.283 (oba kanały wydań w dniu 2026-10-12) startują w trybie auto, chyba że ustawienia go wyłączają albo model go nie obsługuje. claude -p startuje w trybie Manual, poza zewnętrznymi dostawcami i wyłączoną telemetrią, gdzie od v2.1.285 startuje w trybie auto. Zobacz uprawnienia, sandboksy i tryby zatwierdzania.

  2. Ustaw cel. Wpisz /goal i warunek (do 4000 znaków). Pierwsza tura startuje od razu; nie wysyłasz osobnego promptu. W sesji aktywny jest jeden cel, a nowy zastępuje poprzedni.

  3. Obserwuj werdykty. Każdy werdykt ewaluatora pojawia się w transkrypcie; Ctrl+O pokazuje jego uzasadnienie. /goal bez argumentu pokazuje warunek, czas trwania, liczbę ocenionych tur, zużycie tokenów i ostatnie uzasadnienie.

  4. Zatrzymaj albo wznów. /goal clear usuwa cel. Cel aktywny w chwili zakończenia sesji wraca po --continue lub --resume, a licznik tur, zegar i punkt odniesienia tokenów zerują się.

Do przebiegu bez nadzoru na własnej gałęzi zezwól tylko na narzędzia potrzebne warunkowi i ogranicz wydatki:

Okno terminala
# Terminal, na gałęzi, którą posiadasz
claude -p "/goal every file under src/components imports useAppStore, not useStore; \
'npm run typecheck' exits 0 and 'npm test' shows 0 failed. Do not edit tests/. \
Stop after 25 turns." \
--allowedTools "Read,Edit,Bash(npm test *),Bash(npm run typecheck *)" \
--max-budget-usd 10 \
--output-format stream-json --verbose

--max-budget-usd działa tylko z -p i jest twardym limitem, którym klauzula „stop after 25 turns” nie jest. Bez stream-json nic się nie wypisuje aż do końca przebiegu. /goal należy do systemu hooków, więc jest niedostępne w niezaufanej przestrzeni roboczej oraz gdy ustawiono disableAllHooks albo zarządzane allowManagedHooksOnly; polecenie mówi wtedy dlaczego. Pełny opis dla Claude Code znajdziesz w przepływach pracy z /goal w Claude Code.

O przebiegu decydujesz, zanim się zacznie — w warunku. Większość ciężaru niesie pięć zasad:

  1. Jeden cel, jedna linia mety. „Zmigruj API i popraw pokrycie” daje sędziemu dwa cele, a przebieg miota się między nimi. Rozbij to na dwa cele.
  2. Niech linią mety będzie polecenie. „Wygląda dobrze” nie da się sprawdzić; „npm test pokazuje 0 failed i 0 skipped” już tak. W Claude Code ewaluator widzi tylko wynik, więc poproś o wypisanie linii podsumowania.
  3. Wskaż, co definiuje poprawność. Podaj specyfikację, przewodnik migracji i jeden już zmigrowany plik. Agent, który zgaduje cel, błądzi.
  4. Napisz, czego nie wolno zmieniać. „Nie edytuj tests/” i „Nie dotykaj src/auth/” to ograniczenia, które pętla łamie jako pierwsze, gdy test trudno spełnić.
  5. Ogranicz przebieg. Dodaj klauzulę tur lub czasu („stop after 25 turns”), a w przebiegach claude -p limit --max-budget-usd.

Samo pisanie kryteriów opisuje strona o kryteriach akceptacji, które agent potrafi zweryfikować.

Jak udowodnić, że przebieg z celem wykonał zadanie?

Dział zatytułowany „Jak udowodnić, że przebieg z celem wykonał zadanie?”

Werdykt „spełniony” czy „complete” to deklaracja agenta, oceniona na podstawie jego własnego transkryptu. Udowodnij ją dowodami, których pętla nie mogła wytworzyć sama:

  1. Uruchom bramkę ponownie poza sesją. Wypchnij gałąź i pozwól CI uruchomić te same testy, sprawdzenie typów i lint na czystym checkoucie. Dowodem jest ten przebieg, a nie transkrypt.

  2. Sprawdź, czy ograniczenia wytrzymały. Uruchom w terminalu; dopasuj ścieżki do tego, czego cel obiecywał nie ruszać:

    Okno terminala
    git diff --stat main...HEAD -- tests/ src/store/ package.json

    Pusty wynik oznacza, że wyrocznia testowa i chroniony kod są nietknięte. Pętle świetnie zazieleniają testy, osłabiając je; ochrona wyroczni dodaje reguły deny i hooki, które blokują to u źródła.

  3. Przeglądaj według ryzyka, nie linia po linii. Uruchom agenta przeglądu na gałęzi, a potem czytaj tylko to, co oznaczy, oraz wszystko, co dotyka uwierzytelniania, płatności lub usuwania danych.

  4. Dołącz dowody. Wklej do pull requesta końcowy stan celu (warunek, tury, zużycie tokenów), link do CI i wynik git diff --stat. Pełny kontrakt definiuje pakiet dowodowy.

Zatwierdza programista, który ustawił cel: to on odpowiada za warunek i za ocenę, czy opisywał właściwy rezultat. Tech lead standaryzujący przebiegi z celem przegląda szablony warunków i bramki, a nie każdy diff, który z nich powstaje.

Uruchom audyt w nowej sesji albo w innym narzędziu, żeby model, który wykonał pracę, nie był tym, który ją ocenia.

PotrzebujeszUżyjDlaczego
Pracy zbieżnej do sprawdzalnego stanu końcowego w jednej sesji/goalWbudowane, ograniczone, z werdyktem po każdej turze
Tego samego promptu w rytmie: odpytywanie wdrożenia, pilnowanie PR/loopDziała w interwale, bez jednej linii mety
Deterministycznego sprawdzenia po każdej turze, w każdej sesjiHook Stop (automatyzacja hookami)Decyduje skrypt, a nie model
Nocnych buildów przez wiele sesji ze stanem na dyskuPętle autonomiczne (Ralph, GSD Core)Przetrwają wiele sesji; wymagają sandboksa
Pracy, która trwa przy zamkniętym laptopieAgenci w tle i w chmurzeRoutines, Codex cloud i automatyzacje, Cursor Cloud Agents

Częste połączenie: przebieg /goal doprowadza funkcję do „testy zielone”, a potem /loop pilnuje powstałego pull requesta pod kątem awarii CI i komentarzy z przeglądu.

ObjawPrzyczynaWyjście
Cel nigdy się nie kończy, choć praca wygląda na skończonąAgent nie wypisał dowodu, którego wymaga warunekWpisz polecenie dowodowe do warunku i poproś o linię podsumowania
Przebieg melduje koniec po jednym zielonym pliku testówWarunek akceptuje częściowe dowodyWymagaj sum: „0 failed i 0 skipped w całym zestawie”
Testy przechodzą, bo zmieniły się testyNic nie chroniło wyroczniDodaj „nie edytuj tests/” i reguły deny; sprawdź przez git diff --stat
Claude Code czyści cel jako niemożliwyWarunek przeczy ograniczeniu albo polecenie dowodowe nie może się tu powieśćPrzeczytaj zapisane uzasadnienie, uruchom polecenie sam, usuń sprzeczność, ustaw cel ponownie
Codex pokazuje Goal stalled albo oznacza cel jako blockedTa sama blokada powtarzała się przez kolejne turyUsuń blokadę (brakujący sekret, niedziałająca usługa), potem /goal resume albo /goal edit, by zawęzić cel
Przebieg czeka przy każdym poleceniuTryb Manual albo brak przeglądu zatwierdzeń w CodeksieTryb auto w Claude Code albo --approve-for-me w Codeksie, w sandboksie
Zużycie tokenów stale rośnieBrak klauzuli stopu albo nieosiągalny stan końcowySprawdź zużycie przez /goal, potem /goal clear; w przebiegach claude -p zawsze podawaj --max-budget-usd
Przebieg w Cursorze kończy się wcześnie i melduje sukcesBrak udokumentowanego ewaluatora; zdecydował wykonawcaUruchom ponownie polecenie bramki i pozwól rozstrzygnąć CI