Vue d’ensemble
Les politiques sont regroupées par catégories :| Catégorie | Politiques | Type de hook |
|---|---|---|
| Commandes dangereuses | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
| Secrets (nettoyeurs) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
| Environnement | block-env-files, protect-env-vars | PreToolUse |
| Accès aux fichiers | 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 |
| Base de données | warn-destructive-sql, warn-schema-alteration | PreToolUse |
| Avertissements | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
| Workflow | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
block-— empêche l’agent de continuer.warn-— fournit à l’agent un contexte supplémentaire pour qu’il puisse se corriger.sanitize-— supprime les données sensibles de la sortie d’outil avant que l’agent ne les consulte.require-— bloque l’événement Stop jusqu’à ce que les conditions soient remplies.
Commandes dangereuses
Empêche les agents d’exécuter des opérations difficiles à annuler ou susceptibles d’endommager le système hôte.block-sudo
Événement : PreToolUse (Bash)Par défaut : Refuse toute commande
sudo.
Bloque les invocations qui contiennent le mot-clé sudo. La correspondance de motifs est effectuée sur les tokens de commande analysés, et non sur la chaîne brute, afin d’éviter les contournements via l’injection d’opérateurs shell.
Paramètres :
| Param | Type | Par défaut | Description |
|---|---|---|---|
allowPatterns | string[] | [] | Préfixes de commandes exacts autorisés. Chaque entrée est comparée aux tokens argv analysés. |
sudo systemctl status nginx est autorisé, mais sudo rm /etc/hosts est refusé.
Les motifs sont comparés aux tokens analysés, et non à la chaîne de commande brute. Cela empêche les contournements via des opérateurs shell ajoutés en fin de commande (par ex.
sudo systemctl status x; rm -rf / ne correspond pas à sudo systemctl status *).block-rm-rf
Événement : PreToolUse (Bash)Par défaut : Refuse
rm -rf, rm -fr et les formes de suppression récursive similaires.
Paramètres :
| Param | Type | Par défaut | Description |
|---|---|---|---|
allowPaths | string[] | [] | Chemins dont la suppression récursive est autorisée (ex. /tmp). |
block-curl-pipe-sh
Événement : PreToolUse (Bash)Par défaut : Refuse
curl <url> | bash, curl <url> | sh, wget <url> | bash et les motifs similaires.
Aucun paramètre.
block-failproofai-commands
Événement : PreToolUse (Bash)Par défaut : Refuse les commandes qui désinstalleraient ou désactiveraient failproofai lui-même (ex.
npm uninstall failproofai, failproofai policies --uninstall).
Aucun paramètre.
Secrets (nettoyeurs)
Empêche les agents de faire fuiter des identifiants dans leur contexte ou leurs sorties. Les politiques de nettoyage se déclenchent sur les événements PostToolUse. Lorsque Claude exécute une commande Bash, lit un fichier ou appelle un outil quelconque, ces politiques inspectent la sortie avant qu’elle ne soit renvoyée à Claude. Si un motif de secret est détecté, la politique retourne une décision de refus qui empêche la sortie d’être transmise.sanitize-jwt
Événement : PostToolUse (tous les outils)Par défaut : Masque les tokens JWT (trois segments base64url séparés par
.).
Aucun paramètre.
sanitize-api-keys
Événement : PostToolUse (tous les outils)Par défaut : Masque les formats courants de clés API : Anthropic (
sk-ant-), OpenAI (sk-), GitHub PATs (ghp_), clés d’accès AWS (AKIA), clés Stripe (sk_live_, sk_test_) et clés Google API (AIza).
Paramètres :
| Param | Type | Par défaut | Description |
|---|---|---|---|
additionalPatterns | { regex: string; label: string }[] | [] | Motifs regex supplémentaires à traiter comme des secrets. |
sanitize-connection-strings
Événement : PostToolUse (tous les outils)Par défaut : Masque les chaînes de connexion à des bases de données contenant des identifiants intégrés (ex.
postgresql://user:password@host/db).
Aucun paramètre.
sanitize-private-key-content
Événement : PostToolUse (tous les outils)Par défaut : Masque les blocs PEM (
-----BEGIN PRIVATE KEY-----, -----BEGIN RSA PRIVATE KEY-----, etc.).
Aucun paramètre.
sanitize-bearer-tokens
Événement : PostToolUse (tous les outils)Par défaut : Masque les en-têtes
Authorization: Bearer <token> dont le token fait 20 caractères ou plus.
Aucun paramètre.
Environnement
Protège la configuration d’environnement sensible contre la lecture ou l’exposition par les agents.block-env-files
Événement : PreToolUse (Bash, Read)Par défaut : Refuse la lecture des fichiers
.env via cat .env, les appels à l’outil Read avec .env comme chemin de fichier, etc.
Ne bloque pas .envrc ni les autres fichiers liés à l’environnement — uniquement les fichiers nommés exactement .env.
Aucun paramètre.
protect-env-vars
Événement : PreToolUse (Bash)Par défaut : Refuse les commandes qui affichent les variables d’environnement :
printenv, env, echo $VAR.
Aucun paramètre.
Accès aux fichiers
Maintient les agents dans les limites du projet et à l’écart des fichiers sensibles.block-read-outside-cwd
Événement : PreToolUse (Read, Bash)Par défaut : Refuse la lecture des fichiers situés en dehors du répertoire de travail courant (la racine du projet). Paramètres :
| Param | Type | Par défaut | Description |
|---|---|---|---|
allowPaths | string[] | [] | Préfixes de chemins absolus autorisés même s’ils sont en dehors du répertoire courant. |
block-secrets-write
Événement : PreToolUse (Write, Edit)Par défaut : Refuse l’écriture dans les fichiers couramment utilisés pour les clés privées et les certificats :
id_rsa, id_ed25519, *.key, *.pem, *.p12, *.pfx.
Paramètres :
| Param | Type | Par défaut | Description |
|---|---|---|---|
additionalPatterns | string[] | [] | Motifs de noms de fichiers supplémentaires (style glob) à bloquer. |
Git
Évite les pushs accidentels, les force-pushs et les erreurs de branche difficiles à annuler.block-push-master
Événement : PreToolUse (Bash)Par défaut : Refuse
git push origin main et git push origin master.
Paramètres :
| Param | Type | Par défaut | Description |
|---|---|---|---|
protectedBranches | string[] | ["main", "master"] | Noms de branches qui ne peuvent pas recevoir de push direct. |
block-work-on-main
Événement : PreToolUse (Bash)Par défaut : Refuse le checkout direct des branches
main ou master.
Paramètres :
| Param | Type | Par défaut | Description |
|---|---|---|---|
protectedBranches | string[] | ["main", "master"] | Noms de branches qui ne peuvent pas être checkoutées directement. |
block-force-push
Événement : PreToolUse (Bash)Par défaut : Refuse
git push --force et git push -f.
Aucun paramètre spécifique à la politique. Utilisez le champ transversal hint pour suggérer des alternatives :
warn-git-amend
Événement : PreToolUse (Bash)Par défaut : Demande à Claude de procéder avec prudence lors de l’exécution de
git commit --amend. Ne bloque pas la commande.
Aucun paramètre.
warn-git-stash-drop
Événement : PreToolUse (Bash)Par défaut : Demande à Claude de confirmer avant d’exécuter
git stash drop. Ne bloque pas la commande.
Aucun paramètre.
warn-all-files-staged
Événement : PreToolUse (Bash)Par défaut : Demande à Claude de vérifier ce qu’il indexe lorsqu’il exécute
git add -A ou git add .. Ne bloque pas la commande.
Aucun paramètre.
Base de données
Détecte les opérations SQL destructrices avant leur exécution sur votre base de données.warn-destructive-sql
Événement : PreToolUse (Bash)Par défaut : Demande à Claude de confirmer avant d’exécuter du SQL contenant
DROP TABLE, DROP DATABASE ou DELETE sans clause WHERE.
Aucun paramètre.
warn-schema-alteration
Événement : PreToolUse (Bash)Par défaut : Demande à Claude de confirmer avant d’exécuter des instructions
ALTER TABLE.
Aucun paramètre.
Avertissements
Fournit aux agents un contexte supplémentaire avant des opérations potentiellement risquées mais non destructrices.warn-large-file-write
Événement : PreToolUse (Write)Par défaut : Demande à Claude de confirmer avant d’écrire des fichiers de plus de 1024 Ko. Paramètres :
| Param | Type | Par défaut | Description |
|---|---|---|---|
thresholdKb | number | 1024 | Seuil de taille de fichier en kilo-octets au-delà duquel un avertissement est émis. |
Le gestionnaire de hook impose une limite de 1 Mo sur les payloads stdin. Pour tester cette politique avec un contenu de petite taille, définissez
thresholdKb à une valeur bien inférieure à 1024.warn-package-publish
Événement : PreToolUse (Bash)Par défaut : Demande à Claude de confirmer avant d’exécuter
npm publish.
Aucun paramètre.
warn-background-process
Événement : PreToolUse (Bash)Par défaut : Demande à Claude d’être prudent lors du lancement de processus en arrière-plan via
nohup, &, disown ou screen.
Aucun paramètre.
warn-global-package-install
Événement : PreToolUse (Bash)Par défaut : Demande à Claude de confirmer avant d’exécuter
npm install -g, yarn global add ou pip install sans environnement virtuel.
Aucun paramètre.
Comportement de l’IA
Détecte les situations où les agents se retrouvent bloqués ou se comportent de manière inattendue.warn-repeated-tool-calls
Événement : PreToolUse (tous les outils)Par défaut : Demande à Claude de reconsidérer sa démarche lorsque le même outil est appelé 3 fois ou plus avec des paramètres identiques — signe courant que l’agent est bloqué dans une boucle. Aucun paramètre.
Workflow
Impose un workflow rigoureux en fin de session. Ces politiques se déclenchent sur l’événement Stop et empêchent Claude de s’arrêter tant que chaque condition n’est pas remplie. Elles suivent une chaîne de dépendances naturelle : commit → push → PR → CI. Si une politique refuse, les politiques suivantes dans la chaîne sont ignorées (court-circuit sur refus). Toutes les politiques de workflow sont fail-open : si l’outil requis n’est pas disponible (ex.gh non installé, pas de remote git), la politique autorise avec un message informatif expliquant pourquoi la vérification a été ignorée.
require-commit-before-stop
Événement : StopPar défaut : Refuse l’arrêt lorsqu’il existe des modifications non commitées (fichiers modifiés, indexés ou non suivis). Retourne un message informatif quand le répertoire de travail est propre. Aucun paramètre.
require-push-before-stop
Événement : StopPar défaut : Refuse l’arrêt lorsqu’il existe des commits non poussés ou lorsque la branche courante n’a pas de branche de suivi distante. Suggère
git push -u pour créer une branche de suivi si nécessaire. Fail-open si aucun remote n’est configuré.
Paramètres :
| Param | Type | Par défaut | Description |
|---|---|---|---|
remote | string | "origin" | Nom du remote vers lequel pousser. |
require-pr-before-stop
Événement : StopPar défaut : Refuse l’arrêt lorsqu’aucune pull request n’existe pour la branche courante, ou lorsque la PR existante est fermée ou mergée. Demande à Claude de créer une PR avec
gh pr create.
Aucun paramètre.
Cette politique nécessite que GitHub CLI (
gh) soit installé et authentifié.
Exécutez gh auth login avec un personal access token disposant du scope repo pour l’accès en lecture aux
pull requests. Si gh n’est pas installé ou pas authentifié, la politique est fail-open et signale la raison à Claude.require-ci-green-before-stop
Événement : StopPar défaut : Refuse l’arrêt lorsque les vérifications CI échouent ou sont encore en cours sur la branche courante. Vérifie à la fois les exécutions de workflows GitHub Actions et les vérifications de bots tiers (ex. CodeRabbit, SonarCloud, Codecov). Traite les conclusions
skipped comme un succès. Retourne un message informatif lorsque toutes les vérifications sont réussies.
Aucun paramètre.
Cette politique nécessite que GitHub CLI (
gh) soit installé et authentifié.
Exécutez gh auth login avec un personal access token disposant du scope repo pour l’accès en lecture aux
exécutions de workflows Actions et à l’API Checks. Si gh n’est pas installé ou pas authentifié, la politique est fail-open et signale la raison à Claude.Désactiver des politiques individuellement
Retirez une politique spécifique deenabledPolicies dans votre configuration, ou désactivez-la depuis l’onglet Policies du tableau de bord.
enabledPolicies ne s’exécutent pas, même si des entrées policyParams existent pour elles.
