Ir al contenido

guard.mjs

  • Evento: PreToolUse Bash/PowerShell
  • Tipo: muro: bloquea la acción con el motivo (sale con código 2)
  • Escapes: SENZU_ALLOW_DEPLOY=1 · SENZU_ALLOW_LOGO=1 · SENZU_ALLOW_LIB=1 (siempre con aprobación explícita, documentada en el devlog)

BLOQUEA: git push, destructivos de BD/git, rm -rf, deploy a prod sin aprobación (escape SENZU_ALLOW_DEPLOY=1), generadores de logos con logo ya elegido (SENZU_ALLOW_LOGO=1), jQuery/Bootstrap (SENZU_ALLOW_LIB=1), devops peligroso (curl|bash, chmod 777, dd, mkfs, docker prune, parar servicios, vaciar firewall, crontab -r); commits: rama protegida, Conventional ≤72, sin co-autores.

Hook PreToolUse para Claude Code. Bloquea acciones prohibidas: git push, borrados/alteraciones destructivas de BD, resets destructivos, rm -rf peligrosos, comandos devops/linux peligrosos (curl|bash, chmod 777, dd a discos, mkfs, prune forzado…). Claude Code invoca este script pasando por STDIN un JSON con { tool_name, tool_input }. Si el comando coincide con un patrón prohibido, el hook lo DENIEGA: - Escribe el motivo en STDERR - Sale con código 2 (=> Claude Code bloquea la ejecución y muestra el motivo) Si no coincide, sale con 0 (permite continuar el flujo de permisos normal). Se usa como capa “inteligente” además de permissions.deny (capa simple) en settings.json.

Ver el código de guard.mjs en GitHub