Crea un archivo con extensión policies.js, policies.mjs o policies.ts dentro de .failproofai/policies/. Los archivos de convención se cargan automáticamente en el ámbito del proyecto y del usuario.
Prueba la política antes de publicarla en la nube
- Instala la política personalizada en una máquina de prueba y activa tanto una acción que coincida como una legítima que no coincida.
- Ve a Observar → política y compara las dos decisiones.
- Abre cada sesión vinculada y verifica que el payload del evento contenga suficiente evidencia para la regla.
- Cuando el comportamiento sea correcto, mueve el código revisado a Admin → editor de políticas y publica una versión.
Los archivos de convención dentro de .failproofai/policies/ se cargan sin --custom. Mantén un comando de instalación explícito en CI cuando la validación deba fallar con un módulo roto.
Esto coincide con production/config.yml, /srv/production/config.yml, /srv/production y C:\\production\\config.yml tanto para Write como para Edit. No coincide con nombres como production-backup porque production debe ser un segmento de ruta completo.
Valida e instala un archivo explícito:
El contexto de la política incluye el tipo de evento, el payload normalizado, el nombre e input de la herramienta, los metadatos de sesión, los parámetros y el CLI de origen cuando está disponible.
Prueba las rutas de fallo
Ejecuta la validación después de modificar el archivo de entrada o cualquier módulo local que importe:
La ruta CLI con —strict falla ante archivos faltantes, errores de sintaxis, importaciones no resueltas, excepciones en el nivel superior y tiempos de espera de carga del módulo. En el momento de aplicación de la política, un archivo personalizado roto se registra y se omite para que las políticas integradas puedan continuar. Trata cualquier advertencia de carga como una pérdida de la aplicación esperada y genera una alerta en los registros de producción.
Usa nombres únicos globalmente entre políticas explícitas, de convención y gestionadas en la nube. Mantén las funciones de política deterministas, limita las llamadas externas con tiempos de espera cortos, y devuelve un allow, instruct o deny intencional en cada ruta de ejecución.
Una política personalizada es código de aplicación. Prueba campos faltantes, nombres de herramienta alternativos y entradas con formato incorrecto, no solo la coincidencia esperada.