Garde-fous du dépôt (Claude Code et Cursor)
Un dépôt confié à un agent se protège en couches : des consignes pour guider, des permissions pour interdire, des hooks pour contrôler chaque action et des fichiers ignorés pour cacher les secrets.
- claude code
- permissions
- pretooluse
- claude.md
- settings.json
- cursorignore
- venv
- git commit
- git push
- hooks
Syntaxe
CLAUDE.md, AGENTS.md → consignes (consultatif).claude/settings.json → permissions deny / ask / allow (déterministe)Hooks PreToolUse → contrôle programmé avant chaque outilCursor → .cursorignore, hooks, réglages d'approbation des commandesExemple
// .claude/settings.json{ "permissions": { "deny": ["Bash(git push *)", "Read(./.env)", "Read(./.env.*)", "Read(./.venv/**)"], "ask": ["Bash(git commit *)"], "allow": ["Bash(npm run lint)", "Bash(npx tsc --noEmit)"] }}// Résultat attendu :// « pousse la branche » → refusé, sans même demander// « committe » → l'agent demande la permission// « lance le lint » → exécuté sans interruptionÀ retenir
- Les règles sont évaluées dans l'ordre deny, puis ask, puis allow : une interdiction ne peut pas être levée par une autorisation plus large.
- Une consigne de CLAUDE.md que l'agent ignore à répétition doit devenir une permission ou un hook (voir la fiche « Consultatif ou déterministe »).
- Versionnez .claude/settings.json pour l'équipe et gardez vos réglages personnels dans .claude/settings.local.json, non versionné.
- Piège : interdire Read(./.env) en laissant le shell libre. Une règle Read ne couvre pas forcément une commande comme cat .env lancée dans le terminal ; doublez-la d'un hook ou restreignez les commandes autorisées.
Voir aussi
- Consultatif ou déterministeUne consigne en Markdown est un conseil que le modèle peut ignorer ; une permission deny ou un hook est une règle appliquée par l'outil. Tout ce qui est irréversible relève de la seconde catégorie.
- Hooks d'agent (Cursor et Claude Code)Un hook est un petit programme que l'outil lance automatiquement à un moment précis, par exemple avant une commande shell : il peut l'autoriser, la bloquer avec un motif ou formater un fichier.
- .cursorignorePropre à Cursor : .cursorignore liste les fichiers que l'éditeur ne doit ni indexer ni fournir à l'IA, comme les secrets. Ce que l'agent ne lit pas, il ne peut pas le divulguer.
- Rules et AGENTS.mdAGENTS.md et les rules sont des instructions lues à chaque session : stack, arborescence, commandes, conventions et interdits. Ils évitent de réexpliquer le projet à chaque nouvelle demande.