Claude Code /goal: автономная работа Claude до результата

Anthropic добавил /goal в Claude Code: команда задаёт условие, а маленькая модель проверяет каждый ход и продолжает работу до результата. Разбираю, что это меняет на практике.

Claude Code /goal: автономная работа Claude до результата
TL;DR: Команда /goal в Claude Code задаёт условие, при выполнении которого сессия считается завершённой. После каждого хода маленькая модель проверяет, выполнено ли условие, и если нет, запускает Claude дальше без вашего участия. Полезно для миграций, рефакторингов и разбора бэклога, когда конечное состояние понятно, а количество шагов заранее неизвестно.

Последние месяцы Claude Code плотно идёт в сторону автономности. Сначала появился auto mode, который снимает разрешения на отдельные tool calls. Потом прикрутили routines и облачные сеансы. Появилась панель Agent View, чтобы видеть все параллельные агенты в одном окне. И вот теперь дошли до команды, которая собирает всё это в одну простую идею: вы говорите, что считаете «готово», а Claude сам решает, когда остановиться.

Я попробовал /goal на паре своих задач. Делюсь, что внутри и где он правда помогает.

Что делает /goal

Команда задаёт completion condition для сессии. После каждого хода Claude отдельная небольшая модель читает разговор и решает: условие выполнено? Если нет, Claude получает короткое объяснение «почему ещё нет» и запускается на следующий ход. Цикл крутится, пока оценщик не скажет «да» или пока вы не остановите его руками через /goal clear.

Запуск выглядит так:

/goal все тесты в test/auth проходят и линтер чистый

Условие может быть до 4000 символов, так что туда можно зашить и формальные критерии приёмки, и ограничения вроде «не трогай файлы вне модуля auth». Когда /goal активен, в интерфейсе горит индикатор ◎ /goal active и таймер времени работы.

Технически это обёртка над session-scoped Stop hook с prompt-based проверкой. По умолчанию оценщиком работает Haiku, можно настроить любую другую быструю модель. Каждый ход оценщика биллится отдельно, но обычно копейки на фоне основной работы Claude.

Чем отличается от других автономных режимов

В Claude Code накопилось несколько способов оставить Claude работать самого. Они решают разные задачи, и их легко перепутать.

Подход Когда запускается следующий ход Когда останавливается
/goal После завершения предыдущего хода Когда модель подтверждает выполнение условия
/loop По таймеру (через интервал времени) Когда вы остановите или Claude решит, что готово
Auto mode Не запускает новые ходы Внутри одного хода пропускает подтверждения tool calls

Auto mode и /goal друг друга дополняют. Auto mode убирает паузы на разрешения внутри хода. /goal убирает паузы между ходами. В связке получается полностью unattended работа: вы запустили команду и ушли пить кофе, Claude сам прокладывает себе путь.

Быстрый старт

  1. Откройте проект в Claude Code и примите trust dialog. Без этого /goal не запустится, потому что оценщик использует систему hooks.
  2. Введите команду с условием: /goal CHANGELOG.md содержит запись для каждого PR, смерженного на этой неделе Сессия сразу же стартует первый ход — отдельный промпт не нужен.
  3. После каждого хода смотрите в транскрипт: там появится короткое объяснение оценщика, почему условие пока не выполнено и что Claude будет делать дальше.
  4. Чтобы посмотреть статус, выполните /goal без аргументов: покажет условие, время работы, число ходов, потраченные токены и последнюю причину от оценщика.
  5. Чтобы остановить досрочно, наберите /goal clear. Алиасами работают stop, off, reset, none, cancel. Запуск /clear для очистки разговора тоже снимает активный goal.

В non-interactive режиме всё работает через флаг -p:

claude -p "/goal CHANGELOG.md содержит запись для каждого PR за неделю"

Процесс крутится до выполнения условия. Прерывание — стандартный Ctrl+C. Если сессия завершилась с активным goal, при --resume или --continue условие восстановится, но таймер, счётчик ходов и базовый расход токенов обнулятся.

Как писать условия, которые работают

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

В рабочем условии обычно три вещи: конкретное конечное состояние (результат теста, exit code сборки, число файлов, пустота очереди), способ доказательства от Claude (например, «npm test exits 0», «git status чистый», «выведи таблицу с покрытием») и ограничения, которые не должны нарушаться («не трогать тестовые файлы», «миграции только через CLI»). Без любой из этих трёх вещей оценщик начинает либо зацикливать Claude, либо подтверждать неполный результат.

Чтобы цикл не крутился вечно, добавьте лимит прямо в условие: «или остановись после 20 ходов». Claude будет отчитываться по этому пункту каждый ход, а оценщик прочитает отчёт и закроет цикл по таймауту.

Чего не стоит писать в условие:

  • Размытое «код стал лучше» — оценщик не сможет это подтвердить.
  • Внешнее состояние, которое Claude не покажет в транскрипте: «дашборд показывает зелёный» работает только если Claude сам сделает запрос и покажет ответ.
  • Условие из нескольких независимых частей, которые тянут разные навыки. Лучше разбить на серию /goal.
✈️
Слежу за апдейтами Claude Code каждую неделю и кидаю в канал то, что реально влияет на работу — подписывайся в телеге.

Где это правда работает

Я не нашёл магических кейсов, где /goal заменяет архитектора. Зато есть рутина, которая раньше отъедала час времени по дороге к нормальной задаче.

Реализация дизайн-документа. Если PRD оформлен как acceptance criteria («функция X принимает Y и возвращает Z», «UI показывает W при условии V»), эти пункты можно скопировать в /goal и оставить Claude закрывать их по очереди. Особенно хорошо для бэк-эндов, где результат проверяется тестами.

Триаж бэклога с лейблами. Например, есть метка ai-fix-me на десятке issue в gh. Условие: «каждый issue с лейблом ai-fix-me либо закрыт, либо имеет комментарий с предложенным фиксом». Claude идёт по очереди, вы получаете утром PR-ы и комментарии.

Из практики: чем уже scope и формальнее критерии, тем /goal стабильнее. На задачах вида «сделай красиво» он либо буксует, либо оценщик начинает «галлюцинировать» и подтверждает раньше времени.

Стоит ли использовать

Я бы не стал ставить /goal на каждый запуск Claude Code. Большая часть моих задач — это диалог, где я по ходу меняю направление, и автономность мне мешает. Но на повторяемой рутине с понятным финишем это правда экономит время.

Если у вас работа Claude Code чаще выглядит как «закрой эти 10 пунктов, потом скажи когда готово», команда вам нужна. Если чаще «давай вместе подумаем над архитектурой», лучше оставаться в обычном режиме.

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

В целом фича укладывается в общий вектор Anthropic. Claude Code всё больше похож на оркестратора долгих задач. Связка /goal + auto mode + Agent View по сути уже даёт инфраструктуру unattended-разработки на одной машине. До полноценных Managed Agents ещё далеко, но направление понятное.

Keep Claude working toward a goal — Claude Code Docs
Команда /goal задаёт условие, и Claude работает без вашего участия, пока маленькая модель не подтвердит, что условие выполнено.

Что ещё почитать