- Чтобы команды выполнялись безопасно без вашего подтверждения каждой из них, новые сессии в терминале и VS Code запускаются в авторежиме, где классификатор проверяет всё рискованное перед выполнением.
- Чтобы ваш основной диалог оставался сфокусированным, пока независимая работа идёт параллельно, Claude делегирует задачи субагентам и обращается к вам только при необходимости.
- Чтобы длинная сессия продолжалась без вашего управления, диалог автоматически сжимается до того, как заполнится контекстное окно.
- Процесс деплоя, который существует только в чьей-то голове
- Файл, который никогда нельзя читать
- Проверка, которая должна пройти, прежде чем что-либо будет считаться выполненным
- Бюджет, который нельзя превышать
- Claude сделал не то, что вы имели в виду, или ему приходится заново выяснять один и тот же факт в начале каждой сессии. Ему не хватает информации, которую нельзя получить из чтения репозитория. См. Сообщите Claude то, чего он не видит.
- Claude сказал, что закончил, но это было не совсем так, обычно потому, что у него не было способа проверить свою работу. См. Дайте Claude проверку для запуска.
- Claude сделал то, чего никогда не должно происходить в этом репозитории, или пропустил шаг, который должен выполняться всегда. Один лишь промпт не может гарантировать ни того, ни другого. См. Обеспечьте соблюдение правил без исключений.
- Claude всё сделал правильно, но это потребовало больше времени, токенов или запросов разрешений, чем стоила задача. См. Измените настройку по умолчанию.
Настройка для всей команды описана на отдельной странице: Настройка Claude Code для вашей организации.
Детерминированные и недетерминированные инструкции
Каждая инструкция, которую вы даёте Claude Code, относится к одному из двух видов:- Недетерминированные: вы пишете инструкцию, а Claude (модель) её читает. Это может быть ваш промпт,
CLAUDE.mdили скилл. Затем модель решает, что делать с этой информацией. Обычно она следует вашим командам, и современные модели хорошо понимают ваше намерение без большого контекста, но нет гарантии, что она выполнит ваши инструкции. Она всё равно может решить чего-то не делать или сделать что-то другое. - Детерминированные: вы настраиваете инструкцию, и Claude Code (среда выполнения) обязан её выполнить. Это может быть хук, правило deny или управляемая настройка. Claude Code применяет это каждый раз, независимо от того, что решила модель.
В большинстве случаев вы хотите, чтобы решал Claude. Почти у каждого правила есть исключения, а современные модели хорошо читают код перед собой и оценивают, подходит ли правило к ситуации. Имея перед собой реальный код, Claude обычно способен принять такое решение лучше, чем правило, написанное вами заранее.
Детерминированный вид нужен, когда вы хотите быть уверены, что определённые вещи всегда происходят (или никогда не происходят), что бы ни решила модель. Это не обязательно что-то драматичное. Авторежим уже блокирует драматичные вещи, вроде деплоя в продакшен или force push поверх чужой работы. Обычно это что-то специфичное для вашего проекта, и оно может быть сколь угодно узким:
- Никогда не редактировать сгенерированный клиент в
src/gen/ - Всегда запускать скрипт заголовков лицензии после создания файла
CLAUDE.md или в промпте, и Claude следовал бы ему почти каждый раз. Но как бы настойчиво вы это ни формулировали, выполнит ли Claude эту строку на конкретном ходе, всё равно решает Claude.
Сообщите Claude то, чего он не видит
Claude начинает каждую задачу с чтения вашего кода, и современные модели делают это очень хорошо. Они найдут структуру файлов, ваши соглашения, тестовый фреймворк и то, как устроены существующие компоненты, обычно быстрее, чем вы смогли бы это объяснить. Это значит, что Claude уже знает большую часть того, что вам, возможно, хотелось бы для него записать. Чего он не может найти, так это информации, которой никогда не было в репозитории:- Решение, которое ваша команда приняла на встрече
- Процесс деплоя, который существует только в голове одного человека
- Переменная окружения, нужная вашим интеграционным тестам
- Может ли он найти это, читая код?
- Станет ли он действительно это искать?
Пишите конкретный промпт
Конкретный промпт помогает по той же причине: он даёт Claude информацию, которой у него ещё нет. Если вы сразу назовёте файл, опишете симптом и скажете, как выглядит «исправлено», вы обычно избавите себя от лишнего круга исправлений позже. То же касается предпочтения между двумя разумными подходами: Claude не может вычитать его из кода, поэтому если вам важно, какой из них он выберет, скажите об этом сразу.
Если у вас уже есть то, что нужно Claude, передайте это напрямую, а не описывайте:
- Файл: введите
@и путь, чтобы включить содержимое файла в сообщение. - Изображение: вставьте скриншот макета или ошибки в промпт.
- Вывод команды: передайте его из оболочки через
cat error.log | claude -p "what's going on here".
think step by step или be thorough — это обычный текст промпта, а не ключевые слова. Основной способ управлять тем, насколько усердно думает Claude, — уровень effort, о котором рассказывается в разделе Измените модель и effort. Такие формулировки всё ещё могут слегка подтолкнуть Claude в пределах его настройки effort, но не поднимут его выше неё.
Одна фраза, которая по-прежнему помогает, — be ambitious. Claude склонен понимать запрос консервативно и делать минимум, который его удовлетворяет, поскольку не видит, на какой объём вы рассчитывали. Когда вам нужна более полная версия, с обработанными граничными случаями и естественным продолжением, скажите об этом:
what would you improve in this file? вполне подходит. По ходу дела вам придётся чуть больше поправлять, и это разумный компромисс.
Сначала проведите мозговой штурм с Claude
Когда вы ещё точно не знаете, чего хотите, не обязательно продумывать всё до промпта. Вместо этого попросите Claude взять у вас интервью:SPEC.md готов, начните новую сессию, чтобы вести реализацию по нему, — так она начнётся с чистого контекста и письменного определения готовности. Это также файл, на который вы позже направите рецензента в разделе Дайте Claude проверку для запуска.
Держите CLAUDE.md коротким
Claude Code загружаетCLAUDE.md в каждую сессию, а значит, каждая строка в нём забирает немного внимания Claude в каждой задаче, независимо от того, актуальна она или нет. Поэтому файл работает лучше всего, когда в нём только то, что Claude не смог бы вывести из самого кода:
- Как проверить работу в этом репозитории: точные команды тестов, проверки типов и линтера, а также как запустить один тестовый файл
- Места, где код вводит в заблуждение: старый паттерн, который встречается повсюду, но который новый код не должен копировать, или каталог, который выглядит неиспользуемым, но на самом деле используется
- Решения, которых нет в репозитории: на каком хелпере ошибок остановилась команда, как устроены деплои, что требует ревью миграций
- Всё, что вам уже дважды пришлось исправлять
CLAUDE.md, прошедший эту проверку, остаётся коротким:
CLAUDE.md
/context all, чтобы убедиться, что Claude загрузил файл.
Обратите внимание, что строка проверки типов — это только команда. Claude нужно знать команду, чтобы проверять свою работу по ходу дела. Если вы также хотите, чтобы Claude Code обеспечивал успешную проверку типов до того, как Claude закончит, это задача для хука Stop. Строка вроде Always typecheck before you finish в этом файле срабатывает в большинстве случаев, но не каждый раз.
Писать файл с нуля не обязательно:
/initгенерирует начальную версию на основе вашей кодовой базы. Дальше работа в основном сводится к удалению строк. Руководство по памяти рекомендует не превышать 200./doctorпредлагает сокращения для всего, что Claude может и так вывести из кода./doctor prompt-auditпомечает инструкции, которые были написаны для старых моделей, ссылаются на несуществующие файлы или противоречат друг другу.
CLAUDE.local.md, а не в CLAUDE.md, и этот файл добавляется в .gitignore, чтобы он не попал в репозиторий.
Если Claude продолжает игнорировать строку, которая есть в
CLAUDE.md, добавление IMPORTANT, скорее всего, не поможет. Либо файл стал настолько длинным, что строка теряется, либо эта строка — правило, не допускающее исключений, и тогда ей место в хуке.Ограничьте правила одной частью кодовой базы
Если правило важно только в одной части кодовой базы, поместите его в.claude/rules/ с фильтром paths:, чтобы оно загружалось только тогда, когда Claude действительно работает там. Например, этот .claude/rules/api.md загружается для файлов TypeScript в src/api/:
.claude/rules/api.md
Помещайте командные процедуры в скиллы
Более способная модель больше знает об инженерии, но не то, как ваша команда делает релиз, что написано в вашем ранбуке инцидентов или как вы хотите писать документацию API. Такие знания помещаются в скилл: процедуру или фрагмент командных знаний, сохранённые в.claude/skills/<name>/SKILL.md.
Для таких вещей скиллы к тому же меньше нагружают контекст, чем CLAUDE.md. Для скилла, который Claude может запустить сам, в каждой сессии он видит название и описание, но читает полный файл, только когда этого требует задача. Длинная процедура релиза в скилле не отягощает ваше несвязанное исправление бага так, как это было бы в CLAUDE.md.
Правило
CLAUDE.md относится и к скиллам: записывайте только то, что Claude не может найти сам.disable-model-invocation: true. Тогда Claude не сможет запустить скилл сам, и он будет выполняться, только когда вы сами введёте /release. Сохранённый как .claude/skills/release/SKILL.md, он может выглядеть так:
.claude/skills/release/SKILL.md
Подключите инструменты, которые нужны Claude
Часть того, чего не видит Claude, находится совсем в другой системе, например в трекере задач или панели ошибок. Если у этой системы есть CLI, это обычно самый простой путь. Например, еслиgh установлен и вы в нём авторизованы, Claude будет открывать pull request и читать комментарии ревью без каких-либо объяснений с вашей стороны. Для CLI, который он раньше не видел, достаточно указать ему на --help.
Для систем без CLI есть MCP. Сервер добавляется из оболочки:
/mcp внутри сессии. Подключённые серверы добавляют названия своих инструментов и инструкции в контекст, даже когда вы их не используете, поэтому стоит там же отключить ненужные.
А если вы работаете с типизированным языком, плагин code intelligence позволяет Claude сразу переходить к определению, вместо того чтобы читать множество файлов в его поисках.
Дайте Claude проверку для запуска
Claude останавливается, когда работа выглядит завершённой. Если у него нет ничего, что можно запустить и узнать, завершена ли работа на самом деле, ему остаётся ориентироваться только на «выглядит завершённой». На практике это делает набором тестов вас, и каждая ошибка ждёт, пока вы случайно её не заметите. Если дать ему что-то, что возвращает «пройдено» или «не пройдено», Claude может замкнуть этот цикл сам. Он вносит изменение, запускает проверку и, если что-то сломалось, читает вывод и исправляет, прежде чем снова запустить проверку. Проверкой может быть почти что угодно, лишь бы Claude мог прочитать результат:- Тестовый файл
- Код выхода сборки
- Линтер
- Скрипт, сравнивающий вывод с фикстурой
- Скриншот браузера рядом с макетом
CLAUDE.md — команда, которая это запускает.
Насколько строгой сделать проверку, решать вам. Варианты простираются от решения самого Claude до обеспечения со стороны Claude Code:
- В промпте:
run the auth tests after, and keep going until they pass. Claude сам решает, когда результат его устраивает. Это работает для любой задачи уже сегодня и без настройки. - Как цель:
/goal all tests in tests/auth pass and lint is cleanзадаёт условие, которое отдельная модель проверяет по диалогу после каждого хода, и Claude продолжает, пока оно не выполнено. Вам самим в сессии это нужно редко. Это важно для длинных фоновых запусков, где Claude иногда завершает ход сводкой о прогрессе, хотя пункты ещё не закрыты, и цель отправляет его обратно к работе. - Как хук Stop: хук
Stopзапускает ваш скрипт каждый раз, когда Claude пытается завершить ход, и возвращает Claude к работе, если скрипт завершается с кодом выхода 2. Это обеспечивается Claude Code (средой выполнения), поэтому ход не закончится, пока проверка типов не пройдёт или не будет достигнут лимит блокировок. Пример приведён ниже. - Тем, кто не писал код: в терминале
/code-reviewпроверяет diff в новом субагенте, который никогда не видел ваш диалог. На него не влияют рассуждения, которые привели к этому коду.
Ревью на соответствие спецификации
Если вы хотите, чтобы ревью проверяло работу на соответствие вашему плану, а не искало ошибки в целом, напишите промпт для ревью сами:Не убирайте из этого промпта часть
skip style. Рецензент, которого попросили найти проблемы, всегда найдёт что-нибудь. Если исправлять каждое замечание, в итоге получатся лишние слои абстракции и тесты для невозможных случаев.Обеспечьте проверку с помощью хука Stop
Версия правила проверки типов в виде хукаStop — это несколько строк в .claude/settings.json. Остановку блокирует код выхода 2. Всё, что команда выводит в stderr, возвращается Claude как причина, по которой он пока не может закончить, поэтому вывод компилятора перенаправляется туда:
.claude/settings.json
tsc не пройдёт. Если хук блокирует восемь остановок подряд без вызова инструмента между ними, Claude Code переопределяет следующую блокировку и завершает ход. Чтобы поднять этот предел, задайте CLAUDE_CODE_STOP_HOOK_BLOCK_CAP.
Обеспечьте соблюдение правил без исключений
Возьмите три правила, которые у вас, возможно, сейчас есть вCLAUDE.md: Never read .env, Always run the formatter after editing, Don't touch the migrations folder. Claude будет соблюдать их почти каждый раз. Те немногие, для которых «почти» недостаточно, перенесите из CLAUDE.md в конфигурацию, которую Claude Code (среда выполнения) применяет сам. С этого момента результат не зависит от того, что модель помнит или решает.
Обеспечьте выполнение шагов с помощью хуков
Хуки запускают что-то ваше в фиксированных точках цикла Claude: до или после вызова инструмента, когда Claude пытается остановиться, при запуске сессии и так далее. Этим может быть:- Shell-команда (обычный случай)
- POST-запрос к HTTP-эндпоинту
- Вызов инструмента на одном из ваших MCP-серверов
- Хук
promptилиagent, который позволяет решать модели
prompt или agent просит решить другую модель, поэтому он тоже не детерминирован. Для настоящего обеспечения используйте хук command или http и добавьте onFailure: "block", если действие должно быть остановлено и тогда, когда сам хук падает или превышает тайм-аут. Например, для хука, который сканирует коммиты на наличие секретов, лучше заблокировать коммит, чем пропустить его непросканированным, пока сканер не работает.
Вот правило форматирования в виде хука PostToolUse. Он запускается после каждого Edit или Write, и то, помнит ли Claude это правило, больше не важно, потому что запускает его не Claude:
.claude/settings.json
PreToolUse, который завершается с кодом выхода 2 для любого пути в migrations/. Писать его самостоятельно не нужно: write a hook that blocks edits to the migrations folder работает как промпт, а /hooks показывает результат. Но не перестарайтесь: хук предназначен для правила с нулём исключений, а у Prefer named exports их множество, поэтому оно остаётся в CLAUDE.md.
Ограничьте доступ с помощью правил разрешений и песочницы
Правила разрешений определяют, что Claude разрешено запускать, читать и загружать. Правилаdeny действуют в любом режиме разрешений, включая auto и bypassPermissions, и именно поэтому правилу для .env место там:
.claude/settings.json
.env завершится неудачей — как через инструмент Read, так и через cat .env.
Правила сопоставляются с вызовами инструментов, а не с намерениями, поэтому стоит знать, где проходят границы:
- Правило
Readдействительно перехватываетcat .env, потому что Claude Code распознаёт распространённые команды чтения файлов. - Оно не перехватит скрипт, который открывает файл.
- Правило deny для
WebFetchна домен ничего не делает сcurlк тому же домену, если не включена песочница.
/sandbox в сессии. Она ограничивает shell-команды Claude в macOS, Linux и WSL2 и также учитывает ваши правила deny для Read и правила WebFetch(domain:...), поэтому для всего, что связано с безопасностью, нужно и то, и другое.
По умолчанию Claude всё ещё может попросить повторить заблокированную команду вне песочницы, и этот запрос проходит обычный процесс разрешений. Строгий режим песочницы на вкладке Overrides в /sandbox отключает такую повторную попытку.
Выберите, к кому применяется правило
То, где находится правило, определяет, к кому оно применяется:.claude/settings.local.jsonи~/.claude/settings.jsonпринадлежат только вам. Когда вы выбираете Yes, and don’t ask again для команды, Claude Code сохраняет это правило в локальный файл..claude/settings.jsonи хуки в нём принадлежат репозиторию. После коммита они применяются ко всем, кто работает в репозитории. Его правила deny действуют сразу. Его правилаallowждут, пока каждый человек не примет диалоговое окно доверия для этой папки, а доверие к рабочему пространству также определяет, когда его хуки начнут выполняться на их машине.- Управляемые настройки принадлежат организации. Они поступают из консоли администратора, MDM или файла
managed-settings.json, и никакой личный файл настроек не может их переопределить, что делает их единственным местом для политики команды безопасности. Если именно вы их задаёте, см. Настройка Claude Code для вашей организации.
Измените настройку по умолчанию
Новая сессия уже принимает за вас несколько решений:- Интерактивные сессии в терминале и VS Code запускаются в авторежиме.
- На большинстве тарифов и у большинства провайдеров используется Claude Opus 5.5 с effort medium.
- Работа делегируется субагентам, когда для этого есть причина.
- Диалог сжимается по мере роста.
Измените режим разрешений
У обоих концов диапазона разрешений есть своя цена:- Режим Manual: вы сами подтверждаете каждую правку и каждую команду, которая выходит за рамки чтения. Безопасно, но после десятого запроса вы начинаете подтверждать не читая, и ничего не движется, пока вас нет за клавиатурой.
bypassPermissions: подтверждает всё, что не покрыто вашими правилами deny и ask, что имеет смысл только в одноразовом контейнере.
curl | bash- Деплои и миграции в продакшене
- Force push поверх чужой работы
- Отправка конфиденциальных данных на внешние эндпоинты
- Действия, которые выглядят так, будто ими управляет контент, прочитанный Claude, а не вы
/permissions, где вы можете подтвердить действие, чтобы Claude мог повторить попытку. После трёх блокировок подряд (или двадцати в сумме) авторежим приостанавливается и снова начинает спрашивать вас.
Ничто из этого не заменяет ваши детерминированные механизмы, потому что классификатор работает после них. Правила deny и ask, а также хуки PreToolUse применяются до того, как классификатор что-либо увидит, поэтому правило deny блокирует в авторежиме точно так же, как и везде. Песочница по-прежнему ограничивает shell-команды, которые она оборачивает.
Вы также можете сказать в диалоге
don't push until I've reviewed, и классификатор воспримет это как сигнал блокировки. Но это всё ещё модель, читающая транскрипт, и фраза может потеряться при сжатии диалога, поэтому всему важному место в правиле deny.autoMode.allow или опишите вашу доверенную инфраструктуру в конфигурации авторежима. Это обычный английский текст, а не шаблоны, и /auto-mode-setup может подготовить для вас раздел environment на основе вашего проекта и недавних сессий:
~/.claude/settings.json
Shift+Tab в сессии переключает режимы разрешений, включая Manual, или можно запустить claude --permission-mode manual из оболочки. А если Manual затем спрашивает слишком часто, /fewer-permission-prompts просматривает ваши недавние транскрипты на предмет частых вызовов Bash и MCP только для чтения и добавляет их в список разрешённых в .claude/settings.json.
Измените модель и effort
Effort — основной способ управлять тем, как долго думает Claude, и он заменяет большую часть того, что раньше делали формулировками промпта. Claude Fable 5.2, Opus 5.5, Sonnet 5.5 и Haiku 5.5 по умолчанию используютmedium, чего вполне достаточно для повседневной работы над функциями с понятным объёмом. Случаи, когда стоит его менять с помощью /effort в сессии:
- Повысьте его через
/effort highили/effort xhigh, когда правильный результат зависит от случаев, которые легко упустить. Например, баг в коде, который писали не вы, нестабильный тест или изменение схемы, при котором Claude должен найти всех, кто читает старую структуру. Тогда Claude проверяет больше граничных случаев и тщательнее перепроверяет свою работу перед ответом — на это и уходят дополнительное время и токены. - Понизьте его через
/effort low, когда вы быстро обмениваетесь репликами и всё равно просматриваете каждый результат: мозговой штурм, первый набросок, переименование в нескольких файлах. Claude быстрее даст вам отправную точку, а поскольку вы направляете каждый шаг, дополнительные размышления почти ничего бы не изменили, кроме времени ожидания. - Оставьте
maxдля сложной задачи, которую Claude должен проработать без вас, например поиска уязвимости. На обычных задачах он склонен размышлять избыточно, так что вы платите больше за ответ, который может оказаться не лучше, чем дал быhigh. - Когда это нужно только для следующего сообщения, например для одного хитрого вопроса посреди в остальном рутинной работы, добавьте в этот промпт
ultrathink, вместо того чтобы менять настройку.
/model fable. Haiku хорошо подходит для субагентов, выполняющих простые задания. Полный список по тарифам и провайдерам — в разделе Конфигурация модели.
Знайте, во что обходятся субагенты
Claude сам делегирует работу субагентам:- Широкий поиск по кодовой базе передаётся встроенному агенту Explore.
- Побочные задачи ответвляются, пока включён режим fork (по умолчанию).
- Запускаемые им субагенты по умолчанию работают в фоне, поэтому ваш основной диалог продолжается.
- Одновременное выполнение независимых частей работы, чтобы вся задача завершилась быстрее
- Вынос длинного вывода, например полного прогона тестов или широкого поиска, из основного диалога, где иначе он оставался бы до конца сессии
- Получение рецензента, который не видел, как писался код
- Предоставление задаче меньшего набора инструментов, чем у основной сессии, например рецензент, который может читать, но не редактировать
- Задайте
model: haikuв определении субагента, если его работа проста, например собрать файлы, импортирующие модуль, или проверить ссылки в документации. Такой работе не нужна большая модель, а Haiku стоит намного дешевле за запрос. - Просите возвращать короткие сводки, чтобы двадцать результатов всё равно не заполнили ваш контекст.
- Смотрите
/usage, чтобы увидеть, какую долю использования занимает каждый тип субагентов, и понять, какие из них оправдывают свою стоимость. - Дайте пользовательскому субагенту в
.claude/agents/толькоtools: Read, Grep, Glob. Теперь это рецензент, который ничего не может редактировать, и это ограничение обеспечивается Claude Code, а не запрашивается в промпте.
.claude/agents/reviewer.md:
.claude/agents/reviewer.md
have the reviewer compare the rate limiter against SPEC.md, и пробелы вернутся в вашу сессию, где Claude сможет их исправить.
Сокращайте расходы и контекст
При окне в 1M токенов у большинства современных моделей и сжатии вблизи его верхней границы контекст у вас будет заканчиваться редко. Но вы всё равно можете платить за контекст, который вам не нужен. Каждый запрос отправляет весь диалог, поэтому сессия, в которой накопились три несвязанные задачи, перечитывает все три на каждом ходу четвёртой. Это стоит дешевле, пока кэш тёплый, и по полной цене после его истечения./usage — первое место, куда стоит заглянуть. На Pro, Max, Ultra, Team и Enterprise он разбивает ваше использование по скиллам, субагентам, плагинам и MCP-серверам. Он также помечает такие паттерны, как длинный контекст или частые промахи кэша, когда один из них превышает 10% вашего использования. Дальше — обычные способы исправления:
/clearмежду несвязанными задачами. Это ничего не стоит и означает, что следующая задача не продолжает платить за историю предыдущей./clear oauth-migrationдаёт имя сессии, которую вы покидаете, чтобы позже к ней можно было вернуться./compactс фокусом, например/compact keep the API changes and the test commands. В длинной сессии/compactсам по себе является большим запросом, поскольку читает весь диалог, чтобы его обобщить, и тем более после истечения кэша.- Следите за фоновой работой:
/loop, проверка цели после каждого хода и собственные субагенты Claude продолжают отправлять запросы, пока вы ничего не вводите.
Кэш промптов живёт около часа при подписке и пять минут при использовании API-ключа, облачного провайдера или кредитов использования. Субагенты получают пять минут, если вы это не измените.При часовом кэше простаивающая сессия объёмом более примерно 200K токенов сжимается незадолго до истечения кэша, поэтому после обеда вы продолжите со сводки. Если история вам вообще не нужна, новая сессия всё равно обойдётся дешевле.
Управляйте сессией
Никакая конфигурация не заменит наблюдения за первой минутой и вмешательства, когда Claude направляется не туда, куда вы хотели. Для этого есть всего несколько средств управления, и их стоит знать наизусть:Escостанавливает Claude посреди действия и сохраняет всё сделанное до этого момента, поэтому его можно перенаправить без потери работы./rewindили двойное нажатиеEscпри пустом промпте открывает меню перемотки, где можно откатить код, диалог или и то, и другое к более раннему промпту. Благодаря этому можно с небольшим риском сначала попробовать более смелый подход и откатиться, если он не сработает. То же меню может обобщить часть диалога, если она устарела./clearначинает заново. Если вы дважды исправили одно и то же, а всё по-прежнему неправильно, третье исправление в основном лишь добавится к диалогу, который уже содержит две неудачные попытки, которые Claude продолжит перечитывать./clearплюс один новый промпт, учитывающий то, что вы узнали, почти всегда работает лучше.
/btw отвечает на быстрый вопрос, ничего не добавляя в историю. А для работы, растянутой на несколько дней, /rename oauth-migration в сессии даёт ей имя, чтобы позже claude --resume oauth-migration из оболочки подхватил её снова, вместе с чекпоинтами. claude --continue возобновляет самую последнюю сессию.
Позвольте Claude работать без вас
Всё на этой странице становится немного важнее, когда вас нет рядом, чтобы заметить ошибки. Пока вы наблюдаете, отсутствие у Claude какой-то части контекста не страшно: вы заметите это за одно-два сообщения и скажете ему. В запуске, который вы начали перед сном, никто ему ничего не скажет, и утром вы узнаете, что он всю ночь строил работу на неверном предположении. Прежде чем оставить задачу выполняться самостоятельно, стоит пройтись по этим пяти вопросам применительно к конкретной задаче:- Знает ли он, как выглядит готовый результат? Условие цели, файл спецификации или падающий тест, который он должен сделать зелёным.
- Может ли он проверить свою работу? Набор тестов, хук
Stop, какой-либо этап ревью. - К чему ему разрешено прикасаться? Правила разрешений,
dontAsk, песочница, worktree, единственная ветка, в которую он может делать push. - Что его остановит?
--max-turns,--max-budget-usd, лимит расходов. - Куда идёт результат и кто его утверждает? PR, комментарий или сводка, а затем человек, одобряющий слияние, деплой или что-либо ещё необратимое.
Запускайте Claude из скрипта
claude -p "prompt" выполняется один раз и завершается — именно так Claude Code оказывается в задачах CI, git-хуках и циклах оболочки.
В скрипте вам почти всегда понадобятся ещё несколько флагов:
--bareпропускает хуки, скиллы, плагины, MCP-серверы и файлыCLAUDE.md— как из репозитория, так и с машины, — поэтому запуск ведёт себя одинаково, где бы он ни выполнялся. Он также никогда не использует ваш вход в claude.ai: аутентификация берётся изANTHROPIC_API_KEY,apiKeyHelperв файле, переданном через--settings, или из учётных данных вашего облачного провайдера.--append-system-prompt,--mcp-configи--settingsявно передают всё, что запуску действительно нужно. Хуки, переданные через--settings, не выполняются при--bare, поэтому не используйте--bareдля запуска, которому они нужны.--allowedToolsзаранее разрешает его инструменты, а--permission-mode dontAskотклоняет всё остальное, что потребовало бы подтверждения.--output-format jsonдаёт единый объект результата для разбора, аstream-jsonс--verboseпередаёт события по мере их возникновения.
OK или FAIL, а запуск, достигший лимита ходов, вместо этого завершается с ошибкой. Сначала попробуйте на трёх файлах, посмотрите, что пошло не так, исправьте промпт, а затем запустите остальные.
Авторежим работает и с -p, если передать --permission-mode auto. В неинтерактивном запуске блокировка классификатором запрещает только это одно действие, и Claude продолжает работу, а повторные блокировки не приостанавливают запуск, как это происходит в терминале. Прочитайте, как там применяются пороговые значения, прежде чем полагаться на это.
Запускайте по расписанию или по событию
Когда запуск идёт, Claude может справиться с остальным сам. Единственное, чего он не может, — решить начать, поэтому это должно сделать что-то другое: вы, таймер или событие вроде упавшей проверки CI или нового PR. Внутри открытой сессии это/loop, который повторяет промпт с заданным интервалом:
/schedule настраивает облачную запланированную задачу, которая запускается по таймеру. Для неё нужен вход в claude.ai, а не API-ключ. Триггер по событию GitHub можно добавить, попросив об этом Claude, а API-триггер — на claude.ai/code/routines.
Запускайте сессии параллельно
Когда у вас одновременно идут отдельные части работы, дайте каждой собственную рабочую копию, чтобы правки не конфликтовали.claude -w feature-auth запускает сессию в новом worktree, десктопное приложение запускает несколько таких сессий рядом, а облачные сессии выполняют их в облаке, а не на вашей машине.
Worktree — это свежая рабочая копия, а значит, файлов из gitignore, таких как .env, там нет, и зависимости не установлены. Для первого перечислите нужные файлы из gitignore в .worktreeinclude в корне репозитория (синтаксис как у .gitignore), и Claude Code скопирует их в каждый создаваемый worktree:
.worktreeinclude
node_modules там означал бы полную копию на каждый worktree. Для больших каталогов есть настройка worktree.symlinkDirectories; также можно держать команду установки в CLAUDE.md, чтобы Claude запускал её каждый раз, когда начинает работу в новой копии.
Убирать за всем этим самостоятельно вам придётся редко:
- Когда вы выходите из безымянной сессии в worktree, Claude Code удаляет worktree, если в нём ничего нет. Для именованной сессии или сессии с изменениями он спрашивает, что делать.
- Worktree субагентов исчезают, когда субагент завершает работу без изменений.
- Оставшиеся worktree субагентов и фоновых сессий удаляются, когда они старше
cleanupPeriodDaysи не содержат работы.
За запуском
claude -p --worktree придётся убирать самостоятельно, поскольку он завершается без вопросов. Удаляйте такие worktree с помощью git worktree remove <path>, а если git отказывает, потому что worktree заблокирован, сначала выполните git worktree unlock <path>./batch migrate every handler to the v2 response helpers разбивает работу на 5–30 частей и показывает вам план. После того как вы его одобрите, каждая часть получает собственный worktree и открывает PR или сообщает, что произошло. Из оболочки claude agents (пока research preview) даёт вам один экран для всего, что работает в фоне на вашей машине.
Вторая сессия — это также самый простой независимый рецензент, которого можно получить. Одна сессия пишет ограничитель частоты запросов, другая проверяет @src/middleware/rateLimiter.ts, не наблюдая за его написанием, а вы вставляете замечания обратно в первую. Та же идея, что и у /code-review, только сообщения переносите вы.
Что можно перестать делать
Каждый из этих советов был хорошим, когда его написали. Большинство были обходными путями для того, что модель тогда ещё не умела делать надёжно, и с тех пор модели это наверстали. Если некоторые из них всё ещё остаются у вас привычками, вот почему от них можно безопасно отказаться.
Если какой-либо другой совет на этой странице когда-нибудь начнёт казаться пустой тратой сил, это, вероятно, признак того, что ему тоже место в этой таблице.
Связанные ресурсы
- Как работает Claude Code: цикл, инструменты и то, что загружается при запуске
- Изучите контекстное окно: что занимает место в сессии и когда оно загружается
- Расширьте Claude Code: выбор между скиллами, хуками, MCP, субагентами и плагинами
- Выберите режим разрешений и Настройте разрешения
- Эффективно управляйте расходами
- Запускайте Claude Code программно и Автоматизируйте работу с облачными запланированными задачами
- Для руководителей команд и администраторов: Настройка Claude Code для вашей организации