Crear una política personalizada
- Dashboard
- CLI
- Ve a Admin → editor de políticas, selecciona Nueva política y describe el fallo que quieres prevenir.
- Añade el código fuente de la política, luego prueba coincidencias esperadas y no coincidencias seguras en el editor. Resuelve todos los errores de validación.
- Guarda el borrador y selecciona Publicar versión para crear una versión inmutable.
-
Ve a Admin → cumplimiento, despliega la versión en una máquina de prueba en modo observación y verifica sus decisiones en Observar → política antes de aplicarla.

Empieza con una regla específica
Esta política bloquea comandos destructivos de Kubernetes únicamente cuando el comando apunta a producción. Todo lo que quede fuera de ese patrón de fallo exacto devuelveallow().
allow() en cuanto la regla no sea aplicable.
Elige una decisión
Escribe la razón pensando en el agente que debe recuperarse. Explica qué se detectó y qué debería hacer en su lugar.
Objeto de política
Filtra herramientas dentro de
fn. match.toolNames no forma parte del tipo público de política personalizada.
Contexto de la política
Toda política recibe unPolicyContext.
Trata cada valor opcional como genuinamente opcional. Las versiones de agentes y los tipos de eventos no siempre proporcionan los mismos campos.
Entradas comunes de herramientas
Failproof AI normaliza las herramientas más comunes entre los harnesses compatibles, de modo que una política generalmente puede usar una sola forma de entrada.
Usa coerción defensiva porque los valores de entrada de las herramientas están tipados como
unknown:
Elige el evento
La disponibilidad de eventos y el comportamiento de bloqueo dependen del harness del agente. Consulta Harnesses de agentes antes de depender de un evento en una flota mixta.
Todos los nombres de eventos de política
Todos los nombres de eventos de política
SessionStart, SessionEnd, UserPromptSubmit, PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, Notification, SubagentStart, SubagentStop, TaskCreated, TaskCompleted, Stop, StopFailure, TeammateIdle, InstructionsLoaded, ConfigChange, CwdChanged, FileChanged, WorktreeCreate, WorktreeRemove, PreCompact, PostCompact, Elicitation, ElicitationResult, UserPromptExpansion, PostToolBatch y Setup.Patrones comunes de políticas
Bloquear escrituras en rutas protegidas
Proporcionar orientación sin bloquear
Controlar la finalización de sesión
Cargar archivos de políticas
Archivos de convención
Los archivos de convención se cargan automáticamente:- Se cargan tanto el directorio de políticas del proyecto como el del usuario.
- Los archivos se cargan alfabéticamente dentro de cada directorio.
- El nombre del archivo debe terminar en
policies.js,policies.mjsopolicies.ts. - Se admiten múltiples llamadas a
customPolicies.add()en un mismo archivo. - Se admiten importaciones relativas desde módulos locales.
- Las políticas del proyecto pueden incluirse en el repositorio para que las mismas reglas sigan al código.
Archivos explícitos
Usa rutas explícitas cuando la validación o la configuración deba nombrar el archivo de entrada directamente:Validar y probar
La validación ejecuta el módulo a través del cargador de producción y confirma que registra al menos una política.- Una acción que deba coincidir y producir el motivo de política esperado.
- Una acción cercana pero segura que deba devolver
allow(). - Campos de herramienta faltantes o malformados.
- Sintaxis de comandos alternativa, rutas, comillas, mayúsculas/minúsculas y espacios en blanco.
- Un subproceso o dependencia de red no disponible.
Comportamiento en tiempo de ejecución
- Las políticas integradas se evalúan antes que las políticas personalizadas.
- El primer
denydetiene la evaluación de políticas posteriores. - Múltiples resultados
instructpueden combinarse cuando ninguna política deniega el evento. - Una función de política tiene un plazo de ejecución de 10 segundos.
- Una excepción lanzada o un tiempo de espera agotado se registra y se trata como
allow(). - Un archivo de convención que falla al cargar se omite; los demás archivos personalizados y las políticas integradas continúan.
- La carga del módulo en el nivel superior también tiene un plazo de 10 segundos.
- El modo de observación en la nube ejecuta la política pero registra una decisión que no es allow sin aplicarla.
fn, captura los fallos de dependencias y decide deliberadamente si ese fallo debe permitir o denegar la operación.
Exportaciones de la API
TypeScript exporta
PolicyContext, PolicyResult, CustomHook, PolicyDecision y PolicyFunction.
Implementar políticas personalizadas
Publica una versión, impleméntala en modo observación, verifica las decisiones y pasa a la aplicación.

