Force push, rm -rf, segreti esposti, tabelle cancellate. Hook PreToolUse. Warning preventivo, zero blocchi.
Livello di rischio e warning specifico per ogni pattern. Non blocca. Avvisa.
| Pattern | Rischio | Warning |
|---|---|---|
git push --force |
HIGH | Sovrascrive la storia remota. Usa --force-with-lease come alternativa sicura. |
rm -rf |
HIGH | Cancellazione ricorsiva irreversibile. Verifica il path prima di eseguire. |
.env / .pem |
HIGH | Possibile esposizione di segreti. Verifica che il file sia in .gitignore. |
git reset --hard |
HIGH | Distrugge tutte le modifiche non committate. Considera git stash prima. |
git checkout . |
HIGH | Scarta tutte le modifiche locali. Assicurati di aver salvato il lavoro. |
git push main |
MEDIUM | Push diretto su main/master. Usa un branch e una pull request. |
DROP TABLE |
HIGH | Cancellazione di tabella database. Verifica l'ambiente (dev/staging/prod). |
docker prune |
MEDIUM | Rimuove container, volumi e immagini. Puo eliminare dati persistenti. |
chmod 777 |
MEDIUM | Apre tutti i permessi. Rischio di sicurezza su file sensibili. |
Avviso chiaro prima dell'esecuzione. La decisione resta al coder.
Il coder sta per eseguire un comando. L'hook si attiva prima dell'esecuzione.
Il comando viene confrontato con i pattern pericolosi conosciuti.
Se c'e un match, un warning viene scritto su stderr. Il coder lo vede immediatamente.
Il coder decide se procedere o no. Zero blocchi, zero falsi positivi forzati.
Principio: Non blocca. Informa. L'informazione arriva prima dell'azione.
Scarica il seed file.
Copia SEED-safety.md nella root del tuo progetto.
L'AI coder legge il seed, genera gli hook, attiva il monitoraggio.
# 1. Crea la configurazione hooks in .claude/settings.local.json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash|Execute",
"hooks": [{
"type": "command",
"command": "bash .claude/hooks/safety-guard.sh"
}]
}
]
}
}
# 2. Crea lo script .claude/hooks/safety-guard.sh
#!/bin/bash
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
# Pattern matching per i 9 comandi pericolosi
if echo "$CMD" | grep -qE 'push\s+--force|push\s+-f'; then
echo "WARNING: force push rilevato" >&2
fi
if echo "$CMD" | grep -qE 'rm\s+-rf'; then
echo "WARNING: rm -rf rilevato" >&2
fi
# ... (i restanti 7 pattern)
# 3. Rendi eseguibile
chmod +x .claude/hooks/safety-guard.sh