Перейти к тексту

Claude Code: работа с coding-агентом6. Большие задачи: спека и тикеты

/goal или тикеты: кто ведёт большую задачу

Засчитывается, когда отвечены все вопросы квиза

У вас есть хорошая спека с ясными критериями приёмки. В Claude Code есть команда, которая как будто создана для неё: /goal заставляет агента работать, пока условие не выполнено. Зачем тогда резать спеку на тикеты, чистить контекст и запускать каждый вручную?

Зачем это нужно

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

Как это устроено

Что делает /goal. Вы пишете условие завершения:

/goal all tests in test/analytics pass and npm run typecheck exits 0

Установка цели сразу запускает turn — отдельный промпт не нужен. После каждого turn отдельная небольшая быстрая модель (evaluator) читает условие и разговор и выносит вердикт: «не выполнено» — Claude продолжает и получает причину как подсказку; «выполнено» или «невозможно» — цель снимается. Evaluator не запускает команды и не читает файлы сам: он судит только по тому, что Claude вывел в разговор. Поэтому условие пишут так, чтобы его доказывал вывод Claude: «npm test exits 0», а не «код хороший».

Важные границы:

  • в сессии активна одна цель; новая заменяет старую;
  • условие — до 4 000 символов; ограничить длительность можно прямо в нём: or stop after 20 turns;
  • /goal без аргументов показывает статус: условие, время, число turn-ов, расход токенов;
  • /goal clear снимает цель досрочно, /clear — тоже;
  • /goal не меняет permission mode: чтобы turn-ы шли без подтверждений, включите auto mode. Auto mode убирает вопросы внутри turn-а, /goal — между turn-ами.

Где здесь контекст. Все turn-ы цели идут в одной сессии. Когда окно заполняется, работает auto-compaction. Если её не хватило, цель снимается с ошибкой. Автор оригинального курса описывает свой опыт так: в начале такой работы немного smart zone, а дальше — длинная dumb zone, где решения агента становятся хуже.

Что дают тикеты. Каждый тикет выполняется в свежем контексте, поэтому почти вся работа проходит в smart zone. Вы проверяете результат между тикетами и можете сменить курс. Нарезка спеки на тикеты обычно занимает пару минут.

Спека + тикеты Спека + /goal
Контекст много свежих окон одно окно с compaction
Контроль проверка после каждого тикета одно большое ревью в конце
Ваше участие запуск каждого тикета одна команда

Практика курса — тикеты. Но оценка /goal зависит от того, насколько хорошо compaction справляется с вашей задачей. Если окно не переполняется или compaction вас устраивает, /goal с хорошей спекой — разумная схема: агент сам ведёт контекст и список задач, а вы проверяете соответствие спеке в конце.

Практика

Попробуйте /goal на маленьком, проверяемом куске, а не на всей спеке. В Cadence:

/goal npm run typecheck exits 0 and npm test exits 0, or stop after 10 turns

Через пару turn-ов выполните /goal без аргументов. Посмотрите на число turn-ов, расход токенов и последнюю причину evaluator-а. Затем откройте /context и оцените, сколько окна уже занято. Это и есть цена одного окна на длинной задаче.

Подводные камни

  • Условие, которое нельзя показать в разговоре. «Дашборд выглядит хорошо» evaluator проверить не может. Нужен измеримый результат и способ его доказать.
  • Manual mode. Без auto mode цель будет останавливаться на каждом запросе разрешения, и «работа без вас» не получится.
  • /clear посреди цели. Он начинает новый разговор и снимает активную цель.

Вывод: /goal хорош для одного проверяемого результата, а большую спеку надёжнее вести тикетами — каждый в свежем контексте и с вашей проверкой.

Проверь себя

Источники

Текст подготовлен с помощью LLM и может содержать неточности.