Aller au contenu
Architecture agentique

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

Modèle
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 commandes

Exemple

Exemple concret
// .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

  1. 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.
  2. 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 »).
  3. Versionnez .claude/settings.json pour l'équipe et gardez vos réglages personnels dans .claude/settings.local.json, non versionné.
  4. 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