Вы просите добавить баннер, а агент предлагает заодно обновить старый модуль. Полезно увидеть такой замысел до правок и убрать лишний пункт. Для этого важны и ясная постановка, и выбранный режим работы.

Режим доступа задаёт порядок разрешения действий Claude Code: что можно выполнить сразу, что потребует вопроса, а что будет заблокировано. На отдельные действия влияют также настройки и уже выданные разрешения. Сам режим не проверяет качество решения.

Разберём все режимы на примере локальной сессии Claude Code в терминале.

Просьба и разрешение

Тут легко перепутать две вещи, которые выглядят похоже, а работают по-разному.

Первая - то, что вы пишете в постановке. Раздел с исключениями, фраза "сначала покажи план, ничего не меняй", список файлов, которые трогать нельзя. Это смысловые границы: они объясняют задачу и заметно влияют на то, что агент предложит сделать. Но это текст, и на технические разрешения он не влияет.

Вторая - режим доступа, он же permission mode. Это настройка сессии. Написать "ничего не меняй" и работать в режиме, где правки принимаются автоматически, вполне возможно. Агент должен соблюдать просьбу, но сама эта фраза не включает техническую блокировку правок.

Есть одно исключение, и оно частичное. В режиме auto классификатор читает переписку и принимает "не пушь" или "дождись моего ревью" как сигнал блокировать такие действия. Но это не правило в настройках: если при сжатии контекста сообщение с запретом выпадет, выпадет и запрет. Для жёсткой границы нужны настройки, а не фраза.

Режим не виден из запроса

Фраза "сначала составь план" в запросе полезна, она задаёт порядок работы. Но текущий режим по ней не определишь, для этого есть индикатор в строке состояния сессии. В каком режиме сессия стартует, зависит от версии, интерфейса, тарифа и настроек, так что начинать стоит со взгляда на индикатор, а не с предположения.

Режимы от безопасного к опасному

Режимы удобнее держать в голове не списком, а лесенкой. Наверху агент почти ничего не делает без вас, внизу не спрашивает вообще. Пять ступенек плюс один режим, который в эту шкалу не укладывается.

Пять режимов доступа расположены сверху вниз по возрастанию автономности: plan, default, acceptEdits, auto и bypassPermissions. Отдельно, вне этой шкалы, стоит dontAsk, который ничего не спрашивает и отклоняет всё заранее не разрешённоеРежимы автономности от безопасного к опасномуОтдельно, вне шкалы автономностиplandefaultacceptEditsautobypassPermissionsdontAskИсследует и планирует, код не правитСпрашивает перед правками и командамиПравки файлов принимает самПочти всё сам, команды и сетьпроверяет классификаторПочти ничего не спрашиваетЧтение и заранее разрешённое,остальное отклоняется без вопроса
Пять ступенек одной шкалы и dontAsk, который стоит в стороне от неё

Смотреть тут стоит на одно - сколько действий проходит без вашего ответа. Сверху вниз это число растёт, а вместе с ним растёт и цена ошибки. Наверху вы тратите время на подтверждения, внизу узнаёте о неудачной правке уже по факту.

Коротко про каждый:

  • plan - агент исследует проект и предлагает изменения до реализации, правки исходников на это время заблокированы. Исключение одно: если сессия запущена с разрешённым bypassPermissions, в терминале планирование правки уже не блокирует, агента только просят ничего не менять. Нужен тогда, когда вы ждёте ответ по коду, а не изменения в нём. Команды для исследования при доступном auto тоже проверяет классификатор, так что вопросов здесь бывает даже меньше, чем в default. Выше на лесенке он стоит потому, что ничего не меняет в исходниках. Когда план готов, Claude Code спрашивает, как продолжить: одобрить с переходом в auto, одобрить с ручным подтверждением правок или планировать дальше.
  • default, на экране обычно Manual - спрашивает перед правками, командами и обращениями к сети. Чтение проекта проходит без вопроса, уже выданные разрешения тоже, так что подтверждать каждое действие заново не придётся. Вопрос иногда приходит и на команду, которая выглядит безобидно. Это не придирка: find с флагом -exec запускает любую команду, а -delete удаляет найденное, поэтому такие формы без вашего ответа не проходят.
  • acceptEdits, на экране "accept edits" - сам применяет правки файлов в рабочей папке и ряд файловых команд, включая rm и mv. Это про скорость в известных файлах, которые вы всё равно перечитаете после.
  • auto - делает почти всё сам. Чтение и правки в рабочей папке проходят сразу, а команды и обращения к сети проверяет отдельная модель, классификатор. Часть из них он блокирует, и об этом ниже отдельно.
  • bypassPermissions, он же флаг --dangerously-skip-permissions - не спрашивает почти ни о чём. Остаются только ваши явные правила в настройках (запреты и "всегда спрашивать") и пара системных предохранителей. Его называют YOLO, и название честное.

Шестой, dontAsk, стоит на схеме отдельно, и вот почему. Ступеньки различаются тем, сколько проходит без вашего ответа, и чем ниже, тем больше агенту позволено. dontAsk устроен наоборот: он тоже не спрашивает, но не соглашается, а отказывает. Выполняется то, что и в обычном режиме не требует вопроса (чтение файлов в рабочей папке, безопасные команды только для чтения), плюс заранее разрешённое. Всё, что потребовало бы вопроса, отклоняется без единого вопроса. Сессия просто не ждёт ответа. Нужен он там, где отвечать некому - в автоматических сценариях и закрытых средах, - и в обычной работе за клавиатурой вам не пригодится.

Переключают режим не просьбой в чате, а руками. В терминале это Shift+Tab, перебирающий режимы по кругу, или команда /plan для входа в планирование. Можно задать режим и при запуске:

claude --permission-mode plan

Команду вводят в терминале из папки проекта, /plan - внутри уже открытой сессии. В редакторе переключатель выглядит иначе и стоит под полем ввода, но ориентир везде один: индикатор текущего режима.

Про нижнюю ступеньку

bypassPermissions уместен там, где не жалко всего окружения: одноразовая задача в контейнере или виртуальной машине. На рабочем проекте одна неудачная команда обойдётся дороже, чем все сэкономленные подтверждения вместе взятые. И вернуть удалённое этот режим не поможет: он только пропускает команды, а откатывать их нечем.

Две оговорки, без которых лесенку легко переоценить. Планирование - не резервная копия: оно не даёт точку возврата и не отменяет уже сделанного, а только показывает замысел раньше, чем он превратится в правки. И ни одна ступенька не двигает границы задачи - они остаются там, где вы их описали.

Когда auto мешает, а не помогает

С auto связано одно ожидание, которое стоит поправить заранее. Режим называется "автоматический", и кажется, что в нём проходит вообще всё. Не проходит: классификатор как раз и нужен, чтобы часть действий остановить.

Среди того, что он блокирует по умолчанию - продакшен-деплои и миграции, отправка данных на внешние адреса, принудительный push, массовое удаление в облачном хранилище, выдача прав, скачивание и запуск кода из сети, необратимое удаление файлов, которые существовали до начала сессии. Логика у списка простая: это то, чего не откатишь своими силами.

Что происходит дальше, зависит от того, сколько блокировок набралось. Одно заблокированное действие попадает в список недавно отклонённых (/permissions, вкладка Recently denied), и оттуда его можно перезапустить с ручным подтверждением. Сам Claude тем временем получает отказ и пробует другой путь. Если классификатор блокирует три раза подряд или двадцать раз за сессию, режим приостанавливается и Claude Code возвращается к обычным вопросам, а после вашего подтверждения снова включает auto. Пороги фиксированные, настроить их нельзя.

Отсюда видно, где режим начинает мешать. Пока в задаче одна спорная команда, auto работает как задумано: разрешил её руками и пошёл дальше. А вот когда задача из таких команд и состоит - разворачиваете стенд, гоняете миграции, работаете с чужой инфраструктурой, - получается странное. Вы всё равно подтверждаете почти каждый шаг вручную, только с лишними кругами: агент натыкается на блокировку, ищет обходной путь, режим то приостанавливается, то включается снова.

В такой момент проще самому подняться по лесенке выше. Какую - зависит от того, что именно мешает:

  • default - самый прямой вариант. Каждая правка и команда спрашивает разрешения, отклонённых не появляется вовсе. Медленнее, зато каждый шаг перед глазами;
  • acceptEdits - когда правки файлов вас устраивают, а спорные тут только команды вроде деплоя или миграций. Но учтите: rm и mv в рабочей папке этот режим пропускает без вопроса, а в auto удаление существующих файлов останавливал классификатор.

Это не обход блокировки, и путать тут не стоит. Вы не отключаете проверку, а берёте её на себя. А удаление системных путей вроде корня диска или домашней папки без вашего подтверждения не пройдёт даже в bypassPermissions. В нём и в auto Claude Code спросит вас, причём в терминале на ответ дают пару минут. Где спросить негде, auto такую команду отклоняет, а dontAsk отклоняет её всегда. Речь про другое - не ходить лишний круг там, где вы и так собирались подтверждать всё руками.

Вторая причина подняться выше к блокировкам отношения не имеет. Классификатор решает, опасно ли действие, но не решает, туда ли идёт работа. Если агент третий раз правит одно и то же, а результат всё не тот, в auto он просто сделает четвёртую попытку, и тоже без вопросов. Разработчики Claude Code советуют в такой момент не давить дальше: вернитесь в plan, заново согласуйте замысел и только потом продолжайте. Тот же принцип работает и в начале. Задачу, которую вы понимаете целиком, можно сразу отдать режиму посвободнее. Если вы пока и сами не уверены, что должно получиться, начинайте с plan.

Почему блокируется безобидное

Классификатор знает про ваш проект только то, что видит: своими считаются рабочая папка и удалённые репозитории, настроенные до старта сессии. Репозиторий, добавленный уже по ходу работы, в этот круг не попадает, и обращение к нему выглядит как выход наружу. Так что "он заблокировал безобидную команду" чаще означает нехватку контекста, а не ошибку в самой команде.

Что это меняет в работе

В повседневной работе всё сводится к четырём привычкам.

  1. посмотреть на индикатор в начале работы. Он показывает режим; для конкретного действия важны также уже выданные разрешения;
  2. сверить предложенный замысел с границами задачи до того, как он выполнен. Лишний пункт правится словами, и это самая дешёвая правка из всех возможных;
  3. прочитать формулировку варианта, которым вы одобряете план: она говорит, в каком режиме продолжится сессия после выхода из plan;
  4. проверить результат после выполнения. Ни один режим не отвечает за то, что задача решена верно, - за это отвечает ваша проверка.

Режим доступа - это ответ на вопрос "что можно делать без меня", а не на вопрос "правильно ли это сделано". Второй вопрос остаётся за вами при любом выборе.