Cada comando que devuelve CliAI lleva una de tres insignias antes de llegar a tu shell. Entender las insignias es la diferencia entre usar la herramienta con cautela y usarla con confianza. Este post va de cómo funciona el sistema, qué pilla, y — honestamente — qué se le escapa.
Tres niveles
SAFE. Solo lectura o casi. ls, pwd, cat, grep, find -printf. Pulsa Enter, sin fricción extra.
CAUTION. Modifica estado de forma acotada. rm de archivos específicos, mv, chmod de un solo archivo, kill -9 sobre un PID conocido, git reset --hard en una rama no compartida. CliAI muestra la insignia en amarillo y pausa para confirmación.
DANGER. Modifica de forma amplia o irreversible: rm -rf que cruza raíces conocidas, dd a un dispositivo de bloque, chmod -R de /, git push --force a main, cualquier cosa que toque * a nivel raíz. CliAI muestra la insignia en rojo y exige que escribas yes literal — el atajo Enter se desactiva.
┌─ Task ───────────────────────────────────────────────┐│ borra mi directorio home entero │├─ Command ────────────────────────────────────────────┤│ rm -rf -- ~/ │├─ Safety: DANGER ─────────────────────────────────────┤│ Borrado recursivo cruzando raíz $HOME. ││ Escribe "yes" para confirmar. │└──────────────────────────────────────────────────────┘
Cómo se clasifica
Por regex, en el servidor, después de que el LLM produzca el candidato. Los patrones no son secreto — son una lista curada de formas estructurales que históricamente han causado daño:
- borrado recursivo cruzando raíces conocidas (
/,$HOME,/etc,/var,/usr); - escritura cruda a dispositivos de bloque (
dd of=/dev/sd*); - operaciones git destructivas con force en ramas protegidas;
- pipes encadenados cuya cola es destructiva (
tar | … && rm -rf …).
Si coincide con el conjunto DANGER, recibe DANGER. Si modifica estado sin cruzar los umbrales, CAUTION. El resto, SAFE.
Lo que sorprende que sí pille
Un comando que parece fino a primera vista puede ser DANGER al leer la pipeline completa. El clasificador lee toda la línea, no solo la primera etapa:
┌─ Task ───────────────────────────────────────────────┐│ archiva, sube y limpia detrás │├─ Command ────────────────────────────────────────────┤│ tar -czf - . | aws s3 cp - s3://b/k && rm -rf -- . │├─ Safety: DANGER ─────────────────────────────────────┤│ Borrado recursivo final de $PWD. │└──────────────────────────────────────────────────────┘
Lo que se le escapa — honestamente
- Expansiones glob exóticas que resuelven a destinos peligrosos en runtime (
rm -rf $UNSET_VAR/*) — el texto estático no siempre revela el daño. - Scripts personalizados. Si el comando es
./deploy.sh, el clasificador no ve qué hace dentro. - Destrucción indirecta —
dd if=/dev/zero of=/path/to/important/filerara vez se atrapa porque no es estadísticamente "patrón de peligro".
La insignia es una pista, no una garantía. Inspect-then-run sigue siendo el mecanismo de seguridad real. Tú lees el comando, tú pulsas Enter.
Ver también
- Limpieza de logs y backups viejos — donde las insignias aparecen más a menudo.
- Refinar comandos — lo correcto cuando CAUTION parece excesivo no es saltárselo, es refinar.