Что это
Разрешения складываются из двух слоёв. Первый - режим: в ручном агент спрашивает почти на каждом шаге, в режиме правок сам меняет файлы, в auto действия вместо тебя проверяет вторая модель. Второй - правила в .claude/settings.json: allow пропускает без вопроса, ask спрашивает всегда, deny запрещает. Deny срабатывает первым в любом режиме.
Чем запрет надёжнее CLAUDE.md
В CLAUDE.md у меня написано: коммить и выкладывай только по моей команде. И всё равно примерно каждый десятый раз Claude делает это сам. Правило из CLAUDE.md агент только старается выполнить. Разрешения держит сама программа, и промптом их не обойти. Поэтому то, что не должно случиться никогда, я пишу в deny: чтение .env и git push --force.
Как это выглядит на практике
В ручном режиме агент замучает вопросами, ответов на которые ты не знаешь, и рука сама жмёт «да». Кнопка «Yes, and don't ask again» запоминает такое согласие для проекта, и за неделю список собирается сам. Раз в месяц открывай /permissions и убирай лишнее.