Команда /goal в Claude Code позволяет написать одно условие, по которому понятно, что задача выполнена, и Claude будет сам продолжать работу, пока не достигнет этого результата. Каждый раз, когда завершается ход (один ответ Claude), отдельная небольшая модель проверяет, выполнено ли условие. Если нет, Claude переходит к следующему шагу. В этой статье по официальной документации (проверено 24 октября 2026 г.) описано, как пользоваться командой и при каких условиях она останавливается. Кроме того, приведены результаты проверки на реальной работе на этом сайте, включая расход токенов и проверку качества итогового результата.

Что делает

Продолжает работу до выполнения условия

Если написать, например, /goal все тесты проходят, работа начинается сразу. Она продолжается, пока условие не будет выполнено, пока проверяющая модель не определит, что его невозможно выполнить, или пока не появится ошибка, которую нужно исправить.

Как проверяется

Каждый раз проверяет отдельная модель

Проверяющая модель читает только те результаты, которые появились в диалоге. Файлы она сама не смотрит и команды не запускает, поэтому условие должно быть таким, чтобы его можно было подтвердить выводом Claude.

Что выяснилось при проверке

Для работы в один ход дополнительно только одна проверка

Механическая задача с 321 элементом была выполнена за один ход, и дополнительные затраты составили одну проверку. Проверяющая модель не заметила мелких неестественных мест в готовом тексте.

1. Что такое /goal: отличия от обычного запроса, /loop и хуков Stop

Обычную задачу Claude выполняет до тех пор, пока не решит, что она завершена, а затем останавливается и ждёт следующей инструкции. Если задать /goal, то в конце каждого хода (одного ответа Claude) запускается проверка. Если условие ещё не выполнено, следующий ход начинается даже без вашего сообщения. В официальной документации в качестве примеров подходящих больших задач, у которых конечное состояние можно проверить, приводятся такие:

  • перенести модуль на новый API, пока все места вызова не скомпилируются и тесты не пройдут
  • реализовать проектный документ, пока не выполнятся все критерии приёмки
  • разбить большие файлы, пока каждый не станет не больше заданного размера
  • разобрать список задач с метками, пока он не опустеет

Есть три похожих механизма. Официальная документация объясняет, что выбирать между ними нужно по тому, что запускает следующий ход.

МеханизмКогда начинается следующий ходКогда останавливается
/goalКогда завершился предыдущий ход (во время интерактивной работы — также при периодических проверках или автоматических повторах)Когда проверяющая модель определила, что условие выполнено или невыполнимо, при ошибке, которую нужно исправить, и при вводе /goal clear
/loopКогда прошло заданное времяКогда вы его останавливаете или Claude решил, что работа завершена
Хук StopКогда завершился предыдущий ходКогда решение принимает написанный вами скрипт или промпт

По сути, /goal — это «хук Stop, который проверяет с помощью промпта», и работает он только внутри текущего диалога. Хук Stop записывается в файл настроек и действует во всех диалогах. /goal задаётся на месте и действует только в этом диалоге.

Режим разрешений не меняется. Если нужно, чтобы ходы выполнялись без подтверждений, переключите режим на auto (см. режимы разрешений) и только потом используйте /goal. В ручном режиме на каждую операцию, которую вы не разрешили, работа будет останавливаться для подтверждения. Официальная документация объясняет, что режим auto уменьшает количество подтверждений внутри одного хода, а /goal уменьшает количество инструкций для каждого хода, и что их можно сочетать.

Источник: Keep Claude working toward a goal (официальная документация Claude Code, проверено 24 октября 2026 г.).

2. Как пользоваться: установка, проверка состояния, сброс

В одном диалоге может быть только одна цель. Одна и та же команда /goal служит для установки, проверки и сброса — в зависимости от того, что написано после неё.

  1. Установить: введите /goal и условие Пример: /goal тесты в test/auth все проходят, и lint тоже чистый. После установки ход начинается сразу, а само условие служит инструкцией, поэтому отдельный запрос отправлять не нужно. Если цель уже есть, новое условие её заменяет. Условие может содержать до 4 000 символов.
  2. Посмотреть состояние: введите только /goal Выводятся условие, прошедшее время, количество проверок, использованные токены и причина последней проверки. Количество проверок и причина появляются после первой проверки.
  3. Остановить: /goal clear Цель снимается до того, как произойдёт проверка. Одинаковый результат дают stop, off, reset, none и cancel. Если начать диалог заново командой /clear, цель тоже пропадёт.

Если возобновить диалог, цель, которая ещё не была выполнена, вернётся. Условие сохранится, а счётчики ходов, времени и токенов начнутся заново. Команда работает в настольном приложении, в удалённых сеансах и при автоматическом запуске через claude -p. Команда claude -p "/goal …" выполняется в одном запуске до достижения цели, поэтому, если хотите видеть ход работы, добавьте --output-format stream-json --verbose.

Осторожно при вставке условия в настольном приложении. Если вставить сразу «/goal и многострочное условие», весь текст может уйти как обычный вставленный текст, и /goal не сработает как команда (проверено 23 октября 2026 г. в настольном приложении для Windows, Claude Code 2.1.308). В поле ввода /goal подсвечивается, поэтому по виду их не отличить. Чтобы не ошибиться, введите /goal вручную, выберите его из подсказок и только потом вставьте условие. Проверить, что команда сработала, можно по строке, которая начинается с «Goal set:» и появляется ниже.

3. Как работает проверка и когда команда останавливается

Каждый раз, когда ход заканчивается, Claude Code отправляет условие и диалог до этого момента «маленькой быстрой модели». Результат проверки бывает трёх видов, и к каждому прилагается короткая причина. В среде этого сайта проверяющей моделью была Claude Haiku 5.5 (это подтверждено по записям диалога).

Ещё не выполнено (Not yet met)Claude продолжает работу, используя причину проверки как подсказку для следующего хода.
Выполнено (Met)Цель снимается, в диалоге остаётся запись о выполнении.
Невозможно (Impossible)Проверяющая модель определила, что условие нельзя выполнить никаким способом. Цель снимается, причина остаётся в диалоге. Снимать её вручную не нужно.

Проверяющая модель не использует инструменты и судит только по тому, что появилось в диалоге. Она не перечитывает файлы и сама не запускает тесты. Если Claude несколько ходов подряд отвечает проверяющей модели, не используя инструменты, Claude Code останавливает цикл, показывает предупреждение и возвращает управление вам, оставляя цель в силе.

Остановка из-за ошибки

Что произошлоЦельЧто происходит дальше
Ошибка, которую нужно исправить вам (сбой входа, закончился баланс кредитов, переполнение контекста, которое не решает автоматическое сжатие, недоступная модель)СнимаетсяУстраните причину и установите /goal заново
Сбой входа в сеансе настольного приложения или в облакеСохраняетсяВход восстанавливает само приложение
Сбой, который обычно быстро проходит (перегрузка сервера, обрыв соединения)СохраняетсяКоманда подождёт и повторит попытку автоматически. После трёх повторов работа приостанавливается (в интерактивном режиме, начиная с версии 2.1.269)
Сбой, который повторится при новой попытке (ограничение использования API, предел использования claude.ai, хук остановил ход)СохраняетсяРабота приостанавливается. Если в настройках стоит ожидание восстановления лимита, после его восстановления работа продолжится с того места, где остановилась

Когда работают субагенты или фоновые задачи

Если в конце хода ещё работает субагент или фоновая команда, проверка для этого хода откладывается. Когда результаты вернутся, они поступят Claude как новый ход. Если ожидание длится 30 минут, запускается «промежуточная проверка». Она читает вывод работающей задачи: если прогресс есть, команда продолжает ждать, а если работа застряла, Claude получает подсказку исправить проблему или остановиться. По умолчанию интервал удваивается: через 30 минут, через час и через два часа, а после этого повторяется каждые два часа. Первый интервал можно изменить переменной окружения CLAUDE_CODE_GOAL_CHECKIN_MINUTES. Если задать 0, промежуточные проверки и автоматические повторы отключаются.

Когда использовать нельзя и сколько это стоит

Проверяющая модель входит в механизм хуков, поэтому, как и хуки, она не работает в папках, которым вы не доверяете. Она также не работает, если в настройках disableAllHooks установлено в true или если в настройках администратора включено allowManagedHooksOnly. В этих случаях выводится причина. Токены на проверку тарифицируются по цене маленькой быстрой модели. Официальная документация говорит, что обычно это «очень немного по сравнению с основной работой». Модель для проверки можно сменить через ANTHROPIC_DEFAULT_HAIKU_MODEL, однако эта настройка действует и на другие процессы, которые используют маленькую модель, например на сжатие диалога.

Источник: Keep Claude working toward a goal (проверено 24 октября 2026 г.).

4. Как писать условие

Проверяющая модель читает только диалог, поэтому условие нужно писать так, чтобы его можно было подтвердить собственным выводом Claude. Официальная документация перечисляет три элемента условия, которые хорошо держатся при длинной работе.

Одно конечное состояние, которое можно проверитьРезультат тестов, код завершения сборки, количество файлов, пустой список и т. п.
Как проверитьЧем подтверждается результат, например «npm test завершается успешно» или «git status чистый».
Что нельзя менятьТо, что не должно меняться по ходу, например «другие тестовые файлы не трогать».

Если нужно ограничить длительность работы, добавьте ограничение в само условие, например «или остановиться через 20 ходов». В официальной документации нет отдельной настройки, похожей на бюджет токенов в /goal Codex.

Как записаноКак это видит проверяющая модель
Улучши качество и продолжай, пока не будет готовоНевозможно определить, что считать готовым
Исправляй, пока все тесты не пройдутМожно проверить, если результаты появятся в диалоге, но неясно, какие именно тесты
npm test завершается успешно, и его вывод показан в диалоге (src/legacy не менять, остановиться через 30 ходов)Заданы конечное состояние, способ проверки, что нельзя менять, и ограничение

Одно замечание, которое мы поняли при проверке на этом сайте: то, что должно соблюдаться, пишите в самом условии, а не в отдельной инструкции. Проверяющая модель судит буквально по условию, поэтому инструкция, записанная в другом файле, может быть засчитана как «выполнено», даже если её не соблюли. В эксперименте на этом сайте это и произошло (см. главу 5).

5. Результаты двух проб /goal (для сравнения — одна обычная просьба)

Мы использовали /goal для статьи на этом сайте: выравнивание точек в конце предложений. В японских статьях накопилось 1 035 мест в уже существующих статьях, где закрывающая «。» была или отсутствовала (подсчёт проводился скриптом проверки конечных знаков препинания на этом сайте). Правило исправления было определено, а конечное состояние — «0 замечаний в проверке», поэтому мы выбрали задачу, подходящую для /goal. Мы запустили /goal дважды с разным объёмом, а для сравнения поставили рядом одну обычную просьбу.

Для сравнения взят запуск, в котором мы попытались использовать /goal, вставив условие целиком. Как описано в предупреждении из главы 2, команда не сработала, и задача выполнилась как обычная просьба. В таблице он приведён как справочное значение для такой же задачи, сформулированной обычным образом (объём и количество элементов различаются, поэтому это не строгое сравнение). Для двух запусков /goal мы ввели /goal вручную, выбрали его и проверили строку «Goal set:». Запуски проходили 23 октября 2026 г. в настольном приложении для Windows: Claude Code 2.1.308, рабочая модель Claude Opus 5.5, режим разрешений auto.

Что сравниваемДля сравнения: обычная просьба/goal (меньший объём)/goal (больший объём)
Объём и количество10 статей, 166 элементов9 статей, 119 элементов48 статей, 321 элемент
Затраченное время6 мин 9 с5 мин 54 с10 мин 7 с
Количество ходовЗавершено за 1 ходВыполнено за 1 ходВыполнено за 1 ход
Проверки: количество, времяНет1, 5,6 с1, 9,0 с
Выходные токены рабочей модели15 25414 75027 835
Токены проверяющей моделиНетВывод 899, запись в кэш 64 299Вывод 1 569, запись в кэш 114 410
Эквивалентная стоимость по записи Claude Code$1.33$1.26$2.74
Что человек исправил после проверкиНичегоНичегоДва неестественных предложения

Цифры подсчитаны по записям каждого диалога (файлы JSONL, которые сохраняет Claude Code). Эквивалентная стоимость — это расчёт Claude Code по ценам API, записанный в журнал. По подписке она не списывается. Каждый результат получен в одном запуске, а объём и количество элементов от запуска к запуску различаются. При другом типе задачи или другой модели цифры будут другими. Запись в кэш у проверяющей модели соответствует объёму диалога, загруженного для проверки. Эквивалентная стоимость — это сумма по рабочей и проверяющей моделям.

Условия, которые мы написали на самом деле

Это условия, которые шли после /goal в двух запусках. Названия, относящиеся только к этому сайту (скрипт проверки, файл рабочих заметок, инструменты обновления записей), заменены описанием того, что они делают. Подробные шаги работы (прецеденты исправления и файлы, которые нельзя трогать) записаны в файле рабочих заметок (Markdown), а в условии был указан этот файл.

# Запуск меньшего объёма
Для японского текста статей с 200 по 209 (9 статей) скрипт проверки конечных знаков препинания выдаёт 0 замечаний (покажи в диалоге результат проверки для каждой из 9 статей). Commit и push выполнены по шагам из рабочих заметок. Остановиться через 30 ходов.
# Запуск большего объёма
Для японского текста статей со 100 по 199 скрипт проверки конечных знаков препинания выдаёт 0 замечаний. Соблюдать: шаги из рабочих заметок (исправлять только знаки препинания по уже принятым прецедентам; слова, смысл, переводы, метаданные и инструменты не менять). В конце каждого хода писать одну строку «осталось ○ замечаний (○ статей)». В конце показать в диалоге результаты проверки всех 48 статей из объёма, список изменённых файлов (только текст и записи сверки), пройденную проверку тегов и результат обновления записей сверки, затем выполнить commit и push по путям. Не деплоить. Остановиться через 40 ходов.
Конечное состояниеВ обоих запусках: «0 замечаний в проверке» и «commit и push выполнены».
Как проверитьМеньший запуск требовал только показать результат проверки для каждой статьи. Больший запуск включал в условие показ в диалоге объёма изменений (git diff --stat), проверки тегов и обновления записей.
Что нельзя менятьМеньший запуск оставлял это рабочим заметкам и не вносил в условие. В большем запуске в текст условия попали «исправлять только знаки препинания» и «каждый ход писать оставшееся количество».
Ограничение30 ходов для меньшего запуска, 40 ходов для большего.

В меньшем запуске фраза «каждый ход писать оставшееся количество» была записана только в рабочих заметках. Claude завершил работу, не написав её, и проверяющая модель присвоила статус «выполнено», указав в причине, что «инструкция из процедуры не соблюдена, но условие этого не требует». Этот урок (глава 4) мы учли в условии для большего запуска.

Проверка готового результата

Мы не принимали «выполнено» от проверяющей модели на веру. Каждый раз мы в отдельном диалоге построчно проверяли различия и заново запускали проверки.

ОбъёмВо всех запусках менялись только японский текст целевых статей и файлы, в которых фиксируется сверка текста с метаданными.
СодержаниеБольшая часть изменений — это просто добавление «。». Остальное — замена «。» на запятую или скобки. Мы прочитали все изменения и убедились, что слова и смысл не изменились.
Чего проверяющая модель не видит: естественность предложенийВ большем запуске два из двенадцати мест, где «——» в конце предложения было переформулировано как «как показано ниже.», получились неестественными, например «поэтому, как показано ниже.». Цифры проверки были нулевыми, поэтому проверяющая модель присвоила статус «выполнено». Качество, которое нельзя измерить цифрами, требует, чтобы человек прочитал и проверил текст.
Что заметили за пределами объёмаВо время работы сам Claude заметил, что инструмент проверки не смотрит строки таблиц с цветным фоном, и сообщил об этом. Мы убедились, что это правда. После исправления инструмента на сайте нашлось 16 замечаний, которые раньше были невидимы. Исправление было сделано после справочного запуска, а оба запуска /goal подтвердили 0 замечаний уже с исправленным инструментом. Статус «выполнено» от проверяющей модели зависит от того, что инструмент проверки работает правильно.

6. Что мы поняли: подходящие и неподходящие задачи

Механические задачи выполняются за один ход

Каждый запуск завершил работу за один ход. Внутри одного хода Claude может использовать инструменты десятки раз (в большем запуске Bash использовался 32 раза), поэтому задача, которую можно решить скриптом, выполняется за один раз даже при 321 элементе. Из-за этого главное преимущество /goal — «если не хватает, продолжить в следующем ходе» — для такого типа работы ни разу не сработало. Результаты получены по одному запуску на каждый объём, но между справочной обычной просьбой и двумя запусками /goal мы не увидели большой разницы ни во времени, ни в качестве результата. Дополнительные затраты составили одну проверку на запуск; каждая проверка заняла 5,6 с и 9,0 с (вся работа заняла около 6 минут и около 10 минут).

Проверяющая модель читает весь диалог

В большем запуске проверяющая модель прочитала 114 410 токенов — весь рабочий диалог целиком. Чем длиннее диалог, тем тяжелее каждая проверка. Для работы, которая идёт много ходов, или при запуске /goal в середине уже длинного диалога стоимость проверок, вероятно, будет больше, чем в этом запуске.

Проверяющая модель смотрит, выполнено ли условие

Проверяющая модель точно проверяла пункты условия, например результаты проверок и наличие commit. С другой стороны, она не смотрит на качества, которые не выражаются цифрами, например на то, естественно ли звучит предложение. «Выполнено» означает, что написанное в условии появилось в диалоге. Это не заменяет проверку готового результата.

В этом эксперименте проверялась только работа, которая завершается за один ход. Ниже мы отделяем примеры из официальной документации от собственного мнения автора о подходящих задачах.

Подходит (примеры из официальной документации)Миграция на новый API (пока все места вызова не скомпилируются и тесты не пройдут), реализация проектного документа (пока не выполнятся все критерии приёмки), разбиение больших файлов (пока каждый не станет не больше заданного размера), опустошение списка задач (глава 1).
Подходит (мнение автора)Исправления, в которых при каждом падении теста нужно заново разбираться в причине, работа, которая ждёт внешние процессы, и исследования, где промежуточные результаты меняют следующий шаг. Ни одна из них обычно не завершается в одном ответе.
Не подходитРабота, где конец нельзя показать цифрами, например «сделай лучше» или «сделай естественнее». Проверяющая модель видит только результаты, которые появились в диалоге, поэтому качество, не выражаемое цифрами, проверить нельзя.
Всё равноМеханическая работа в объёме, который укладывается в один ход, как в этом эксперименте. Вреда нет, но заметной разницы с обычной просьбой мы не увидели.

7. Отличия от /goal в Codex

У OpenAI Codex тоже есть команда /goal с таким же названием. Идея (продолжать работу, сохраняя условие завершения) та же, но управление и способ задавать ограничения различаются. Подробные инструкции по Codex см. в статье Как пользоваться /goal в Codex.

Что сравниваемClaude CodeCodex
УправлениеУстановка, проверка состояния и сброс (/goal clear). Чтобы изменить цель, задаётся новое условиеПросмотр, редактирование, пауза, возобновление и сброс (/goal edit, pause, resume, clear)
Кто проверяетОтдельная маленькая быстрая модель читает диалог в конце каждого ходаCodex сам повторяет работу и проверку (указаний на то, что проверяет отдельная модель, нет)
ОграниченияОтдельной настройки нет; в условие пишут, например, «остановиться через 20 ходов»Есть бюджет токенов на каждую цель
Когда останавливается автоматическиУсловие выполнено или признано невыполнимым, либо появилась ошибка, которую нужно исправить (при ограничениях использования и лимитах работа приостанавливается)Условие выполнено, бюджет исчерпан или нужно ваше решение (не может продолжать из-за лимита использования аккаунта)

Источники: для Claude Code — Keep Claude working toward a goal; для Codex — Using Goals in Codex (OpenAI Cookbook) и статья этого сайта «Как пользоваться /goal в Codex». Оба источника актуальны на 24 октября 2026 г.

Итоги

  • /goal — команда, в которой вы задаёте одно условие завершения, а отдельная модель проверяет его в конце каждого хода и удерживает Claude в работе, пока условие не будет выполнено. Установка, проверка состояния и сброс выполняются одной командой.
  • Проверяющая модель читает только диалог. Пишите условие так, чтобы конечное состояние, способ проверки и то, что нельзя менять, можно было подтвердить выводом Claude. Ограничение тоже включайте в условие.
  • Режим разрешений не меняется, поэтому, если хотите передать работу целиком, сочетайте /goal с auto.
  • В эксперименте на этом сайте механическая задача с 321 элементом завершилась за один ход. Для такой одноходовой задачи дополнительные затраты составили одну проверку. По мнению автора, польза проявляется в работе, которая не укладывается в один ход.
  • «Выполнено» означает, что написанное в условии появилось в диалоге. Качество готового результата, например естественность предложений, проверяйте отдельно.
  • В настольном приложении при вставке условия целиком команда может не сработать. Проверяйте по строке «Goal set:».

Как начать: переключите режим на auto → напишите условие по схеме из главы 4 (конечное состояние, способ проверки, что нельзя менять, ограничение) → введите /goal вручную, вставьте условие и проверьте строку «Goal set:» → после статуса «выполнено» сами прочитайте различия.

FAQ

Вопрос: Повышает ли /goal стоимость работы?

Да, на величину проверок. Проверки выполняет маленькая быстрая модель, и официальная документация говорит, что обычно это «очень немного». В эксперименте на этом сайте на работу, завершённую за один ход, пришлась одна проверка, которая заняла несколько секунд. Однако поскольку проверяющая модель читает весь диалог, чем он длиннее, тем тяжелее каждая проверка.

Вопрос: Как остановить работу на полпути?

Снимите цель командой /goal clear. Так же работают stop и cancel. Если работа запущена через claude -p, остановите её сочетанием Ctrl+C. Снятие цели не отменяет изменения, уже внесённые к этому моменту.

Вопрос: Может ли проверяющая модель сказать «ещё не выполнено», если Claude говорит, что закончил?

Может. Для этого проверку и выполняет отдельная модель. Если проверяющая модель говорит «ещё не выполнено», следующий ход начинается с учётом её причины. И наоборот: если в диалоге появились результаты, соответствующие условию, статус становится «выполнено», поэтому качество, которое вы не записали в условии, не гарантируется.

Вопрос: Сколько ходов работа может продолжаться до остановки?

Фиксированного предела нет. Работа останавливается, когда условие выполнено, признано невыполнимым, появилась ошибка, которую нужно исправить, или вы сняли цель. Если хотите ограничение, запишите его в условии, например «или остановиться через 20 ходов». Проверяющая модель читает только диалог, поэтому полезно добавить в условие что-то вроде «в конце каждого хода указывать количество прошедших ходов». (Ни один запуск в этом эксперименте не завершился за один ход, поэтому остановку по ограничению мы не проверяли.)

Вопрос: Что использовать: /loop или /goal?

Если конечное состояние определено, используйте /goal. Если нужно через заданные промежутки времени проверять одно и то же, используйте /loop. Например, «проверять каждые 5 минут, пока не завершится деплой» подходит для /loop, а «исправлять, пока все тесты не пройдут» — для /goal.

Источники: Keep Claude working toward a goal, Run prompts on a schedule и Hooks guide (официальная документация Claude Code); Using Goals in Codex (OpenAI Cookbook). Проверено 24 октября 2026 г.