
Якщо ви вже встигли попрацювати з Claude Code, то напевно знаєте цей сценарій: ви даєте агенту складне завдання — наприклад, рефакторинг service layer або налаштування нових endpoints. Він робить один крок, видає непоганий результат і зупиняється. Ви пишете «keep going». Ще один раунд — і знову пауза. Ви знову даєте команду. Через годину ви розумієте, що вводили «продовжуй» частіше, ніж писали реальний код. Іронія ручного «няньчення» автономного агента починає дратувати.
Anthropic випустила рішення, і в ньому лише п’ять літер.
Як працює /goal
Команда /goal встановлює умову завершення сесії. Після кожного кроку швидка модель-евалюатор (за замовчуванням Haiku) перевіряє, чи виконано завдання. Якщо ні — Claude автоматично переходить до наступного етапу. Якщо так — сесія завершується, і ви отримуєте підсумок із витраченим часом, кількістю кроків та використаними tokens.
Синтаксис максимально простий:
/goal all tests in test/payments pass and lint is clean
Встановлення мети вже вважається першим кроком, тому окремий prompt надсилати не потрібно.
Головна фішка — у розділенні ролей. Працюють дві різні моделі: одна пише код, інша вирішує, чи робота завершена. Евалюатор аналізує історію чату і виносить вердикт: готово чи ні. Якщо завдання не виконано, він додає коротке пояснення, яке стає інструкцією для наступного кроку. Наприклад, якщо Claude вважає, що все готово, але три тести все ще «червоні», евалюатор помітить це і поверне агента до роботи.
OpenAI реалізувала подібну концепцію в Codex CLI під тією ж назвою. Обидві імплементації базуються на патерні «Ralph loop», який розробники раніше збирали «на коліні» за допомогою bash-скриптів. Тепер це вбудована функція — без сторонніх обгорток чи cron.
Де це працює найкраще
Найкращі сценарії для /goal — це завдання з кінцевим результатом, який можна перевірити прямо в чаті.
Міграції на основі тестів. «Онови всі виклики API з v1 на v2 і переконайся, що тести проходять». Claude змінює код частинами, запускає перевірку після кожної ітерації та працює до переможного кінця. Тут умова мети чітко прив’язана до exit code команди тестування.
Очищення TODO. «Закрий усі TODO в папці /legacy». Claude методично опрацьовує кожне зауваження, а евалюатор рахує залишок, доки черга не спорожніє.
Реструктуризація файлів. «Розбий цей файл на 3000 рядків на окремі модулі до 300 рядків кожен, зберігши працездатність усіх імпортів». Це вимірюване та конкретне завдання.
Реалізація специфікацій. «Впровадь критерії з SPEC.md та запусти integration suite». Якщо документація написана якісно, Claude матиме чіткий чекліст для роботи.
Фактично ви кажете: «Ось фінішна лінія, не повертайся, доки не перетнеш її». І це чудово працює, якщо фініш чітко окреслений.
Підводні камені
Евалюатор бачить лише історію листування. Він не запускає команди та не переглядає файлову систему самостійно. Якість циклу повністю залежить від того, наскільки переконливо Claude зможе довести виконання завдання у своїх відповідях.
Розмиті цілі провалюються тихо. Команда «покращи систему автентифікації» не дає розуміння, коли зупинитися. Claude може рефакторити код вічно або кинути все після першої правки. Обидва варіанти даремні.
Довгі сесії втрачають контекст. Context window не безмежне. Під час тривалих забігів Claude стискає ранні повідомлення в резюме. Якщо завдання затягується на десятки кроків, важливі деталі з початку можуть загубитися. Anthropic радить обмежувати цикл кількістю кроків або часом (наприклад, «або зупинись після 20 ітерацій»).
Витрати на tokens зростають. Кожен крок коштує tokens основної моделі плюс робота Haiku. Безконтрольний /goal може спалити ваш бюджет швидше, ніж ви доп’єте ранкову каву.
Ризик «scope creep». Claude може помітити баг по дорозі до мети й вирішити його виправити. Це звучить корисно, поки він не торкається файлів іншої команди. Завжди додавайте обмеження: «не змінюй файли за межами /src/payments».
Це не заміна критичному мисленню. /goal створений для виконання, а не для архітектурних рішень. Якщо завдання неоднозначне («використати чергу чи синхронний виклик?»), Claude вибере варіант на свій розсуд. Ви можете не погодитися з вибором, але до моменту перевірки на цьому рішенні вже буде побудовано десяток файлів.
Як сформулювати правильну умову
Anthropic рекомендує структурувати умови за трьома елементами: вимірюваний результат, крок перевірки та межі дозволеного. Ваша мета має виглядати як чекліст, а не як побажання.
Гарний приклад:
/goal усі тести в test/payments пройдені, lint повернув 0, файли поза src/payments не змінені
Поганий приклад:
/goal зроби код кращим
У вас є до 4000 символів — використовуйте їх для специфікації: вказуйте точні команди, шляхи до директорій та заборонені для редагування зони.
/goal vs /loop vs звичайні prompts
Зараз у Claude Code є три способи підтримувати активність сесії.
Звичайні prompts: Стандартний режим. Ви пишете — Claude відповідає. Найкраще для дослідження коду та обговорення архітектури, де важливий контроль кожного кроку.
/loop: Перезапускає prompt через певний інтервал часу. Він не перевіряє умови, а просто повторює дію. Корисно для моніторингу («запускай тести кожні 10 хвилин»), але не для завершення завдань.
/goal: Працює до виконання умови. Рішення про завершення приймає окрема модель. У поєднанні з auto mode (автоматичне схвалення інструментів) це дає повністю автономне виконання.
Вибір простий: якщо тригер — це час, використовуйте /loop. Якщо тригер — результат, беріть /goal. Якщо потрібен покроковий контроль — пишіть звичайні prompts.
Практичні поради
Працюйте лише в окремій branch. Перед запуском /goal зробіть commit. Якщо Claude «зверне не туди», ви завжди зможете зробити git diff або git checkout. Це правило безпеки №1.
Починайте з малого. Не довіряйте агенту відразу всю міграцію бази даних. Почніть з одного модуля чи файлу. Подивіться, як він справляється, перш ніж масштабувати завдання.
Обмежуйте кількість кроків. Додавайте «або зупинись після 15 кроків». Це дешева страховка від нескінченних циклів.
Перевіряйте diff як повноцінний PR. Автономна робота — це все одно код, за який відповідаєте ви. Читайте зміни, власноруч запускайте тести й ставтеся до результатів /goal так само суворо, як до коду колеги.
Використовуйте CLAUDE.md. Якщо у проєкті є специфічні конвенції чи заборонені зони, зафіксуйте їх у файлі CLAUDE.md. Агент зчитує його на початку сесії та враховуватиме ці правила під час виконання мети.
Підсумок
/goal — це найважливіша зміна у робочому процесі Claude Code з моменту появи auto mode. Вона систематизує те, що розробники раніше робили вручну, додаючи розумний шар евалюації.
Проте це потужний інструмент, а не магія. Чим чіткіша умова, тим кращий результат. Що менше конкретики, то більше креативу виявить Claude. А «креативність» — це не завжди те, що ви хочете бачити в автономному агенті, який редагує ваш production-код.
Залишайте Claude виконання, а мислення — собі.
Джерела
- Keep Claude working toward a goal: Офіційна документація Anthropic.
- Claude Code /goal: A Field Guide with Games: Практичний гайд від Джейсона Краучера з прикладами логів.
- Codex /goal: OpenAI’s Built-in Ralph Loop: Глибокий аналіз реалізації в Codex CLI та історії Ralph loop.
- Claude Code /goal: Set a Finish Line, Walk Away: Огляд функціоналу з розрахунком вартості та використання tokens.