> ## 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.

# Catalogo delle politiche integrate

> Rivedi ogni politica integrata di Failproof AI, il suo trigger, lo stato consigliato e i parametri configurabili.

Il pacchetto installato è la fonte di verità per la disponibilità delle politiche. Esegui `failproofai policies` dopo ogni aggiornamento perché le voci del catalogo e il comportamento possono cambiare con la versione del pacchetto.

## Baseline consigliata

La selezione consigliata della configurazione guidata attualmente abilita i sanitizzatori di segreti, le protezioni dell'ambiente, l'auto-protezione, le protezioni dai comandi catastrofici e la sicurezza dei rami protetti:

```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
```

La configurazione consigliata è deliberatamente più ristretta di **Everything**. Le politiche infrastrutturali e di workflow possono interrompere il lavoro valido e dovrebbero essere abilitate per i repository e le macchine che ne hanno bisogno.

## Segreti e ambiente

| Politica                       | Trigger                                               | Risultato                                                                   |
| ------------------------------ | ----------------------------------------------------- | --------------------------------------------------------------------------- |
| `sanitize-jwt`                 | `PostToolUse`                                         | Redige i JWT dall'output dello strumento prima che il modello li veda.      |
| `sanitize-api-keys`            | `PostToolUse`                                         | Redige le chiavi comuni di OpenAI, Anthropic, GitHub, AWS, Stripe e Google. |
| `sanitize-connection-strings`  | `PostToolUse`                                         | Redige le stringhe di connessione ai database contenenti credenziali.       |
| `sanitize-private-key-content` | `PostToolUse`                                         | Redige i corpi delle chiavi private PEM.                                    |
| `sanitize-bearer-tokens`       | `PostToolUse`                                         | Redige i token bearer di autorizzazione.                                    |
| `protect-env-vars`             | `PreToolUse` sugli strumenti shell                    | Blocca i comandi che dumpa le variabili d'ambiente.                         |
| `block-env-files`              | `PreToolUse`                                          | Blocca le letture e le scritture dei file `.env`.                           |
| `block-read-outside-cwd`       | `PreToolUse` sugli strumenti read, glob, grep o shell | Mantiene le letture all'interno della directory di lavoro della sessione.   |
| `block-secrets-write`          | `PreToolUse` sugli strumenti di scrittura             | Blocca le scritture su nomi di file comuni di chiavi segrete e credenziali. |

## Comandi pericolosi e infrastruttura

| Politica                     | Trigger                           | Risultato                                                                                        |
| ---------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------ |
| `block-self-pause`           | `PreToolUse`, `PermissionRequest` | Impedisce a un agente di mettere in pausa la propria applicazione.                               |
| `block-sudo`                 | `PreToolUse`, `PermissionRequest` | Blocca `sudo` a meno che un pattern di allow non corrisponda.                                    |
| `block-curl-pipe-sh`         | `PreToolUse`                      | Blocca gli script scaricati incanalati direttamente a una shell.                                 |
| `block-rm-rf`                | `PreToolUse`                      | Blocca i pattern di eliminazione ricorsiva catastrofici.                                         |
| `block-failproofai-commands` | `PreToolUse`                      | Impedisce agli agenti di modificare o disinstallare Failproof AI.                                |
| `block-kubectl`              | `PreToolUse`                      | Controlla i comandi Kubernetes.                                                                  |
| `block-terraform`            | `PreToolUse`                      | Controlla i comandi Terraform e OpenTofu.                                                        |
| `block-aws-cli`              | `PreToolUse`                      | Controlla i comandi AWS CLI.                                                                     |
| `block-gcloud`               | `PreToolUse`                      | Controlla i comandi Google Cloud CLI.                                                            |
| `block-az-cli`               | `PreToolUse`                      | Controlla i comandi Azure CLI.                                                                   |
| `block-helm`                 | `PreToolUse`                      | Controlla i comandi Helm.                                                                        |
| `block-gh-pipeline`          | `PreToolUse`                      | Controlla le operazioni mutanti di GitHub CLI per workflow, run, merge, release, cache e secret. |

## Sicurezza di Git e database

| Politica                 | Trigger      | Risultato                                                                                          |
| ------------------------ | ------------ | -------------------------------------------------------------------------------------------------- |
| `block-push-master`      | `PreToolUse` | Blocca i push diretti ai rami protetti configurati.                                                |
| `block-force-push`       | `PreToolUse` | Blocca i force-push; `--force-with-lease` rimane consentito nell'implementazione attuale.          |
| `block-work-on-main`     | `PreToolUse` | Blocca i commit e i merge su rami protetti.                                                        |
| `warn-git-amend`         | `PreToolUse` | Avverte prima di riscrivere un commit con `--amend`.                                               |
| `warn-git-stash-drop`    | `PreToolUse` | Avverte prima di eliminare o cancellare permanentemente gli stash.                                 |
| `warn-all-files-staged`  | `PreToolUse` | Avverte su `git add -A`, `git add .` o `git add --all` ampi.                                       |
| `warn-destructive-sql`   | `PreToolUse` | Avverte su `DROP`, `TRUNCATE` e `DELETE` senza `WHERE` attraverso client di database riconosciuti. |
| `warn-schema-alteration` | `PreToolUse` | Avverte su operazioni di rinomina e colonne `ALTER TABLE` riconosciute.                            |

## Pacchetti, comportamento del sistema e loop degli agenti

| Politica                      | Trigger                                   | Risultato                                                                  |
| ----------------------------- | ----------------------------------------- | -------------------------------------------------------------------------- |
| `warn-package-publish`        | `PreToolUse`                              | Avverte prima di pubblicare nei registri dei pacchetti.                    |
| `warn-global-package-install` | `PreToolUse`                              | Avverte prima dell'installazione globale dei pacchetti.                    |
| `prefer-package-manager`      | `PreToolUse`                              | Istruisce l'agente a utilizzare un gestore di pacchetti consentito.        |
| `warn-large-file-write`       | `PreToolUse` sugli strumenti di scrittura | Avverte oltre la soglia di dimensione del file configurata.                |
| `warn-background-process`     | `PreToolUse`                              | Avverte su pattern di processi in background distaccati o di lunga durata. |
| `warn-repeated-tool-calls`    | `PreToolUse`                              | Avverte dopo tre o più chiamate identiche dello strumento.                 |

## Workflow di fine compito

Queste politiche richiedono un harness che emetta un evento `Stop` compatibile.

| Politica                           | Risultato                                                               |
| ---------------------------------- | ----------------------------------------------------------------------- |
| `require-commit-before-stop`       | Rifiuta il completamento mentre il lavoro tracciato rimane uncommitted. |
| `require-push-before-stop`         | Rifiuta il completamento mentre i commit rimangono solo locali.         |
| `require-pr-before-stop`           | Richiede una pull request per il ramo attuale.                          |
| `require-no-conflicts-before-stop` | Richiede un merge pulito rispetto al ramo di base configurato.          |
| `require-ci-green-before-stop`     | Richiede il completamento corretto dei controlli CI di current-HEAD.    |

## Riferimento dei parametri

Configura i parametri nell'oggetto `policyParams` dello scope selezionato. I tipi sono validati da ogni politica.

| Politica                           | Parametro              | Tipo e default                                          |
| ---------------------------------- | ---------------------- | ------------------------------------------------------- |
| `sanitize-api-keys`                | `additionalPatterns`   | `pattern[]`, `[]`; le voci contengono `regex` e `label` |
| `block-read-outside-cwd`           | `allowPaths`           | `string[]`, `[]`                                        |
| `block-sudo`                       | `allowPatterns`        | `string[]`, `[]`                                        |
| `block-rm-rf`                      | `allowPaths`           | `string[]`, `[]`                                        |
| Bloccanti infrastrutturali         | `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>
  Un pattern di allow amplia ciò che un agente può fare. Testa la tokenizzazione esatta e le varianti di comando sull'harness di destinazione prima di distribuirla su una flotta.
</Warning>
