Pieges courants des hooks
Pieges courants des hooks
Quand vous travaillez avec les hooks, il y a un piege important a connaitre : la gestion des chemins.
Le probleme des chemins absolus
La documentation de Claude Code recommande d’utiliser des chemins absolus (plutot que relatifs) pour les scripts de hooks. Cette recommandation aide a attenuer les attaques par interception de chemin et plantation de binaires.
Cependant, cette recommandation rend beaucoup plus difficile le partage des fichiers settings.json entre developpeurs. La raison est simple : le chemin absolu vers les scripts de hooks sur votre machine sera probablement different de celui sur la machine d’un collegue, simplement parce que vous placerez le projet dans des repertoires differents.
La solution : fichier template avec placeholder
Pour resoudre ce probleme, vous pouvez utiliser un fichier settings.example.json avec un placeholder $PWD :
{
"hooks": {
"PreToolUse": [
{
"matcher": "Read|Grep",
"hooks": [
{
"type": "command",
"command": "node $PWD/hooks/read_hook.js"
}
]
}
]
}
}
Puis ajoutez un script d’initialisation (par exemple scripts/init-claude.js) qui :
- Lit le fichier
settings.example.json - Remplace les placeholders
$PWDpar le chemin absolu reel du projet - Copie le resultat dans
.claude/settings.local.json
Mise en pratique
Integrez cette initialisation dans votre script de setup :
{
"scripts": {
"setup": "npm install && node scripts/init-claude.js"
}
}
Ainsi, chaque developpeur qui lance le setup obtient automatiquement un fichier settings.local.json avec les bons chemins absolus pour sa machine.
Points a retenir
- Utilisez des chemins absolus dans vos configurations de hooks pour la securite
- Ne commitez pas
settings.local.json— il contient des chemins specifiques a votre machine - Commitez un fichier template (
settings.example.json) avec des placeholders - Automatisez la generation du fichier local via un script de setup
- Redemarrez Claude Code apres toute modification des fichiers de parametres