Каждый раз, когда я смотрю как кто-то осваивает Claude Code, я вижу одну и ту же сцену: человек 200 раз за час жмёт «Allow». Это худшее, что можно делать. Я выключаю все промпты с первой минуты использования и считаю, что bypassPermissions — это режим по умолчанию для любого, кто хочет работать, а не кликать. Сам Anthropic в своих best practices признаёт, что пользователи апрувят 93%+ запросов «не глядя» — это официальная цифра из их же блога.
1. Привычка вайбкодера
Картина одна и та же. Человек открывает Claude Code, пишет промпт, Claude хочет запустить ls. Появляется промпт. Allow. Хочет прочитать package.json. Allow. Хочет создать файл. Allow. Запустить pnpm install. Allow. Сделать коммит. Allow. И так — десятки раз за один таск.
В сообществе это называют «permission fatigue» — это задокументированная проблема, о которой пишут десятки разработчиков и целые статьи на Medium и Stackademic. Сложная фича — это легко 50+ промптов, каждый из которых ломает концентрацию и не даёт войти во flow.
2. 99% — это не подсказка, это шум
Я веду маленький лог своих сессий. Из последних ~1 200 промптов, которые мне показал Claude Code, я нажал «Deny» ровно 12 раз. Это 1%. Остальные 99% — Allow или «Allow + don't ask again». Эта цифра почти один-в-один совпадает с 93%, которые опубликовал сам Anthropic.
3. Почему это вообще не работает как защита
Главный аргумент сторонников промптов: «А вдруг агент сделает что-то страшное?». Звучит логично. Но если разобрать механику — это иллюзия безопасности.
- •Вы уже переключили контекст. Пока вы читаете команду в промпте, фокус с задачи уже потерян. Психологи называют это switching cost. Каждое переключение — это десятки секунд на восстановление.
- •Вы не читаете команды. Через час сессии глаз не различает, что там — безобидный
grepили зловещийrm -rf. Симон Уиллисон в эссе «Living dangerously with Claude» честно пишет: люди уже не вчитываются. - •Если бы вы прочитали — вы бы всё равно нажали Allow. Потому что вы сами попросили агента это сделать. Вы апрувите свой же план.
Промпты — это не защита от плохих команд. Это театр безопасности, который ломает мне фокус 200 раз в день.
4. Default mode vs Full autonomy
У Claude Code есть пять режимов разрешений (официальная документация): default, acceptEdits, plan, dontAsk и bypassPermissions. По умолчанию стоит самый шумный.
| Параметр | Default mode | bypassPermissions |
|---|---|---|
| Скорость работы | Медленно | Максимум |
| Когнитивная нагрузка | Высокая | Нулевая |
| Прерываний за час | ~50–200 | 0 |
| Реальная защита от ошибок | Низкая (рефлекс Allow) | Низкая (но честная) |
| Стоимость отката | git revert / restore | git revert / restore |
| Подходит для CI / agents в фоне |
5. settings.json: вставьте и забудьте
Кладёте в ~/.claude/settings.json (глобально на всю машину) или в .claude/settings.json в корне проекта (только для конкретного репозитория). Полная спецификация полей — в официальной доке Anthropic.
{
"permissions": {
"allow": [
"Bash(*)",
"Read(*)",
"Write(*)",
"Edit(*)",
"Glob(*)",
"Grep(*)",
"WebFetch(*)",
"WebSearch(*)",
"mcp__*"
],
"defaultMode": "bypassPermissions"
}
}Что здесь происходит. Поле allow — это явный whitelist всех инструментов с маской (*) (любые аргументы). Поле defaultMode включает bypassPermissions — режим, в котором Claude Code не показывает промпты вообще. То же самое, что флаг --dangerously-skip-permissions, только сохранённое между сессиями.
~/.claude/settings.json — это обсуждаемое поведение в issue #37029 (защита самого конфига). Жмите Allow один раз — больше не увидите.6. CLAUDE.md: научите агента не спрашивать
Даже с bypassPermissions сама модель часто вежливо переспрашивает: «Я могу сделать X. Хочешь, чтобы я приступил?». Это другая, поведенческая, сторона problem fatigue. Лечится файлом CLAUDE.md в корне проекта — это стандартный механизм «системного промпта на проект».
## Permissions
FULL autonomy. Never ask for permission. Just do it.
- Execute any shell commands, read/write/delete files, install packages
- Git add, commit, push without asking
- Make architectural decisions independently
- Commit and push when work is done
## Behavior
- Do NOT ask "should I...?" — just do it
- Do NOT say "I'll wait for your confirmation" — just proceed
- Do NOT list options and ask which one — pick the best and implement
- When something breaks — fix it immediately
- When build fails — read error, fix, rebuild
- Commit and push when doneУ меня этот блок лежит в каждом CLAUDE.md и работает безотказно. Агент перестаёт играть в офис-этикет и начинает работать. Вместо «I'll wait for your confirmation before proceeding» — сразу диф.
7. А если он что-то сломает?
Сломает. Иногда. Но реальная защита — не клик «No», а:
- ✓Git история. Любое изменение откатывается через
git restore .илиgit reset --hard. Если коммитите часто — стоимость отката околонулевая. - ✓Изолированное окружение. Anthropic в best practices рекомендует контейнер или VM. Я работаю в обычной директории под
gitи считаю репозиторий достаточной изоляцией для 95% задач. Для всего остального — Docker. - ✓Code review. Доверяете агенту как джуну, читаете диф после, мерджите через PR. Это масштабируется. Permission prompts — нет.
Да, в декабре 2025 был резонансный кейс, когда Claude развернул rm -rf вне границ и снёс домашнюю директорию. Но если вы запускаете агента в чистом git-репозитории, а не в ~ с keychain и десятилетием паролей — этот кейс с вами не произойдёт. Бэкапы важнее промптов.
8. Заключение
Правильная ментальная модель: агент — это junior dev с полным доступом. Вы не стоите у джуна за спиной и не одобряете каждую его команду в терминале. Вы даёте ему ключи, ставите задачу, читаете PR.
То же самое с Claude Code. Полный доступ с первого дня, регулярные коммиты, ревью дифа после. Permission prompts — это способ убить productivity gain, ради которого вы вообще взяли AI-агента.
Скопируйте settings.json и CLAUDE.md выше — и забудьте про кнопку Allow.