Portées de configuration
Il existe trois portées de configuration, évaluées par ordre de priorité :| Portée | Chemin du fichier | Objectif |
|---|---|---|
| project | .failproofai/policies-config.json | Paramètres par dépôt, committés dans le contrôle de version |
| local | .failproofai/policies-config.local.json | Surcharges personnelles par dépôt, ignorées par git |
| global | ~/.failproofai/policies-config.json | Paramètres par défaut au niveau utilisateur pour tous les projets |
Règles de fusion
enabledPolicies — union des trois portées. Une politique activée à n’importe quel niveau est active.
policyParams — la première portée qui définit les paramètres d’une politique donnée l’emporte entièrement. Il n’y a pas de fusion profonde des valeurs au sein des paramètres d’une politique.
customPoliciesPath — la première portée qui le définit l’emporte.
llm — la première portée qui le définit l’emporte.
Format du fichier de configuration
Référence des champs
enabledPolicies
Type : string[]
Liste des noms de politiques à activer. Les noms doivent correspondre exactement aux identifiants de politique affichés par failproofai policies. Consultez Politiques intégrées pour la liste complète.
Les politiques absentes de enabledPolicies sont inactives, même si elles ont des entrées dans policyParams.
policyParams
Type : Record<string, Record<string, unknown>>
Surcharges de paramètres par politique. La clé externe est le nom de la politique ; les clés internes sont spécifiques à chaque politique. Chaque politique documente ses paramètres disponibles dans Politiques intégrées.
Si une politique possède des paramètres mais que vous ne les spécifiez pas, les valeurs par défaut intégrées de la politique sont utilisées. Les utilisateurs qui ne configurent pas policyParams du tout obtiennent un comportement identique aux versions précédentes.
Les clés inconnues dans le bloc de paramètres d’une politique sont silencieusement ignorées au moment du déclenchement du hook, mais signalées comme avertissements lors de l’exécution de failproofai policies.
hint (transversal)
Type : string (optionnel)
Un message ajouté à la raison lorsqu’une politique retourne deny ou instruct. Utilisez-le pour donner à Claude des indications exploitables sans modifier la politique elle-même.
Fonctionne avec n’importe quel type de politique — intégrée, personnalisée (custom/), convention de projet (.failproofai-project/), ou convention utilisateur (.failproofai-user/).
block-force-push refuse, Claude voit : « Force-pushing is blocked. Try creating a fresh branch instead. »
Les valeurs non-chaînes et les chaînes vides sont silencieusement ignorées. Si hint n’est pas défini, le comportement est inchangé (rétrocompatible).
customPoliciesPath
Type : string (chemin absolu)
Chemin vers un fichier JavaScript contenant des politiques de hook personnalisées. Ce champ est défini automatiquement par failproofai policies --install --custom <path> (le chemin est résolu en chemin absolu avant d’être enregistré).
Le fichier est chargé à chaque événement de hook — il n’y a pas de mise en cache. Consultez Politiques personnalisées pour les détails de création.
Politiques basées sur les conventions
En plus ducustomPoliciesPath explicite, failproofai découvre et charge automatiquement les fichiers de politiques depuis les répertoires .failproofai/policies/ :
| Niveau | Répertoire | Portée |
|---|---|---|
| Projet | .failproofai/policies/ | Partagé avec l’équipe via le contrôle de version |
| Utilisateur | ~/.failproofai/policies/ | Personnel, s’applique à tous les projets |
*policies.{js,mjs,ts} sont chargés (par exemple security-policies.mjs, workflow-policies.js). Les autres fichiers du répertoire sont ignorés.
Aucune configuration nécessaire : Les politiques de convention ne nécessitent aucune entrée dans policies-config.json. Déposez simplement les fichiers dans le répertoire et ils seront pris en compte au prochain événement de hook.
Chargement par union : Les répertoires de convention du projet et de l’utilisateur sont tous deux analysés. Tous les fichiers correspondants des deux niveaux sont chargés (contrairement à customPoliciesPath qui utilise la règle du premier gagnant).
Consultez Politiques personnalisées pour plus de détails et des exemples.
llm
Type : object (optionnel)
Configuration du client LLM pour les politiques qui effectuent des appels à l’IA. Non requis pour la plupart des configurations.
Gestion de la configuration depuis l’interface en ligne de commande
Les commandespolicies --install et policies --uninstall écrivent dans le fichier settings.json de Claude Code (les points d’entrée des hooks), tandis que policies-config.json est le fichier que vous gérez directement. Les deux sont distincts :
settings.json— indique à Claude Code d’appelerfailproofai --hook <event>à chaque utilisation d’outilpolicies-config.json— indique à failproofai quelles politiques évaluer et avec quels paramètres
policies-config.json directement à tout moment ; les modifications prennent effet immédiatement au prochain événement de hook, sans redémarrage nécessaire.
Exemple : configuration au niveau projet avec les paramètres par défaut de l’équipe
Committez.failproofai/policies-config.json dans votre dépôt :
.failproofai/policies-config.local.json (ignoré par git) pour ses surcharges personnelles sans affecter ses coéquipiers.
