Перейти к основному содержанию

title: Встроенные политики description: “Все 39 встроенных политик, которые ловят распространённые сбои агентов” icon: shield

failproofai поставляется с 39 встроенными политиками, которые ловят распространённые сбои агентов. Каждая политика срабатывает на конкретный тип события hook и имя инструмента. Девятнадцать политик принимают параметры, позволяющие настраивать их поведение без написания кода. Пять политик workflow принудительно соблюдают конвейер commit → push → PR → CI перед остановкой Claude.

Обзор

Политики сгруппированы по категориям:
КатегорияПолитикиТип hook
Опасные командыblock-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commandsPreToolUse
Команды инфраструктурыblock-kubectl, block-terraform, block-aws-cli, block-gcloud, block-az-cli, block-helm, block-gh-pipelinePreToolUse
Секреты (санитайзеры)sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokensPostToolUse
Переменные окруженияblock-env-files, protect-env-varsPreToolUse
Доступ к файламblock-read-outside-cwd, block-secrets-writePreToolUse
Gitblock-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-stagedPreToolUse
База данныхwarn-destructive-sql, warn-schema-alterationPreToolUse
Предупрежденияwarn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-installPreToolUse
Менеджеры пакетовprefer-package-managerPreToolUse
Workflowrequire-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-no-conflicts-before-stop, require-ci-green-before-stopStop
  • block- — остановить выполнение агентом операции.
  • warn- — дать агенту дополнительный контекст, чтобы он мог самокорректироваться.
  • sanitize- — удалить чувствительные данные из вывода инструмента перед тем, как агент их увидит.

Пространства имён

Каждая политика находится в слоте <namespace>/<name>. Встроенные политики принадлежат пространству имён failproofai/ — например, failproofai/sanitize-jwt. Пространство имён предотвращает коллизии, когда вы также загружаете пользовательские или сторонние политики с похожими короткими именами. В вашей конфигурации вы можете ссылаться на встроенную политику как по её короткому имени, так и по полному имени; обе формы разрешаются в одну и ту же политику:
{
  "enabledPolicies": [
    "sanitize-jwt",
    "failproofai/block-rm-rf"
  ]
}
Если имя не содержит /, failproofai обрабатывает его как принадлежащее пространству имён по умолчанию failproofai. Имена, которые уже содержат / (например myorg/foo, custom/my-hook), сохраняются как есть.
  • require- — заблокировать событие Stop до выполнения условий.

Каждая политика поддерживает дополнительное поле hint в policyParams. Подсказка добавляется к сообщению deny или instruct, которое видит Claude, обеспечивая действенное руководство без изменения кода политики. Работает со встроенными, пользовательскими и convention политиками. Подробнее в Configuration → hint.

Опасные команды

Предотвратить выполнение агентом операций, которые сложно отменить или которые могут повредить хост-систему.

block-sudo

Событие: PreToolUse (Bash)
По умолчанию: Блокирует любую команду sudo.
Блокирует вызовы, содержащие ключевое слово sudo. Сопоставление шаблонов выполняется на разобранных токенах команды, а не на исходной строке, чтобы предотвратить обход через инъекцию операторов shell. Параметры:
ПараметрТипПо умолчаниюОписание
allowPatternsstring[][]Точные префиксы команд, которые разрешены. Каждая запись сопоставляется с разобранными токенами argv.
Пример:
{
  "policyParams": {
    "block-sudo": {
      "allowPatterns": ["sudo systemctl status", "sudo journalctl"]
    }
  }
}
С этой конфигурацией 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 и похожие формы рекурсивного удаления.
Параметры:
ПараметрТипПо умолчаниюОписание
allowPathsstring[][]Пути, которые безопасно рекурсивно удалять (например /tmp).
Пример:
{
  "policyParams": {
    "block-rm-rf": {
      "allowPaths": ["/tmp", "/var/cache"]
    }
  }
}

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).
Нет параметров.

Команды инфраструктуры

Остановить agent-ы кодирования от запуска CLI инфраструктуры или срабатывания CI/CD pipeline-ов. Все политики в этой категории opt-in (defaultEnabled: false) — агенты, которым легитимно нужно вызывать kubectl, terraform и т.д., не будут нарушены, если вы не включите политику. При включении каждый вызов сопоставленного CLI блокируется, если только команда не совпадает с записью в allowPatterns. Грамматика шаблонов такая же, как в block-sudo: токены сопоставляются с разобранными argv, * является подстановочным символом для одного токена, и любая команда, содержащая отдельный оператор shell (&&, ||, |, ;) или токен с встроенными метасимволами shell, отклоняется до сопоставления списка разрешений, чтобы предотвратить обход через инъекцию.

block-kubectl

Событие: PreToolUse (Bash)
По умолчанию: Блокирует любой вызов kubectl.
Параметры:
ПараметрТипПо умолчаниюОписание
allowPatternsstring[][]Префиксы команд kubectl, которые разрешены.
Пример:
{
  "policyParams": {
    "block-kubectl": {
      "allowPatterns": ["kubectl get *", "kubectl describe *", "kubectl logs *"]
    }
  }
}
С этой конфигурацией kubectl get pods разрешена, но kubectl apply -f deploy.yaml заблокирована.

block-terraform

Событие: PreToolUse (Bash)
По умолчанию: Блокирует любой вызов terraform или tofu (OpenTofu).
Параметры:
ПараметрТипПо умолчаниюОписание
allowPatternsstring[][]Префиксы команд terraform/tofu, которые разрешены.
Пример:
{
  "policyParams": {
    "block-terraform": {
      "allowPatterns": ["terraform plan", "terraform validate", "terraform show *"]
    }
  }
}

block-aws-cli

Событие: PreToolUse (Bash)
По умолчанию: Блокирует любой вызов AWS CLI.
Параметры:
ПараметрТипПо умолчаниюОписание
allowPatternsstring[][]Префиксы команд AWS CLI, которые разрешены.
Пример:
{
  "policyParams": {
    "block-aws-cli": {
      "allowPatterns": ["aws s3 ls *", "aws sts get-caller-identity"]
    }
  }
}

block-gcloud

Событие: PreToolUse (Bash)
По умолчанию: Блокирует любой вызов gcloud (Google Cloud) CLI.
Параметры:
ПараметрТипПо умолчаниюОписание
allowPatternsstring[][]Префиксы команд gcloud, которые разрешены.
Пример:
{
  "policyParams": {
    "block-gcloud": {
      "allowPatterns": ["gcloud auth list", "gcloud config list"]
    }
  }
}

block-az-cli

Событие: PreToolUse (Bash)
По умолчанию: Блокирует любой вызов Azure CLI.
Параметры:
ПараметрТипПо умолчаниюОписание
allowPatternsstring[][]Префиксы команд Azure CLI, которые разрешены.
Пример:
{
  "policyParams": {
    "block-az-cli": {
      "allowPatterns": ["az account show", "az group list"]
    }
  }
}

block-helm

Событие: PreToolUse (Bash)
По умолчанию: Блокирует любой вызов helm.
Параметры:
ПараметрТипПо умолчаниюОписание
allowPatternsstring[][]Префиксы команд helm, которые разрешены.
Пример:
{
  "policyParams": {
    "block-helm": {
      "allowPatterns": ["helm list", "helm status *"]
    }
  }
}

block-gh-pipeline

Событие: PreToolUse (Bash)
По умолчанию: Блокирует следующие подкоманды gh CLI, которые изменяют состояние или запускают pipeline-ы:
  • gh workflow run, gh workflow enable, gh workflow disable
  • gh run rerun, gh run cancel
  • gh pr merge
  • gh release create, gh release delete
  • gh cache delete
  • gh secret set, gh secret delete
Только для чтения подкоманды gh, такие как gh pr view, gh pr list, gh run list, gh release view и gh api repos/.../... не соответствуют этой политике — они регулярно нужны для проверок workflow (включая собственный require-ci-green-before-stop failproofai). Параметры:
ПараметрТипПо умолчаниюОписание
allowPatternsstring[][]Конкретные сценариальные вызовы, которые нужно разрешить, несмотря на то что они иначе были бы заблокированы.
Пример:
{
  "policyParams": {
    "block-gh-pipeline": {
      "allowPatterns": ["gh run rerun *"]
    }
  }
}

Секреты (санитайзеры)

Остановить агентов от утечки учётных данных в их контекст или вывод. Политики-санитайзеры срабатывают на событиях PostToolUse. Когда Claude запускает команду Bash, читает файл или вызывает любой инструмент, эти политики проверяют вывод перед его возвратом Claude. Если обнаружен паттерн секрета, политика возвращает решение deny, которое предотвращает передачу вывода обратно.

sanitize-jwt

Событие: PostToolUse (все инструменты)
По умолчанию: Скрывает JWT токены (три сегмента base64url, разделённые .).
Нет параметров.

sanitize-api-keys

Событие: PostToolUse (все инструменты)
По умолчанию: Скрывает распространённые форматы API ключей: Anthropic (sk-ant-), OpenAI (sk-), GitHub PAT (ghp_), AWS ключи доступа (AKIA), Stripe ключи (sk_live_, sk_test_) и Google API ключи (AIza).
Параметры:
ПараметрТипПо умолчаниюОписание
additionalPatterns{ regex: string; label: string }[][]Дополнительные regex паттерны, которые нужно обрабатывать как секреты.
Пример:
{
  "policyParams": {
    "sanitize-api-keys": {
      "additionalPatterns": [
        { "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo internal API key" },
        { "regex": "pat_[0-9a-f]{40}", "label": "Internal PAT" }
      ]
    }
  }
}

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)
По умолчанию: Блокирует чтение файлов вне корня проекта. Граница — CLAUDE_PROJECT_DIR (устанавливается один раз за сеанс Claude Code), с fallback на текущую рабочую директорию сеанса, если эта переменная не установлена. Использование корня проекта вместо live cwd означает, что граница остаётся стабильной даже после того, как Claude перейдёт в подпапку.
Параметры:
ПараметрТипПо умолчаниюОписание
allowPathsstring[][]Абсолютные префиксы путей, которые разрешены даже если вне корня проекта.
Пример:
{
  "policyParams": {
    "block-read-outside-cwd": {
      "allowPaths": ["/shared/data", "/opt/company/config"]
    }
  }
}

block-secrets-write

Событие: PreToolUse (Write, Edit)
По умолчанию: Блокирует запись в файлы, обычно используемые для приватных ключей и сертификатов: id_rsa, id_ed25519, *.key, *.pem, *.p12, *.pfx.
Параметры:
ПараметрТипПо умолчаниюОписание
additionalPatternsstring[][]Дополнительные паттерны имён файлов (glob-стиль) для блокировки.
Пример:
{
  "policyParams": {
    "block-secrets-write": {
      "additionalPatterns": [".token", ".secret"]
    }
  }
}

Git

Предотвратить случайные push-и, force-push-и и ошибки веток, которые сложно отменить.

block-push-master

Событие: PreToolUse (Bash)
По умолчанию: Блокирует git push origin main и git push origin master.
Параметры:
ПараметрТипПо умолчаниюОписание
protectedBranchesstring[]["main", "master"]Имена веток, в которые нельзя напрямую push-ить.
Пример:
{
  "policyParams": {
    "block-push-master": {
      "protectedBranches": ["main", "master", "release", "prod"]
    }
  }
}
Чтобы разрешить push-ить во все ветки (эффективно отключить эту политику без удаления её из enabledPolicies), установите protectedBranches: [].

block-work-on-main

Событие: PreToolUse (Bash)
По умолчанию: Блокирует git commit, git merge, git rebase и git cherry-pick пока рабочее дерево находится на main или master. Создание и переключение веток (git checkout, git checkout -b, git switch, git switch -c) не затронуты.
Параметры:
ПараметрТипПо умолчаниюОписание
protectedBranchesstring[]["main", "master"]Имена веток, на которых commit/merge/rebase/cherry-pick заблокированы.

block-force-push

Событие: PreToolUse (Bash)
По умолчанию: Блокирует git push --force и git push -f.
Нет политико-специфичных параметров. Используйте cross-cutting hint для предложения альтернатив:
{
  "policyParams": {
    "block-force-push": {
      "hint": "Create a new branch from your current HEAD (e.g. `git checkout -b <new-branch>`) and push that instead."
    }
  }
}

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 КБ.
Параметры:
ПараметрТипПо умолчаниюОписание
thresholdKbnumber1024Пороговый размер файла в килобайтах, выше которого выводится предупреждение.
Пример:
{
  "policyParams": {
    "warn-large-file-write": {
      "thresholdKb": 256
    }
  }
}
Обработчик hook применяет лимит 1 МБ stdin для payload-ов. Чтобы протестировать эту политику с малым содержимым, установите 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 без виртуального окружения.
Нет параметров.

Менеджеры пакетов

Принудить агента использовать только разрешённые менеджеры пакетов.

prefer-package-manager

Событие: PreToolUse (Bash)
По умолчанию: Отключена. При включении блокирует любую команду менеджера пакетов не в списке allowed и говорит Claude переписать команду, используя разрешённый менеджер.
Обнаруживает: pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
ПараметрТипПо умолчаниюОписание
allowedstring[][]Разрешённые имена менеджеров пакетов. Любой обнаруженный менеджер не в этом списке блокируется. Когда пусто, политика не оказывает эффекта.
blockedstring[][]Дополнительные имена менеджеров для блокировки помимо встроенного списка (например ['pdm', 'pipx']).
Встроенный список блокировки охватывает: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo. Используйте blocked для добавления менеджеров не в этом списке. Пример конфигурации:
{
  "enabledPolicies": ["prefer-package-manager"],
  "policyParams": {
    "prefer-package-manager": {
      "allowed": ["uv", "bun"],
      "blocked": ["pdm", "pipx"]
    }
  }
}
С этой конфигурацией pip install flask и pdm install flask оба заблокированы с сообщением, говорящим Claude использовать uv или bun вместо этого. Команды типа uv pip install flask разрешены, потому что uv в списке разрешений и проверяется первым.

Поведение AI

Обнаружить когда агенты зависают или ведут себя неожиданно.

warn-repeated-tool-calls

Событие: PreToolUse (все инструменты)
По умолчанию: Инструктирует Claude пересмотреть когда один и тот же инструмент вызывается 3+ раза с идентичными параметрами — частый признак того, что агент застрял в loop.
Нет параметров.

Workflow

Принудить соблюдать дисциплинированный workflow конца сеанса. Эти политики срабатывают на событие Stop и блокируют агенту остановку до выполнения каждого условия. Они следуют естественной цепочке зависимостей: commit → push → PR → CI. Если политика блокирует, позднейшие политики в цепочке пропускаются (deny short-circuits). Все политики workflow fail-open: если требуемый инструмент не доступен (например gh не установлен, нет git remote), политика разрешает с информационным сообщением, объясняющим, почему проверка была пропущена.

Semantics Stop на CLI

Применение Stop немного отличается в семи поддерживаемых CLI, потому что каждый раскрывает разный contract хука «agent finished». Результат — одинаковый — агент не может остановиться пока gate workflow не пройден — но механика отличается. Таблица ниже резюмирует; только Pi имеет видимую для пользователя особенность, стоящую понимания перед включением политики require-*-before-stop.
CLIКогда gate срабатываетЧто вы видите
Claude CodeТот же loop агента, сразу жеClaude продолжает работу — исправляет проблему, затем снова пытается закончить. Без видимых перерывов для вас.
CodexТот же loop агента, сразу жеКак Claude.
GitHub Copilot CLIТот же loop агента, сразу жеКак Claude (использует {decision:"block", reason} retry канал Copilot — проверено эмпирически на Copilot CLI 1.0.41).
Cursor AgentТот же loop агента, сразу жеКак Claude (использует {followup_message} канал Cursor — capped на loop_limit, по умолчанию 5 retries).
Gemini CLIТот же loop агента, сразу жеКак Claude (использует {decision:"block", reason} канал Gemini на AfterAgent).
OpenCodeТот же loop агента, сразу жеКак Claude (использует client.session.prompt(...) вызов SDK OpenCode маршрутизированный через hookSpecificOutput.additionalContext).
Pi (pi-coding-agent)Следующий turn пользователяPi видимо останавливается когда gate срабатывает — её loop агента выходит и вы возвращаетесь к prompt. Gate затем срабатывает в следующий раз, когда вы отправляете prompt: failproofai добавляет директиву MANDATORY ACTION REQUIRED к system prompt этого turn, инструктируя LLM завершить шаг workflow (commit, push и т.д.) перед тем как делать то, что вы просили.
Ограничение Pi. AgentEndEvent Pi (аналог upstream Stop hook Claude) не имеет типа Result — к моменту его срабатывания loop агента Pi уже выхода. Pi не может быть принуждена к retry того же loop как Claude / Copilot / Cursor / Gemini / OpenCode могут. failproofai сдвигает gate на before_agent_start event Pi (который срабатывает после следующего пользовательского prompt), чтобы проверка workflow всё ещё применялась, только на следующем turn вместо текущего.Что это означает на практике:
  • После остановки Pi, причина deny захватывается в памяти, ключ по Pi session id. Очень следующий prompt, который вы отправляете в том же процессе Pi дренирует это: LLM видит директиву MANDATORY ACTION REQUIRED в верхней части своего system prompt, коммитит (или push-ит / открывает PR / ждёт CI), и только затем продолжает с вашим запросом. Захваченная причина deny — one-shot — один раз слита, gate очищен.
  • Gate ограничена lifetime процесса Pi. Если вы Ctrl+C Pi или выходите между turn-ами, в памяти entry dropped вместе с процессом и gate пропущена. Claude, Copilot, Cursor, Gemini и OpenCode имеют ту же граничную (kill агента и gate пропущена) — Pi только делает это более видимым, потому что агент видимо выходит перед тем как gate срабатывает.
  • Pending deny также очищена на session_shutdown по любой причине (new / resume / fork / quit), поэтому stale gate от приоров сеанса не может утечь в свежий сеанс, запущенный в том же процессе Pi.
Если вам нужен Claude-стиль same-loop retry, запустите ваши Stop политики под любым из шести других поддерживаемых CLI. Мы отслеживаем Pi upstream для будущего типа Result на AgentEndEvent, который позволил бы нам закрыть этот gap.

require-commit-before-stop

Событие: Stop
По умолчанию: Блокирует остановку когда есть неподтверждённые изменения (изменённые, staged или untracked файлы). Возвращает информационное сообщение когда рабочая директория чиста.
Нет параметров.

require-push-before-stop

Событие: Stop
По умолчанию: Блокирует остановку когда есть unpushed commits или когда текущая ветка не имеет удалённой tracking ветки. Предлагает git push -u создать tracking ветку если нужно. Fails open если нет настроенного remote.
Параметры:
ПараметрТипПо умолчаниюОписание
remotestring"origin"Имя remote для push-а.
Пример:
{
  "policyParams": {
    "require-push-before-stop": {
      "remote": "upstream"
    }
  }
}

require-pr-before-stop

Событие: Stop
По умолчанию: Блокирует остановку когда не существует pull request для текущей ветки, или когда существующий PR закрыт без merge. Инструктирует Claude создать PR с gh pr create. Когда PR merged, политика разрешает (работа доставлена) и сообщение намекает переключиться с ветки (git checkout main && git pull).
Нет параметров.
Эта политика требует GitHub CLI (gh) установленной и аутентифицированной. Запустите gh auth login с personal access token, который имеет repo scope для чтения pull requests. Если gh не установлена или не аутентифицирована, политика fails open и сообщает причину Claude.

require-no-conflicts-before-stop

Событие: Stop
По умолчанию: Блокирует остановку когда текущая ветка не может cleanly merge в base ветку. Политика сначала подтверждает существует ли OPEN PR на GitHub для ветки — без одного, нет merge target для применения, поэтому вся политика short-circuits к allow. После подтверждения OPEN PR, два независимых probe запускаются:
  1. Локальныйgit merge-tree --write-tree --name-only origin/<baseBranch> HEAD. При конфликте сообщение deny называет конфликтующие файлы так Claude знает ровно что разрешать.
  2. GitHub — переиспользует gh pr view --json mergeable,state результат уже загруженный в precheck. Ловит конфликты, которые stale локальный origin/<baseBranch> пропустил бы (например кто-то landed конфликтующий PR на main с последнего fetch). Результат CONFLICTING блокирует. Результат UNKNOWN также блокирует и инструктирует Claude ждать ~10 секунд и повторно проверить перед тем как снова пытаться остановиться — это предотвращает false negatives пока GitHub переcomputes.
Пропускает полностью (разрешает) когда: gh не установлена, нет PR для ветки, PR состояние не OPEN (например MERGED, CLOSED), или gh pr view возвращает распарсиваемый вывод. Также fails open когда origin/<baseBranch> пропущена локально или когда нет commits вперёд от base — те Layer 1 fall-throughs всё ещё консультируют cached PR mergeability перед разрешением. Параметры:
ПараметрТипПо умолчаниюОписание
baseBranchstring"main"Base ветка для проверки конфликтов.
GitHub CLI (gh) требуется для этой политики. Политика использует gh pr view для подтверждения существует ли OPEN PR перед запуском любого probe конфликтов — без gh, политика short-circuits к разрешению. Запустите gh auth login с personal access token, который имеет repo scope для чтения pull requests.

require-ci-green-before-stop

Событие: Stop
По умолчанию: Блокирует остановку когда CI checks падают или всё ещё запускаются на текущей ветке. Проверяет GitHub Actions workflow runs и сторонние bot checks (например CodeRabbit, SonarCloud, Codecov). Обрабатывает skipped, cancelled и neutral выводы как non-failing (последний охватывает например Socket Security alerts на outside contributor PR, где app намеренно сообщает neutral вместо success/failure). Возвращает информационное сообщение когда все checks проходят.
Нет параметров.
Эта политика требует GitHub CLI (gh) установленной и аутентифицированной. Запустите gh auth login с personal access token, который имеет repo scope для чтения Actions workflow runs и Checks API. Если gh не установлена или не аутентифицирована, политика fails open и сообщает причину Claude.


Отключение отдельных политик

Удалить конкретную политику из enabledPolicies в вашей конфигурации, или переключить её в dashboard Policies tab.
{
  "enabledPolicies": [
    "block-rm-rf",
    "sanitize-api-keys"
  ]
}
Политики не listed в enabledPolicies не запускаются, даже если policyParams записи для них существуют.