title: Конфигурация description: “Формат файла конфигурации, трёхуровневая система и правила слияния” icon: gear
failproofai использует JSON файлы конфигурации для управления активными политиками, их поведением и источниками пользовательских политик. Конфигурация разработана так, чтобы её было легко делиться с командой — закоммитьте её в репозиторий, и каждый разработчик получит одинаковую защиту агента.Уровни конфигурации
Существует три уровня конфигурации, оцениваемые в порядке приоритета:| Уровень | Путь файла | Назначение |
|---|---|---|
| project | .failproofai/policies-config.json | Настройки репозитория, коммитятся в систему контроля версий |
| local | .failproofai/policies-config.local.json | Личные переопределения на уровне репозитория, в .gitignore |
| global | ~/.failproofai/policies-config.json | Пользовательские стандартные значения для всех проектов |
Правила слияния
enabledPolicies — объединение всех трёх уровней. Политика, активированная на любом уровне, работает.
policyParams — первый уровень, определивший параметры для данной политики, полностью выигрывает. Нет глубокого слияния значений в параметрах политики.
customPoliciesPath — первый уровень, определивший его, выигрывает.
llm — первый уровень, определивший его, выигрывает.
Формат файла конфигурации
Справка по полям
enabledPolicies
Тип: string[]
Список имён политик для активации. Имена должны точно совпадать с идентификаторами политик, показываемыми командой failproofai policies. Полный список см. в разделе Built-in Policies.
Политики, отсутствующие в enabledPolicies, неактивны, даже если у них есть записи в policyParams.
policyParams
Тип: Record<string, Record<string, unknown>>
Переопределения параметров для каждой политики. Внешний ключ — имя политики; внутренние ключи — специфичны для политики. Каждая политика документирует свои доступные параметры в разделе Built-in Policies.
Если политика имеет параметры, но вы их не указали, используются встроенные значения по умолчанию политики. Пользователи, которые вообще не конфигурируют policyParams, получают идентичное поведение с предыдущими версиями.
Неизвестные ключи в блоке параметров политики молча игнорируются при срабатывании hook, но отмечаются как предупреждения при выполнении failproofai policies.
hint (кросс-функциональный)
Тип: string (опционально)
Сообщение, добавляемое к причине, когда политика возвращает deny или instruct. Используйте его, чтобы дать Claude практические рекомендации без изменения самой политики.
Работает с любым типом политики — встроенной, пользовательской (custom/), проектной конвенции (.failproofai-project/) или пользовательской конвенции (.failproofai-user/).
block-force-push запрещает, Claude видит: “Force-pushing заблокирован. Попробуйте создать свежую ветку вместо этого.”
Значения, не являющиеся строками, и пустые строки молча игнорируются. Если hint не установлен, поведение не изменяется (обратная совместимость).
customPoliciesPath
Тип: string (абсолютный путь)
Путь к JavaScript файлу, содержащему пользовательские hook политики. Устанавливается автоматически командой failproofai policies --install --custom <path> (путь преобразуется в абсолютный перед сохранением).
Файл загружается заново при каждом события hook — кеширования нет. Детали разработки см. в разделе Custom Policies.
Политики на основе конвенций
В дополнение к явномуcustomPoliciesPath, failproofai автоматически обнаруживает и загружает файлы политик из директорий .failproofai/policies/:
| Уровень | Директория | Уровень |
|---|---|---|
| Project | .failproofai/policies/ | Общая с командой через систему контроля версий |
| User | ~/.failproofai/policies/ | Личная, применяется ко всем проектам |
*policies.{js,mjs,ts} (например, security-policies.mjs, workflow-policies.js). Другие файлы в директории игнорируются.
Конфигурация не требуется: Политики на основе конвенций не требуют записей в policies-config.json. Просто поместите файлы в директорию, и они будут обнаружены при следующем событии hook.
Загрузка объединением: Сканируются обе директории конвенций — проектная и пользовательская. Загружаются все соответствующие файлы с обоих уровней (в отличие от customPoliciesPath, который использует first-scope-wins).
Детали и примеры см. в разделе Custom Policies.
llm
Тип: object (опционально)
Конфигурация LLM клиента для политик, делающих AI вызовы. Не требуется для большинства установок.
Управление конфигурацией через CLI
Командыpolicies --install и policies --uninstall записывают в settings.json Claude Code (точки входа для hook), в то время как policies-config.json — это файл, который вы управляете напрямую. Это два отдельных файла:
settings.json— указывает Claude Code вызыватьfailproofai --hook <event>при каждом использовании инструментаpolicies-config.json— указывает failproofai, какие политики оценивать и с какими параметрами
policies-config.json напрямую в любое время; изменения вступают в силу на следующем события hook без необходимости перезагрузки.
Пример: конфигурация на уровне проекта с командными стандартами
Закоммитьте.failproofai/policies-config.json в ваш репозиторий:
.failproofai/policies-config.local.json (в .gitignore) для личных переопределений без влияния на коллег.
