✻ Claude Code по-русски
🎧 Аудиокурс
🎧 Озвучка этой страницы готовится.

#/goal, /loop и рутины

Продвинутый уровень · Факультатив · около 20 минут плюс время запуска · Нужно: Ограничьте автономные запуски · Сверено с Claude Code v2.1.285 (stable) 09.10.2026

Примечание

«Рутины находятся в исследовательском превью. Поведение, лимиты и API могут меняться» (Automate work with routines).

#Цель

К концу этого факультатива вы сможете заставить Claude работать, не подталкивая каждый шаг: к выполнению условия через /goal, с интервалом через /loop и по расписанию в облаке через рутину (routine).

#Что понадобится

#Идея

/goal, /loop и рутина — каждый из них запускает следующий прогон Claude без вас (Compare ways to keep a session running, Compare scheduling options):

Следующий запуск начинается, когда Останавливается, когда
/goal Ход закончился, и вторая модель — оценщик — считает ваше условие ещё не выполненным Условие признано выполненным или невыполнимым, ход упёрся в ошибку, которую должны исправить вы, или /goal clear
/loop Прошёл интервал, пока сессия простаивает Вы его отменили, Claude завершил цикл с самостоятельным темпом или истёк срок
Рутина Наступило расписание, пришёл вызов API или событие GitHub — в облаке Вы поставили её на паузу или удалили; одноразовая отключается сама

Оценщик читает только разговор, поэтому ваше условие должно называть проверку, результат которой виден в выводе Claude, например «npm test завершается с кодом 0», говорить, что не должно измениться, и заканчиваться лимитом ходов (Write an effective condition). Цели и циклы сохраняют режим разрешений сессии: в режиме auto они работают без присмотра, а в ручном режиме Claude сначала спрашивает (Set a goal, Compare scheduling options).

Внимание

Рутина выполняется как полноценная облачная сессия, которая не останавливается за одобрением (кроме некоторых действий с артефактами), и действует от вашего имени: её коммиты и пул-реквесты идут от вашего пользователя GitHub (Create a routine). Она может без спроса пользоваться всеми инструментами каждого включённого в неё коннектора, в том числе пишущими, а по умолчанию включены все коннекторы вашего аккаунта claude.ai (Create from the web, Connectors). Уберите коннекторы, которые рутине не нужны, и пока учитесь, ограничивайте её промпт работой только на чтение.

#Разбор примера

Работайте в своей копии для практики, в новой ветке.

  1. Создайте ветку и папку для журнала, которую git в копии уже игнорирует, затем запустите Claude Code на Sonnet:
git switch -c keep-working
mkdir -p .practice
claude --model sonnet

Windows: вместо строки mkdir используйте New-Item -ItemType Directory -Force .practice.

Строка состояния показывает режим разрешений (Switch permission modes). Если там ⏸ manual mode on, одобряйте каждый вызов инструмента по запросу Claude; если ⏵⏵ auto mode on, ходы цели и запуски цикла идут сами. 2. Задайте цель. Проверка ссылок считает битой ссылку вроде setup.md?plain=1, даже если setup.md существует, потому что отрезает от ссылки только часть после #:

/goal npm test exits 0, a new test in test/links.test.js shows that a link such as setup.md?plain=1 to a file that exists is not reported as broken, no existing test changes, and the fix is committed; or stop after 8 turns

Claude сразу начинает, а ◎ /goal active показывает, сколько уже длится цель. После каждого хода в расшифровке появляется вердикт оценщика; нажмите Ctrl+O, чтобы увидеть его обоснование (Set a goal). 3. Когда оценщик признаёт условие выполненным, Claude Code снимает цель и записывает в расшифровку отметку о достижении (How evaluation works). Выполните /goal: команда покажет достигнутое условие с длительностью, числом ходов и расходом токенов (Check status). Во втором терминале git log --oneline -1 покажет коммит, а npm test проходит. Если npm test всё ещё падает или git log не показывает нового коммита, цель закончилась раньше исправления — например на лимите ходов или была признана невыполнимой, — и /goal покажет, активна ли она ещё: попросите Claude закончить исправление и закоммитить его. 4. Запустите цикл, который каждую минуту записывает результаты тестов в журнал:

/loop 1m run npm test and append one line to .practice/loop-log.txt with the time and the number of passing and failing tests. Don't change any other file.

Claude запланирует его и подтвердит периодичность и ID задания (Run on a fixed interval). Каждый запуск происходит между вашими ходами, никогда посреди ответа Claude (How scheduled tasks run). 5. В своём редакторе, а не через Claude, сломайте один тест: в test/config.test.js замените в первом тесте files: ['.'] на files: ['docs']. Дождитесь, пока в журнале появится строка с падением, затем откатите изменение командой git restore test/config.test.js. 6. Попросите Claude cancel the npm test loop, затем what scheduled tasks do I have?: не осталось ни одной (Manage scheduled tasks). cat .practice/loop-log.txt показывает строку на каждый запуск, и хотя бы одна из них с падением. Формулировки у вас будут другими. 7. Шагам 7–9 нужна подписка; без неё переходите к шагу 10. Запланируйте рутину, которая выполнится один раз через пять минут:

/schedule in 5 minutes, run npm test in this repository and reply with the number of passing and failing tests. Don't edit files, commit or push.

Claude задаст уточняющие вопросы о расписании, репозитории и промпте и подтвердит точное время, прежде чем сохранить (Create from the CLI, Schedule a one-off run). Скажите ему не включать коннекторы; если он не может, уберите их сразу после сохранения через /schedule update или форму Edit рутины на claude.ai/code/routines (Connectors).\ Если Claude добавит примечание о настройке доступа к GitHub, выполните его до времени запуска; если время пройдёт раньше, отредактируйте рутину и задайте новое время одноразового запуска (Repositories and branch permissions, Edit and control routines). Если Claude отвечает, что нужно пройти аутентификацию, рутина не сохранена; если /schedule нет в меню команд, смотрите /schedule returns "Unknown command". 8. /schedule list показывает рутину (Manage routines from the CLI). После её запуска откройте её на claude.ai/code/routines, откройте запуск и найдите в расшифровке число тестов (View and interact with runs). Запуск клонировал вашу ветку по умолчанию, поэтому в подсчёт не вошёл тест, добавленный в keep-working (Repositories and branch permissions). Одноразовая рутина теперь помечена Ran. 9. Удалите рутину: откройте меню рядом с её именем и выберите Delete (Edit and control routines).\ Если вы подключали GitHub только ради рутины, отключите его на claude.ai/customize/connectors — это удалит учётные данные, откуда бы они ни пришли, из браузера или из /web-setup; сам токен gh на GitHub остаётся действительным (Remove the /web-setup token). Если вы устанавливали GitHub-приложение Claude только ради рутины, уберите копию из его доступа к репозиториям, а удаляйте приложение, только если ничто другое у вас его не использует (Reviewing and modifying installed GitHub Apps). 10. git switch - вернёт копию на ветку, с которой вы начинали; исправление остаётся в keep-working.

#Ваша очередь

В одном из своих репозиториев выберите рутинную задачу, конечное состояние которой может доказать команда, — например падающий тест или ошибку линтера. Завершите её с помощью цели. Затем закоммитьте .claude/loop.md, который продолжит за ней следить: этот файл заменяет встроенный промпт /loop, запущенного без вашего собственного промпта (Customize the default prompt with loop.md). С подпиской можно ещё поручить одноразовой рутине запустить команду в облаке, когда ваша работа окажется в ветке по умолчанию, или назвать свою ветку в промпте рутины (Repositories and branch permissions).

Готово, когда:

#Проверка

Факультатив пройден, когда выполнено всё это:

Если команда всё ещё падает, цель закончилась раньше работы — например на лимите ходов или была признана невыполнимой: нажмите Ctrl+O, чтобы прочитать обоснование последнего вердикта (How evaluation works), затем устраните причину или задайте новую цель; если /goal не запускается, он сообщает почему — обычно из-за папки без доверия или disableAllHooks (Requirements). Если ни одна строка журнала не показывает падения, цикл не работал, пока тест был сломан: снова запустите цикл, как на шаге 4, сломайте тест, как на шаге 5, дождитесь строки с падением, восстановите файл и отмените цикл, как на шаге 6. Если git ls-files ничего не выводит, git check-ignore -v .claude/loop.md назовёт правило, которое прячет файл: добавьте его через git add -f и закоммитьте.

#Осторожно

#Что дальше


Источники: Keep Claude working toward a goal · Run prompts on a schedule · Automate work with routines · Choose a permission mode · Manage costs effectively · Feature availability · Use Claude Code in the cloud · Get started with Claude Code in the cloud · Reviewing and modifying installed GitHub Apps

Назад к оглавлению Продвинутого уровня · Тема: Автоматизация · Застряли на уроке?