title: Configurazione description: “Formato del file di configurazione, sistema a tre scope e regole di merge” icon: gear
failproofai utilizza file di configurazione JSON per controllare quali policy sono attive, come si comportano e da dove vengono caricate le policy personalizzate. La configurazione è progettata per essere facilmente condivisibile con il tuo team - committila nel tuo repository e ogni sviluppatore avrà la stessa rete di sicurezza per gli agenti.Scope di configurazione
Esistono tre scope di configurazione, valutati in ordine di priorità:| Scope | Percorso del file | Scopo |
|---|---|---|
| project | .failproofai/policies-config.json | Impostazioni per-repository, committate nel controllo di versione |
| local | .failproofai/policies-config.local.json | Override personali per-repository, gitignored |
| global | ~/.failproofai/policies-config.json | Impostazioni predefinite a livello di utente su tutti i progetti |
Regole di merge
enabledPolicies - l’unione di tutti e tre gli scope. Una policy abilitata a qualsiasi livello è attiva.
policyParams - il primo scope che definisce i parametri per una determinata policy vince completamente. Non c’è alcun deep merging dei valori all’interno dei parametri di una policy.
customPoliciesPath - il primo scope che lo definisce vince.
llm - il primo scope che lo definisce vince.
Formato del file di configurazione
Riferimento dei campi
enabledPolicies
Type: string[]
Elenco dei nomi delle policy da abilitare. I nomi devono corrispondere esattamente agli identificatori delle policy mostrati da failproofai policies. Vedi Built-in Policies per l’elenco completo.
Le policy non in enabledPolicies sono inattive, anche se hanno voci in policyParams.
policyParams
Type: Record<string, Record<string, unknown>>
Override dei parametri per-policy. La chiave esterna è il nome della policy; le chiavi interne sono specifiche della policy. Ogni policy documenta i suoi parametri disponibili in Built-in Policies.
Se una policy ha parametri ma non li specifichi, vengono utilizzati i valori predefiniti integrati della policy. Gli utenti che non configurano affatto policyParams ottengono un comportamento identico alle versioni precedenti.
Le chiavi sconosciute all’interno del blocco parametri di una policy vengono silenziosamente ignorate al momento dell’attivazione dell’hook ma segnalate come avvisi quando esegui failproofai policies.
hint (cross-cutting)
Type: string (optional)
Un messaggio aggiunto al motivo quando una policy restituisce deny o instruct. Usalo per dare a Claude una guida praticabile senza modificare la policy stessa.
Funziona con qualsiasi tipo di policy — integrata, personalizzata (custom/), convenzione di progetto (.failproofai-project/), o convenzione utente (.failproofai-user/).
block-force-push nega, Claude vede: “Force-pushing is blocked. Try creating a fresh branch instead.”
I valori non stringa e le stringhe vuote vengono silenziosamente ignorate. Se hint non è impostato, il comportamento non cambia (retrocompatibile).
customPoliciesPath
Type: string (absolute path)
Percorso a un file JavaScript contenente policy hook personalizzate. Viene impostato automaticamente da failproofai policies --install --custom <path> (il percorso viene risolto a assoluto prima di essere archiviato).
Il file viene caricato nuovo su ogni evento hook - non c’è caching. Vedi Custom Policies per i dettagli di authoring.
Policy basate su convenzione
Oltre alcustomPoliciesPath esplicito, failproofai scopre e carica automaticamente i file di policy dalle directory .failproofai/policies/:
| Livello | Directory | Scope |
|---|---|---|
| Project | .failproofai/policies/ | Condiviso con il team via controllo di versione |
| User | ~/.failproofai/policies/ | Personale, si applica a tutti i progetti |
*policies.{js,mjs,ts} vengono caricati (ad es. security-policies.mjs, workflow-policies.js). Gli altri file nella directory vengono ignorati.
Nessuna configurazione necessaria: Le policy di convenzione non richiedono voci in policies-config.json. Basta eliminare i file nella directory e verranno raccolti al prossimo evento hook.
Union loading: Entrambe le directory di convenzione di progetto e utente vengono scansionate. Tutti i file corrispondenti da entrambi i livelli vengono caricati (a differenza di customPoliciesPath che utilizza first-scope-wins).
Vedi Custom Policies per ulteriori dettagli ed esempi.
llm
Type: object (optional)
Configurazione del client LLM per le policy che effettuano chiamate AI. Non richiesto per la maggior parte delle configurazioni.
Gestione della configurazione da CLI
I comandipolicies --install e policies --uninstall scrivono nel settings.json di Claude Code (i punti di ingresso dell’hook), mentre policies-config.json è il file che gestisci direttamente. I due sono separati:
settings.json- dice a Claude Code di chiamarefailproofai --hook <event>su ogni tool usepolicies-config.json- dice a failproofai quali policy valutare e con quali parametri
policies-config.json direttamente in qualsiasi momento; le modifiche hanno effetto immediatamente al prossimo evento hook senza necessità di riavvio.
Esempio: config a livello di progetto con impostazioni predefinite del team
Committa.failproofai/policies-config.json nel tuo repo:
.failproofai/policies-config.local.json (gitignored) per override personali senza influenzare i compagni di squadra.
