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 zamiast tego.
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.
/goal all tests in tests/auth pass and npm run lint exits 0Ustawienie 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:
/goal every TODO in src/billing/ resolved or stop after 25 turnsClaude 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/”.