> ## Documentation Index
> Fetch the complete documentation index at: https://docs.befailproof.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Каталог встроенных политик

> Просмотрите каждую встроенную политику Failproof AI, её триггер, рекомендуемое состояние и настраиваемые параметры.

Установленный пакет является источником истины для доступности политик. Запустите `failproofai policies` после каждого обновления, так как записи каталога и поведение могут измениться в зависимости от версии пакета.

## Рекомендуемая базовая конфигурация

Рекомендуемый выбор в настройке включает очистители секретов, защиту окружения, самозащиту, защиту от опасных команд и безопасность защищённых веток:

```text theme={null}
sanitize-jwt                 sanitize-api-keys
sanitize-connection-strings sanitize-private-key-content
sanitize-bearer-tokens       protect-env-vars
block-env-files              block-secrets-write
block-self-pause             block-failproofai-commands
block-sudo                   block-curl-pipe-sh
block-rm-rf                  block-push-master
block-force-push
```

«Рекомендуемое» намеренно уже, чем **Всё**. Политики инфраструктуры и рабочего процесса могут прерывать допустимые операции и должны быть включены для репозиториев и машин, которым они требуются.

## Секреты и окружение

| Политика                       | Триггер                                                 | Результат                                                               |
| ------------------------------ | ------------------------------------------------------- | ----------------------------------------------------------------------- |
| `sanitize-jwt`                 | `PostToolUse`                                           | Скрывает JWT-токены из вывода инструмента, прежде чем модель их увидит. |
| `sanitize-api-keys`            | `PostToolUse`                                           | Скрывает общие ключи OpenAI, Anthropic, GitHub, AWS, Stripe и Google.   |
| `sanitize-connection-strings`  | `PostToolUse`                                           | Скрывает строки подключения к базе данных, содержащие учётные данные.   |
| `sanitize-private-key-content` | `PostToolUse`                                           | Скрывает содержимое тел приватных ключей PEM.                           |
| `sanitize-bearer-tokens`       | `PostToolUse`                                           | Скрывает токены авторизации bearer.                                     |
| `protect-env-vars`             | `PreToolUse` на инструментах shell                      | Блокирует команды, которые выводят переменные окружения.                |
| `block-env-files`              | `PreToolUse`                                            | Блокирует чтение и запись файлов `.env`.                                |
| `block-read-outside-cwd`       | `PreToolUse` на инструментах read, glob, grep или shell | Ограничивает чтение рабочей директорией сеанса.                         |
| `block-secrets-write`          | `PreToolUse` на инструментах write                      | Блокирует запись в файлы с именами секретных ключей и учётных данных.   |

## Опасные команды и инфраструктура

| Политика                     | Триггер                           | Результат                                                                                               |
| ---------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `block-self-pause`           | `PreToolUse`, `PermissionRequest` | Предотвращает агенту паузировать собственное принудительное исполнение.                                 |
| `block-sudo`                 | `PreToolUse`, `PermissionRequest` | Блокирует `sudo`, если не совпадает шаблон разрешения.                                                  |
| `block-curl-pipe-sh`         | `PreToolUse`                      | Блокирует загруженные скрипты, переданные напрямую в shell.                                             |
| `block-rm-rf`                | `PreToolUse`                      | Блокирует катастрофические рекурсивные шаблоны удаления.                                                |
| `block-failproofai-commands` | `PreToolUse`                      | Предотвращает агентам изменение или удаление Failproof AI.                                              |
| `block-kubectl`              | `PreToolUse`                      | Ограничивает команды Kubernetes.                                                                        |
| `block-terraform`            | `PreToolUse`                      | Ограничивает команды Terraform и OpenTofu.                                                              |
| `block-aws-cli`              | `PreToolUse`                      | Ограничивает команды AWS CLI.                                                                           |
| `block-gcloud`               | `PreToolUse`                      | Ограничивает команды Google Cloud CLI.                                                                  |
| `block-az-cli`               | `PreToolUse`                      | Ограничивает команды Azure CLI.                                                                         |
| `block-helm`                 | `PreToolUse`                      | Ограничивает команды Helm.                                                                              |
| `block-gh-pipeline`          | `PreToolUse`                      | Ограничивает изменяющие операции GitHub CLI: рабочие процессы, запуски, слияния, релизы, кэш и секреты. |

## Безопасность Git и базы данных

| Политика                 | Триггер      | Результат                                                                                        |
| ------------------------ | ------------ | ------------------------------------------------------------------------------------------------ |
| `block-push-master`      | `PreToolUse` | Блокирует прямые отправки на настроенные защищённые ветки.                                       |
| `block-force-push`       | `PreToolUse` | Блокирует force-push; `--force-with-lease` остаётся разрешённым в текущей реализации.            |
| `block-work-on-main`     | `PreToolUse` | Блокирует коммиты и слияния на защищённых ветках.                                                |
| `warn-git-amend`         | `PreToolUse` | Предупреждает перед переписыванием коммита с `--amend`.                                          |
| `warn-git-stash-drop`    | `PreToolUse` | Предупреждает перед постоянным удалением или очисткой stash.                                     |
| `warn-all-files-staged`  | `PreToolUse` | Предупреждает при широком `git add -A`, `git add .` или `git add --all`.                         |
| `warn-destructive-sql`   | `PreToolUse` | Предупреждает при `DROP`, `TRUNCATE` и `DELETE` без `WHERE` через известные клиенты базы данных. |
| `warn-schema-alteration` | `PreToolUse` | Предупреждает при известных операциях `ALTER TABLE` над столбцами и переименовании.              |

## Пакеты, поведение системы и циклы агента

| Политика                      | Триггер                            | Результат                                                           |
| ----------------------------- | ---------------------------------- | ------------------------------------------------------------------- |
| `warn-package-publish`        | `PreToolUse`                       | Предупреждает перед публикацией в реестры пакетов.                  |
| `warn-global-package-install` | `PreToolUse`                       | Предупреждает перед глобальной установкой пакетов.                  |
| `prefer-package-manager`      | `PreToolUse`                       | Инструктирует агента использовать разрешённый менеджер пакетов.     |
| `warn-large-file-write`       | `PreToolUse` на инструментах write | Предупреждает выше настроенного порога размера файла.               |
| `warn-background-process`     | `PreToolUse`                       | Предупреждает при отсоединённых или долгоживущих фоновых процессах. |
| `warn-repeated-tool-calls`    | `PreToolUse`                       | Предупреждает после трёх или более идентичных вызовов инструмента.  |

## Рабочий процесс завершения задачи

Эти политики требуют обработчика, который выдаёт совместимое событие `Stop`.

| Политика                           | Результат                                                                |
| ---------------------------------- | ------------------------------------------------------------------------ |
| `require-commit-before-stop`       | Отказывает завершение, пока отслеживаемая работа остаётся незакоммичена. |
| `require-push-before-stop`         | Отказывает завершение, пока коммиты остаются только локальными.          |
| `require-pr-before-stop`           | Требует pull request для текущей ветки.                                  |
| `require-no-conflicts-before-stop` | Требует чистого слияния с настроенной базовой веткой.                    |
| `require-ci-green-before-stop`     | Требует успешного завершения проверок CI для текущего HEAD.              |

## Справочник параметров

Настраивайте параметры в объекте `policyParams` выбранной области видимости. Типы проверяются каждой политикой.

| Политика                           | Параметр               | Тип и значение по умолчанию                          |
| ---------------------------------- | ---------------------- | ---------------------------------------------------- |
| `sanitize-api-keys`                | `additionalPatterns`   | `pattern[]`, `[]`; записи содержат `regex` и `label` |
| `block-read-outside-cwd`           | `allowPaths`           | `string[]`, `[]`                                     |
| `block-sudo`                       | `allowPatterns`        | `string[]`, `[]`                                     |
| `block-rm-rf`                      | `allowPaths`           | `string[]`, `[]`                                     |
| Блокаторы инфраструктуры           | `allowPatterns`        | `string[]`, `[]`                                     |
| `block-secrets-write`              | `additionalPatterns`   | `string[]`, `[]`                                     |
| `block-push-master`                | `protectedBranches`    | `string[]`, `["main", "master"]`                     |
| `block-work-on-main`               | `protectedBranches`    | `string[]`, `["main", "master"]`                     |
| `prefer-package-manager`           | `allowed`, `blocked`   | `string[]`, `[]`                                     |
| `warn-large-file-write`            | `thresholdKb`          | `number`, `1024`                                     |
| `require-push-before-stop`         | `remote`, `baseBranch` | `string`, `"origin"`; `string`, `"main"`             |
| `require-pr-before-stop`           | `baseBranch`           | `string`, `"main"`                                   |
| `require-no-conflicts-before-stop` | `baseBranch`           | `string`, `"main"`                                   |

```json theme={null}
{
  "enabledPolicies": ["block-sudo", "block-push-master"],
  "policyParams": {
    "block-sudo": {
      "allowPatterns": ["sudo systemctl status"]
    },
    "block-push-master": {
      "protectedBranches": ["main", "release"]
    }
  }
}
```

<Warning>
  Шаблон разрешения расширяет возможности агента. Протестируйте точную токенизацию и варианты команд на целевом обработчике перед развёртыванием на всем парке.
</Warning>
