Przejdź do głównej zawartości

Workflow z /goal

Komenda /goal (Claude Code v2.1.139+, maj 2026) zamienia prompt w trwały cel. Ustawiasz warunek zakończenia, Claude pracuje nad nim tura po turze, a mały szybki model decyduje po każdej turze, czy warunek jest spełniony. Cel czyści się automatycznie w momencie, gdy jest — więc możesz odejść od poważnej pracy (migracje, kryteria akceptacji, opróżnianie kolejek) i wrócić do gotowego wyniku.

Sięgnij po /goal, gdy masz weryfikowalny stan końcowy, a ścieżka do niego jest nieprzewidywalna. Kilka wzorców, które pasują:

  • Migracje API: “każde wywołanie legacyAuth.verify zostało zastąpione i npm test kończy się kodem 0”
  • Akceptacja design doca: “wszystkie sześć kryteriów akceptacji w docs/checkout-v2.md jest udowodnione przez przechodzące testy”
  • Budżety rozmiaru plików: “żaden plik w src/components/ nie przekracza 400 linii, a aplikacja wciąż się buduje”
  • Opróżnianie kolejki: “każde issue z etykietą triage-backlog zostało albo zamknięte, albo przeniesione do milestone’a”
  • Cele pokrycia testami: “test coverage dla src/billing/ wynosi co najmniej 85%, a lint kończy się czysto”

Jeśli stan końcowy jest rozmyty (“kod wygląda lepiej”) lub otwarty (“eksploruj kodbazę), użyj zwykłego promptu lub /loop zamiast tego.

Trzy podejścia utrzymują sesję działającą między promptami. Różnią się tym, co rozpoczyna następną turę i co zatrzymuje pętlę.

PodejścieNastępna tura startuje gdyZatrzymuje się gdyUżywaj do
/goalPoprzednia tura kończy sięModel potwierdza spełnienie warunkuWeryfikowalne stany końcowe z nieprzewidywalną ścieżką
/loopMija interwał czasuZatrzymasz lub Claude uzna pracę za skończonąPollowanie zewnętrznego stanu (CI, kolejki)
Stop hookPoprzednia tura kończy sięTwój własny skrypt lub prompt decydujeNiestandardowa logika ewaluacji w settings.json

Auto mode jest komplementarne: zatwierdza wywołania narzędzi w obrębie jednej tury, ale nie startuje następnej. Połącz /goal (brak promptów co turę) z auto mode (brak promptów co narzędzie), aby uzyskać w pełni bezobsługową pracę.

Uruchom /goal z warunkiem. Ta sama komenda ustawia, sprawdza i czyści cel w zależności od argumentu.

/goal all tests in tests/auth pass and npm run lint exits 0

Ustawienie celu natychmiast startuje turę z warunkiem jako dyrektywą — nie wysyłasz osobnego promptu. Wskaźnik ◎ /goal active pokazuje, jak długo cel jest aktywny. Po każdej turze ewaluator zwraca krótki powód, dlaczego warunek jest lub nie jest spełniony, a ten powód pojawia się w statusie i transkrypcie, więc widzisz, do czego Claude zmierza.

Nowy /goal zastępuje aktywny. Aby wyczyścić wcześniej bez ustawiania nowego, użyj /goal clear (aliasy: stop, off, reset, none, cancel).

Ewaluator ocenia twój warunek na podstawie tego, co Claude pokazał w rozmowie. Nie uruchamia komend ani nie czyta plików samodzielnie. Warunki, które wytrzymują wiele tur, mają trzy cechy:

  • Jeden mierzalny stan końcowy: wynik testu, kod wyjścia builda, liczba plików, pusta kolejka.
  • Określony sposób weryfikacji: jak Claude ma to udowodnić — npm test kończy się kodem 0, git status jest czyste, wc -l na pliku poniżej liczby.
  • Ograniczenia, które się liczą: cokolwiek musi pozostać prawdą — żaden inny plik testowy nie jest modyfikowany, żadnych zmian w package.json, żadnych nowych zależności.

Warunki mogą mieć do 4 000 znaków. Aby ograniczyć, jak długo cel ma działać, dodaj klauzulę o turach lub czasie:

/goal every TODO in src/billing/ resolved or stop after 25 turns

Claude raportuje postęp wobec tej klauzuli każdej tury, a ewaluator ocenia ją z rozmowy.

Uruchom /goal bez argumentów, aby zobaczyć bieżący stan:

/goal

Jeśli cel jest aktywny, status pokazuje warunek, jak długo działa, ile tur zostało zewaluowanych, bieżące zużycie tokenów oraz ostatnie uzasadnienie ewaluatora. Jeśli żaden cel nie jest aktywny, ale wcześniej w sesji jakiś został osiągnięty, status pokazuje osiągnięty warunek wraz z czasem, liczbą tur i zużyciem tokenów.

Użyj /goal clear, aby usunąć aktywny cel przed spełnieniem warunku. Uruchomienie /clear w celu rozpoczęcia nowej rozmowy również usuwa aktywny cel.

Cel, który był aktywny w momencie zakończenia sesji, jest przywracany przy --resume lub --continue. Warunek pozostaje; licznik tur, timer i baseline zużycia tokenów resetują się. Cel, który został już osiągnięty lub wyczyszczony, nie jest przywracany.

/goal działa w trybie nieinteraktywnym (-p) i przez Remote Control. Ustawienie celu z -p uruchamia pętlę do końca w jednym wywołaniu:

Okno terminala
claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

Przerwij Ctrl+C, aby zatrzymać nieinteraktywny cel przed spełnieniem warunku. Ten wzorzec jest przydatny do nocnych zadań cron i runnerów CI — sparuj z -p, profilem auto-mode i ścisłym warunkiem, aby uzyskać w pełni bezobsługową pracę.

/goal to wrapper wokół session-scoped prompt-based Stop hook. Za każdym razem, gdy Claude kończy turę, warunek i dotychczasowa rozmowa są wysyłane do twojego małego szybkiego modelu (domyślnie Haiku). Model zwraca tak-lub-nie plus krótkie uzasadnienie:

  • Nie → Claude pracuje dalej; uzasadnienie staje się wskazówką dla następnej tury.
  • Tak → Cel czyści się i w transkrypcie zapisuje się wpis “achieved”.

Ewaluator działa na tym samym providerze, co twoja sesja. Nie wywołuje narzędzi, więc może oceniać tylko to, co Claude już pokazał. Tokeny ewaluacji bilingowane są na małym szybkim modelu — zwykle pomijalne wobec głównego wydatku tur.

/goal działa tylko w obszarach roboczych, gdzie zaakceptowałeś dialog zaufania, ponieważ ewaluator jest częścią systemu hooków. Komenda jest niedostępna, gdy:

  • disableAllHooks jest ustawione na dowolnym poziomie ustawień
  • allowManagedHooksOnly jest ustawione w managed settings

W każdym przypadku /goal informuje cię dlaczego zamiast cicho zawodzić.

/goal every import of '@old-pkg/auth' is replaced with '@new-pkg/auth',
the project compiles via `tsc --noEmit`, and `npm test` exits 0.
Do not edit package.json or lockfiles.

Połącz z auto mode, aby Claude mógł stosować edycje, uruchamiać kompilator i ponownie odpalać testy, aż wszystko będzie zielone.