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.
Kiedy używać /goal
Dział zatytułowany „Kiedy używać /goal”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.verifyzostało zastąpione inpm testkończy się kodem 0” - Akceptacja design doca: “wszystkie sześć kryteriów akceptacji w
docs/checkout-v2.mdjest 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-backlogzostał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.
Jak /goal ma się do innych autonomicznych workflow
Dział zatytułowany „Jak /goal ma się do innych autonomicznych workflow”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ście | Następna tura startuje gdy | Zatrzymuje się gdy | Używaj do |
|---|---|---|---|
/goal | Poprzednia tura kończy się | Model potwierdza spełnienie warunku | Weryfikowalne stany końcowe z nieprzewidywalną ścieżką |
/loop | Mija interwał czasu | Zatrzymasz lub Claude uzna pracę za skończoną | Pollowanie zewnętrznego stanu (CI, kolejki) |
| Stop hook | Poprzednia tura kończy się | Twój własny skrypt lub prompt decyduje | Niestandardowa 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ę.
Ustaw cel
Dział zatytułowany „Ustaw cel”Uruchom /goal z warunkiem. Ta sama komenda ustawia, sprawdza i czyści cel w zależności od argumentu.
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).
Napisz skuteczny warunek
Dział zatytułowany „Napisz skuteczny warunek”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 testkończy się kodem 0,git statusjest czyste,wc -lna 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:
Claude raportuje postęp wobec tej klauzuli każdej tury, a ewaluator ocenia ją z rozmowy.
Sprawdź status
Dział zatytułowany „Sprawdź status”Uruchom /goal bez argumentów, aby zobaczyć bieżący stan:
/goalJeś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.
Wyczyść cel
Dział zatytułowany „Wyczyść cel”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.
Wznów z aktywnym celem
Dział zatytułowany „Wznów z aktywnym celem”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.
Uruchom w trybie nieinteraktywnym
Dział zatytułowany „Uruchom w trybie nieinteraktywnym”/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:
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ę.
Jak działa ewaluacja
Dział zatytułowany „Jak działa ewaluacja”/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.
Wymagania
Dział zatytułowany „Wymagania”/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:
disableAllHooksjest ustawione na dowolnym poziomie ustawieńallowManagedHooksOnlyjest ustawione w managed settings
W każdym przypadku /goal informuje cię dlaczego zamiast cicho zawodzić.
Wzorce, które działają
Dział zatytułowany „Wzorce, które działają”/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.
/goal each of the six acceptance criteria in docs/checkout-v2.mdis demonstrated by a passing test in tests/checkout-v2/.Stop after 30 turns and summarize remaining gaps.Limit tur zamienia otwarty cel w ograniczony — jeśli ewaluator nie powie “tak” po 30 turach, dostajesz częściowy raport zamiast niekontrolowanych wydatków.
/goal every issue labeled 'triage-needs-repro' in the current repohas either a confirmed reproduction step in its body or has beenclosed with a comment explaining why.Sparuj z GitHub MCP serverem, aby Claude mógł czytać i aktualizować issues bezpośrednio.
/goal no file in src/components/ exceeds 350 lines and `npm run build`exits 0. Do not move logic to new files outside src/components/.Klauzula ograniczenia zapobiega ucieczce typu “rozbij to na 12 plików w src/utils/”.
Kiedy to nie działa
Dział zatytułowany „Kiedy to nie działa”Ewaluator widzi tylko to, co Claude umieścił w transkrypcie, więc większość niepowodzeń sprowadza się do luki między warunkiem a tym, co rozmowa faktycznie udowadnia.
- Cel nigdy się nie kończy, mimo że praca wygląda na wykonaną. Warunek odwołuje się do stanu, którego Claude nigdy nie pokazał — edytował pliki, ale nigdy nie uruchomił sprawdzenia, którego szuka ewaluator. Napraw to, nazywając komendę dowodową bezpośrednio w warunku: zmień “migracja jest zastosowana” na “
npm run db:statusraportuje brak oczekujących migracji, a jego output jest pokazany powyżej”. - Zużycie tokenów wymyka się spod kontroli. Bez klauzuli zatrzymania warunek, którego ewaluator nigdy nie potwierdzi, będzie się zapętlać, dopóki tego nie zauważysz. Zawsze dodawaj klauzulę “or stop after N turns” lub “or stop after N minutes” do każdego celu, od którego odchodzisz, i okresowo sprawdzaj
/goal, aby zobaczyć bieżącą liczbę tokenów. - Ewaluator potwierdza zbyt wcześnie. Luźny warunek typu “the tests pass” pozwala, by pojedynczy zielony przebieg spełnił cel, który powinien był obejmować cały zestaw. Zaostrz go do mierzalnego stanu końcowego — “all tests in
tests/pass and the run shows 0 failures and 0 skipped” — aby częściowy wynik nie mógł zostać odczytany jako sukces. /goaljest niedostępne. Jeśli komenda zgłasza, że nie może działać, system hooków jest wyłączony:disableAllHooksluballowManagedHooksOnlyjest ustawione na którymś poziomie ustawień. Ewaluator jest hookiem Stop, więc dziedziczy te ograniczenia.