Запретил Claude Code трогать миграции и .env через hooks, делюсь конфигом

Рейтинг: 51% · 4 голосов
Программирование с искусственным интеллектом: Claude Code, Cursor, GitHub Copilot, agentic coding, протокол MCP, генерация и ревью кода, автоматизация рабочего процесса разработчика.
Ответить
Аватара пользователя
simmeon1
Сообщения: 18
Зарегистрирован: 11 май 2026, 08:45

Запретил Claude Code трогать миграции и .env через hooks, делюсь конфигом

Сообщение simmeon1 »

Надоело. Третий раз за месяц агент полез исправлять старую миграцию вместо создания новой, а один раз бодро вписал живой ключ в .env.example. В CLAUDE.md давно написано не трогать migrations и .env, но инструкции он соблюдает через раз, особенно после compaction.

Сделал через hooks, теперь железно. В .claude/settings.json вешаю PreToolUse на Edit|Write|MultiEdit, command указывает на .claude/hooks/protect.sh. Сам скрипт примерно такой:

path=$(jq -r '.tool_input.file_path // empty')
case "$path" in
*migrations/*|*.env*) echo "файл защищен, создай новую миграцию" >&2; exit 2;;
esac

exit 2 блокирует вызов и отдает агенту текст из stderr, он его читает и реально идет создавать новую миграцию вместо правки старой. Месяц полет нормальный, ни одного залета. Кто что еще вешает на hooks?
👍2 ❤️1 🔥1 😄 🤔1
✔ Лучший ответ сформирован автоматически — bunlord
simmeon1 писал(а):инструкции он соблюдает через раз, особенно после compaction Вот главный вывод, который до многих не доходит годами. CLAUDE.md это пожелание, hook это закон. Все критичное должно быть кодом, а не текстом в промпте. У нас на PostToolUse повешен phpstan по измененным файлам, агент видит ошибки сразу и чинит за собой, до коммита доезжает уже чистое. Ревью стало скучным, и это лучше…
Перейти к ответу →
Аватара пользователя
prometheusandy
Сообщения: 22
Зарегистрирован: 04 июн 2026, 18:31

Re: Запретил Claude Code трогать миграции и .env через hooks, делюсь конфигом

Сообщение prometheusandy »

а чем deny в permissions не угодил? в том же settings.json можно Edit(db/migrations/**) и Write(.env*) в запрет, и никаких скриптов городить не надо
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
k_egor_s
Сообщения: 20
Зарегистрирован: 16 май 2026, 11:11

Re: Запретил Claude Code трогать миграции и .env через hooks, делюсь конфигом

Сообщение k_egor_s »

deny по путям не ловит Bash. агент спокойно делает sed -i по миграции через терминал и привет твоя защита. hook на PreToolUse вешается и на Bash тоже, там парсишь команду. поэтому скрипт честнее, сам так живу с зимы
👍 ❤️1 🔥 😄1 🤔
Аватара пользователя
bunlord
Сообщения: 2
Зарегистрирован: 14 май 2026, 10:09

Re: Запретил Claude Code трогать миграции и .env через hooks, делюсь конфигом

Сообщение bunlord »

✔ Лучший ответ — сформирован автоматически
simmeon1 писал(а):инструкции он соблюдает через раз, особенно после compaction
Вот главный вывод, который до многих не доходит годами. CLAUDE.md это пожелание, hook это закон. Все критичное должно быть кодом, а не текстом в промпте. У нас на PostToolUse повешен phpstan по измененным файлам, агент видит ошибки сразу и чинит за собой, до коммита доезжает уже чистое. Ревью стало скучным, и это лучшее что случилось с проектом за год.
👍1 ❤️1 🔥 😄 🤔
Аватара пользователя
solidity2024
Сообщения: 40
Зарегистрирован: 11 май 2026, 02:34

Re: Запретил Claude Code трогать миграции и .env через hooks, делюсь конфигом

Сообщение solidity2024 »

@simmeon1, у тебя в скрипте jq -r '.tool_input.file_path // empty', а у MultiEdit структура входа другая, плюс относительный путь пролезает мимо твоего case если агент работает из подпапки. матчи по realpath, иначе защита дырявая. и уточнение для тех кто будет повторять: stderr агенту отдается именно при exit 2, с exit 1 хук просто молча свалится и вызов пройдет
👍1 ❤️ 🔥 😄 🤔1
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «AI-ассистированная разработка»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей