Escopos de configuração
Existem três escopos de configuração, avaliados em ordem de prioridade:| Escopo | Caminho do arquivo | Finalidade |
|---|---|---|
| project | .failproofai/policies-config.json | Configurações por repositório, commitadas no controle de versão |
| local | .failproofai/policies-config.local.json | Substituições pessoais por repositório, ignoradas pelo git |
| global | ~/.failproofai/policies-config.json | Padrões do usuário para todos os projetos |
Regras de mesclagem
enabledPolicies — a união dos três escopos. Uma política habilitada em qualquer nível fica ativa.
policyParams — o primeiro escopo que define os parâmetros de uma determinada política vence por completo. Não há mesclagem profunda dos valores dentro dos parâmetros de uma política.
customPoliciesPath — o primeiro escopo que o define vence.
llm — o primeiro escopo que o define vence.
Formato do arquivo de configuração
Referência de campos
enabledPolicies
Tipo: string[]
Lista de nomes de políticas a habilitar. Os nomes devem corresponder exatamente aos identificadores de política exibidos por failproofai policies. Consulte Políticas integradas para a lista completa.
Políticas ausentes de enabledPolicies ficam inativas, mesmo que possuam entradas em policyParams.
policyParams
Tipo: Record<string, Record<string, unknown>>
Substituições de parâmetros por política. A chave externa é o nome da política; as chaves internas são específicas de cada política. Cada política documenta seus parâmetros disponíveis em Políticas integradas.
Se uma política possui parâmetros mas você não os especifica, os valores padrão da política são utilizados. Usuários que não configuram policyParams têm comportamento idêntico ao das versões anteriores.
Chaves desconhecidas dentro do bloco de parâmetros de uma política são silenciosamente ignoradas no momento de disparo do hook, mas sinalizadas como avisos ao executar failproofai policies.
hint (transversal)
Tipo: string (opcional)
Uma mensagem anexada ao motivo quando uma política retorna deny ou instruct. Use-o para fornecer orientações acionáveis ao Claude sem modificar a própria política.
Funciona com qualquer tipo de política — integrada, personalizada (custom/), convenção de projeto (.failproofai-project/) ou convenção de usuário (.failproofai-user/).
block-force-push nega, Claude recebe: “Force-pushing está bloqueado. Tente criar um branch novo em vez disso.”
Valores não textuais e strings vazias são silenciosamente ignorados. Se hint não estiver definido, o comportamento permanece inalterado (compatível com versões anteriores).
customPoliciesPath
Tipo: string (caminho absoluto)
Caminho para um arquivo JavaScript contendo políticas de hook personalizadas. Esse campo é definido automaticamente por failproofai policies --install --custom <path> (o caminho é resolvido para absoluto antes de ser armazenado).
O arquivo é carregado novamente a cada evento de hook — não há cache. Consulte Políticas personalizadas para detalhes de autoria.
Políticas baseadas em convenção
Além docustomPoliciesPath explícito, failproofai descobre e carrega automaticamente arquivos de políticas dos diretórios .failproofai/policies/:
| Nível | Diretório | Escopo |
|---|---|---|
| Projeto | .failproofai/policies/ | Compartilhado com o time via controle de versão |
| Usuário | ~/.failproofai/policies/ | Pessoal, aplica-se a todos os projetos |
*policies.{js,mjs,ts} são carregados (por exemplo, security-policies.mjs, workflow-policies.js). Outros arquivos no diretório são ignorados.
Sem necessidade de configuração: Políticas de convenção não exigem entradas em policies-config.json. Basta adicionar os arquivos ao diretório e eles serão detectados no próximo evento de hook.
Carregamento por união: Os diretórios de convenção do projeto e do usuário são varridos. Todos os arquivos correspondentes de ambos os níveis são carregados (ao contrário de customPoliciesPath, que usa o primeiro escopo vencedor).
Consulte Políticas personalizadas para mais detalhes e exemplos.
llm
Tipo: object (opcional)
Configuração do cliente LLM para políticas que fazem chamadas de IA. Não é necessário para a maioria dos casos.
Gerenciando a configuração pela CLI
Os comandospolicies --install e policies --uninstall escrevem no settings.json do Claude Code (os pontos de entrada do hook), enquanto policies-config.json é o arquivo que você gerencia diretamente. Os dois são separados:
settings.json— instrui o Claude Code a chamarfailproofai --hook <event>a cada uso de ferramentapolicies-config.json— instrui o failproofai sobre quais políticas avaliar e com quais parâmetros
policies-config.json diretamente a qualquer momento; as alterações entram em vigor imediatamente no próximo evento de hook, sem necessidade de reinicialização.
Exemplo: configuração no nível do projeto com padrões do time
Faça commit de.failproofai/policies-config.json no seu repositório:
.failproofai/policies-config.local.json (ignorado pelo git) para substituições pessoais sem afetar os colegas de time.
