Ámbitos de configuración
Existen tres ámbitos de configuración, evaluados en orden de prioridad:| Ámbito | Ruta del archivo | Propósito |
|---|---|---|
| project | .failproofai/policies-config.json | Configuración por repositorio, confirmada en control de versiones |
| local | .failproofai/policies-config.local.json | Anulaciones personales por repositorio, ignoradas por git |
| global | ~/.failproofai/policies-config.json | Valores predeterminados a nivel de usuario para todos los proyectos |
Reglas de fusión
enabledPolicies — la unión de los tres ámbitos. Una política habilitada en cualquier nivel estará activa.
policyParams — el primer ámbito que defina parámetros para una política determinada gana por completo. No se realiza una fusión profunda de los valores dentro de los parámetros de una política.
customPoliciesPath — gana el primer ámbito que lo defina.
llm — gana el primer ámbito que lo defina.
Formato del archivo de configuración
Referencia de campos
enabledPolicies
Tipo: string[]
Lista de nombres de políticas a habilitar. Los nombres deben coincidir exactamente con los identificadores de política que muestra failproofai policies. Consulta Políticas integradas para ver la lista completa.
Las políticas que no estén en enabledPolicies estarán inactivas, incluso si tienen entradas en policyParams.
policyParams
Tipo: Record<string, Record<string, unknown>>
Anulaciones de parámetros por política. La clave externa es el nombre de la política; las claves internas son específicas de cada política. Cada política documenta sus parámetros disponibles en Políticas integradas.
Si una política tiene parámetros pero no los especificas, se usan los valores predeterminados integrados de la política. Los usuarios que no configuren policyParams en absoluto obtendrán un comportamiento idéntico al de las versiones anteriores.
Las claves desconocidas dentro del bloque de parámetros de una política se ignoran silenciosamente en el momento de disparar el hook, pero se marcan como advertencias cuando ejecutas failproofai policies.
hint (transversal)
Tipo: string (opcional)
Un mensaje que se añade al motivo cuando una política devuelve deny o instruct. Úsalo para dar a Claude orientación accionable sin modificar la política en sí.
Funciona con cualquier tipo de política: integrada, personalizada (custom/), convención de proyecto (.failproofai-project/) o convención de usuario (.failproofai-user/).
hint no está definido, el comportamiento no cambia (compatible con versiones anteriores).
customPoliciesPath
Tipo: string (ruta absoluta)
Ruta a un archivo JavaScript que contiene políticas de hook personalizadas. Este valor lo establece automáticamente failproofai policies --install --custom <path> (la ruta se resuelve a absoluta antes de almacenarse).
El archivo se carga desde cero en cada evento de hook; no hay caché. Consulta Políticas personalizadas para ver los detalles de creación.
Políticas basadas en convención
Además delcustomPoliciesPath explícito, failproofai descubre y carga automáticamente archivos de políticas desde directorios .failproofai/policies/:
| Nivel | Directorio | Ámbito |
|---|---|---|
| Proyecto | .failproofai/policies/ | Compartido con el equipo a través del control de versiones |
| Usuario | ~/.failproofai/policies/ | Personal, se aplica a todos los proyectos |
*policies.{js,mjs,ts} (por ejemplo, security-policies.mjs, workflow-policies.js). Los demás archivos del directorio se ignoran.
Sin configuración necesaria: Las políticas de convención no requieren entradas en policies-config.json. Simplemente coloca los archivos en el directorio y se detectarán en el siguiente evento de hook.
Carga por unión: Se analizan tanto el directorio de convención del proyecto como el del usuario. Todos los archivos coincidentes de ambos niveles se cargan (a diferencia de customPoliciesPath, que usa el criterio de primer ámbito que gana).
Consulta Políticas personalizadas para más detalles y ejemplos.
llm
Tipo: object (opcional)
Configuración del cliente LLM para políticas que realizan llamadas a IA. No es necesario para la mayoría de las configuraciones.
Gestión de la configuración desde la CLI
Los comandospolicies --install y policies --uninstall escriben en el settings.json de Claude Code (los puntos de entrada del hook), mientras que policies-config.json es el archivo que gestionas directamente. Los dos son independientes:
settings.json— le indica a Claude Code que llame afailproofai --hook <event>en cada uso de herramientapolicies-config.json— le indica a failproofai qué políticas evaluar y con qué parámetros
policies-config.json directamente en cualquier momento; los cambios surten efecto de inmediato en el siguiente evento de hook sin necesidad de reiniciar.
Ejemplo: configuración a nivel de proyecto con valores predeterminados del equipo
Confirma.failproofai/policies-config.json en tu repositorio:
.failproofai/policies-config.local.json (ignorado por git) para sus anulaciones personales sin afectar a sus compañeros de equipo.
