Обзор
Политики сгруппированы по категориям:| Категория | Политики | Тип хука |
|---|---|---|
| Опасные команды | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
| Секреты (санитайзеры) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
| Окружение | block-env-files, protect-env-vars | PreToolUse |
| Доступ к файлам | block-read-outside-cwd, block-secrets-write | PreToolUse |
| Git | block-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-staged | PreToolUse |
| База данных | warn-destructive-sql, warn-schema-alteration | PreToolUse |
| Предупреждения | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
| Рабочий процесс | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
block-— остановить агента от продолжения.warn-— дать агенту дополнительный контекст, чтобы он мог самокорректироваться.sanitize-— удалить чувствительные данные из выходных данных инструмента перед тем, как их увидит агент.require-— блокировать событие Stop до выполнения условий.
Опасные команды
Предотвратите выполнение агентами операций, которые трудно отменить или которые могут повредить хост-систему.block-sudo
События: PreToolUse (Bash)По умолчанию: Отклоняет любую команду
sudo.
Блокирует вызовы, содержащие ключевое слово sudo. Сопоставление шаблонов выполняется на разобранных токенах команд, а не на исходной строке, чтобы предотвратить обход через инъекцию операторов shell.
Параметры:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
allowPatterns | string[] | [] | Точные префиксы команд, которые разрешены. Каждая запись сопоставляется с разобранными токенами argv. |
sudo systemctl status nginx разрешён, но sudo rm /etc/hosts запрещён.
Шаблоны сопоставляются с разобранными токенами, а не с исходной командной строкой. Это предотвращает обход через добавленные операторы shell (например,
sudo systemctl status x; rm -rf / не соответствует sudo systemctl status *).block-rm-rf
События: PreToolUse (Bash)По умолчанию: Отклоняет
rm -rf, rm -fr и аналогичные формы рекурсивного удаления.
Параметры:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
allowPaths | string[] | [] | Пути, которые безопасно рекурсивно удалять (например, /tmp). |
block-curl-pipe-sh
События: PreToolUse (Bash)По умолчанию: Отклоняет
curl <url> | bash, curl <url> | sh, wget <url> | bash и аналогичные шаблоны.
Нет параметров.
block-failproofai-commands
События: PreToolUse (Bash)По умолчанию: Отклоняет команды, которые бы удалили или отключили failproofai (например,
npm uninstall failproofai, failproofai policies --uninstall).
Нет параметров.
Секреты (санитайзеры)
Предотвратите утечку учётных данных агентом в его контекст или выходные данные. Политики санитайзеров срабатывают на событиях PostToolUse. Когда Claude запускает команду Bash, читает файл или вызывает любой инструмент, эти политики проверяют выходные данные перед возвратом Claude. Если обнаружен шаблон секрета, политика возвращает решение deny, которое предотвращает передачу выходных данных обратно.sanitize-jwt
События: PostToolUse (все инструменты)По умолчанию: Скрывает JWT-токены (три сегмента base64url, разделённые
.).
Нет параметров.
sanitize-api-keys
События: PostToolUse (все инструменты)По умолчанию: Скрывает распространённые форматы API-ключей: Anthropic (
sk-ant-), OpenAI (sk-), GitHub PATs (ghp_), AWS access keys (AKIA), Stripe keys (sk_live_, sk_test_), и Google API keys (AIza).
Параметры:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
additionalPatterns | { regex: string; label: string }[] | [] | Дополнительные regex-шаблоны для трактовки как секретов. |
sanitize-connection-strings
События: PostToolUse (все инструменты)По умолчанию: Скрывает строки подключения к базе данных, содержащие встроенные учётные данные (например,
postgresql://user:password@host/db).
Нет параметров.
sanitize-private-key-content
События: PostToolUse (все инструменты)По умолчанию: Скрывает PEM-блоки (
-----BEGIN PRIVATE KEY-----, -----BEGIN RSA PRIVATE KEY----- и т.д.).
Нет параметров.
sanitize-bearer-tokens
События: PostToolUse (все инструменты)По умолчанию: Скрывает заголовки
Authorization: Bearer <token>, где токен состоит из 20 или более символов.
Нет параметров.
Окружение
Защитите чувствительную конфигурацию окружения от чтения или раскрытия агентами.block-env-files
События: PreToolUse (Bash, Read)По умолчанию: Отклоняет чтение файлов
.env через cat .env, вызовы инструмента Read с .env в качестве пути файла и т.д.
Не блокирует .envrc или другие файлы, связанные с окружением — только файлы, названные ровно .env.
Нет параметров.
protect-env-vars
События: PreToolUse (Bash)По умолчанию: Отклоняет команды, которые выводят переменные окружения:
printenv, env, echo $VAR.
Нет параметров.
Доступ к файлам
Держите агентов внутри границ проекта и подальше от чувствительных файлов.block-read-outside-cwd
События: PreToolUse (Read, Bash)По умолчанию: Отклоняет чтение файлов вне текущего рабочего каталога (корня проекта). Параметры:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
allowPaths | string[] | [] | Префиксы абсолютных путей, которые разрешены даже если вне cwd. |
block-secrets-write
События: PreToolUse (Write, Edit)По умолчанию: Отклоняет записи в файлы, обычно используемые для приватных ключей и сертификатов:
id_rsa, id_ed25519, *.key, *.pem, *.p12, *.pfx.
Параметры:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
additionalPatterns | string[] | [] | Дополнительные шаблоны имён файлов (glob-стиль) для блокировки. |
Git
Предотвратите случайные пуши, force-пуши и ошибки ветвей, которые трудно отменить.block-push-master
События: PreToolUse (Bash)По умолчанию: Отклоняет
git push origin main и git push origin master.
Параметры:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
protectedBranches | string[] | ["main", "master"] | Имена ветвей, в которые нельзя пушить напрямую. |
block-work-on-main
События: PreToolUse (Bash)По умолчанию: Отклоняет проверку (checkout) ветвей
main или master напрямую.
Параметры:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
protectedBranches | string[] | ["main", "master"] | Имена ветвей, которые нельзя проверять напрямую. |
block-force-push
События: PreToolUse (Bash)По умолчанию: Отклоняет
git push --force и git push -f.
Нет специфических параметров политики. Используйте кросс-элементный hint для предложения альтернатив:
warn-git-amend
События: PreToolUse (Bash)По умолчанию: Инструктирует Claude действовать осторожно при запуске
git commit --amend. Не блокирует команду.
Нет параметров.
warn-git-stash-drop
События: PreToolUse (Bash)По умолчанию: Инструктирует Claude подтвердить перед запуском
git stash drop. Не блокирует команду.
Нет параметров.
warn-all-files-staged
События: PreToolUse (Bash)По умолчанию: Инструктирует Claude просмотреть то, что он ставит на сцену, при запуске
git add -A или git add .. Не блокирует команду.
Нет параметров.
База данных
Перехватите деструктивные SQL-операции перед их выполнением на вашей базе данных.warn-destructive-sql
События: PreToolUse (Bash)По умолчанию: Инструктирует Claude подтвердить перед запуском SQL, содержащего
DROP TABLE, DROP DATABASE или DELETE без предложения WHERE.
Нет параметров.
warn-schema-alteration
События: PreToolUse (Bash)По умолчанию: Инструктирует Claude подтвердить перед запуском операторов
ALTER TABLE.
Нет параметров.
Предупреждения
Дайте агентам дополнительный контекст перед потенциально рискованными, но неразрушительными операциями.warn-large-file-write
События: PreToolUse (Write)По умолчанию: Инструктирует Claude подтвердить перед записью файлов размером более 1024 КБ. Параметры:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
thresholdKb | number | 1024 | Порог размера файла в килобайтах, выше которого выводится предупреждение. |
Обработчик хука обеспечивает ограничение stdin в 1 МБ на полезные нагрузки. Для тестирования этой политики с малым содержимым установите
thresholdKb на значение значительно ниже 1024.warn-package-publish
События: PreToolUse (Bash)По умолчанию: Инструктирует Claude подтвердить перед запуском
npm publish.
Нет параметров.
warn-background-process
События: PreToolUse (Bash)По умолчанию: Инструктирует Claude быть осторожным при запуске фоновых процессов через
nohup, &, disown или screen.
Нет параметров.
warn-global-package-install
События: PreToolUse (Bash)По умолчанию: Инструктирует Claude подтвердить перед запуском
npm install -g, yarn global add или pip install без виртуального окружения.
Нет параметров.
Поведение ИИ
Обнаружьте, когда агенты застревают или ведут себя неожиданно.warn-repeated-tool-calls
События: PreToolUse (все инструменты)По умолчанию: Инструктирует Claude пересмотреть, когда один и тот же инструмент вызывается 3 и более раз с идентичными параметрами — распространённый признак того, что агент застрял в цикле. Нет параметров.
Рабочий процесс
Обеспечьте дисциплинированный рабочий процесс конца сеанса. Эти политики срабатывают на событии Stop и запрещают Claude останавливаться до выполнения каждого условия. Они следуют естественной цепочке зависимостей: commit → push → PR → CI. Если политика запрещает, более поздние политики в цепочке пропускаются (deny прерывает поток). Все политики рабочего процесса fail-open: если требуемый инструмент недоступен (например,gh не установлен, нет git remote), политика разрешает с информационным сообщением, объясняющим, почему проверка была пропущена.
require-commit-before-stop
События: StopПо умолчанию: Отклоняет остановку, когда есть незафиксированные изменения (изменённые, подготовленные или неотслеживаемые файлы). Возвращает информационное сообщение, когда рабочий каталог чист. Нет параметров.
require-push-before-stop
События: StopПо умолчанию: Отклоняет остановку, когда есть неотправленные коммиты или когда текущая ветвь не имеет ветви отслеживания remote. Предлагает
git push -u для создания ветви отслеживания при необходимости. Fail open, если remote не настроен.
Параметры:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
remote | string | "origin" | Имя remote для пуша. |
require-pr-before-stop
События: StopПо умолчанию: Отклоняет остановку, когда pull request не существует для текущей ветви, или когда существующий PR закрыт/объединён. Инструктирует Claude создать PR с помощью
gh pr create.
Нет параметров.
Эта политика требует установки и аутентификации GitHub CLI (
gh).
Запустите gh auth login с личным токеном доступа, имеющим область repo для чтения доступа к
pull request. Если gh не установлен или не аутентифицирован, политика fail open и сообщает причину Claude.require-ci-green-before-stop
События: StopПо умолчанию: Отклоняет остановку, когда CI проверки не пройдены или ещё выполняются на текущей ветви. Проверяет как запуски рабочих процессов GitHub Actions, так и сторонние bot проверки (например, CodeRabbit, SonarCloud, Codecov). Рассматривает выводы
skipped как успех. Возвращает информационное сообщение, когда все проверки пройдены.
Нет параметров.
Эта политика требует установки и аутентификации GitHub CLI (
gh).
Запустите gh auth login с личным токеном доступа, имеющим область repo для чтения доступа к
запускам рабочих процессов Actions и API проверок. Если gh не установлен или не аутентифицирован, политика fail open и сообщает причину Claude.Отключение отдельных политик
Удалите конкретную политику изenabledPolicies в вашей конфигурации или переключите её в панели Policies на главной панели.
enabledPolicies, не запускаются, даже если существуют записи policyParams для них.
