code

Hooks Claude Code

Un prompt pour comprendre et générer des hooks Claude Code pour automatiser votre workflow

claude-codehooksautomatisationworkflow

Hooks Claude Code

Ce prompt explique le système de hooks de Claude Code et génère une configuration settings.json avec des hooks pratiques pour la sécurité, la qualité de code et l'automatisation du workflow.

Le prompt

Génère une configuration de hooks Claude Code complète pour mon projet.

<contexte-projet>
Stack: [Votre stack technique]
Package manager: [bun / npm / pnpm]
Linter: [eslint / biome / etc.]
Formatter: [prettier / biome / etc.]
Tests: [vitest / jest / etc.]
</contexte-projet>

<explication-hooks>
Les hooks Claude Code s'exécutent automatiquement à des moments clés. Il existe 4 types:

1. PreToolUse: s'exécute AVANT qu'un outil soit utilisé
   - Matcher: nom de l'outil (Bash, Write, Edit, etc.)
   - Peut bloquer l'action (exit 2 = bloquer)
   - Reçoit l'input de l'outil en JSON sur stdin

2. PostToolUse: s'exécute APRÈS qu'un outil a été utilisé
   - Matcher: nom de l'outil
   - Reçoit l'output de l'outil en JSON sur stdin

3. Stop: s'exécute quand Claude Code termine une réponse
   - Peut forcer Claude à continuer (exit 2)

4. SessionStart: s'exécute au début de chaque session
   - Pour initialiser l'environnement
</explication-hooks>

Génère un fichier .claude/settings.json avec les hooks suivants:

<hooks-securite>
1. Bloquer les fichiers sensibles:
   - PreToolUse sur Write et Edit
   - Bloquer l'écriture dans .env, .env.local, .env.production
   - Bloquer l'écriture de clés API ou tokens en dur
   - Script: vérifier le chemin du fichier et le contenu

2. Empêcher les push force:
   - PreToolUse sur Bash
   - Bloquer les commandes contenant "push --force" ou "push -f" (sauf --force-with-lease)
   - Script: analyser la commande

3. Empêcher les suppressions dangereuses:
   - PreToolUse sur Bash
   - Bloquer "rm -rf /", "git clean -f", "git checkout -- ."
   - Script: pattern matching sur la commande
</hooks-securite>

<hooks-qualite>
4. Lint après édition:
   - PostToolUse sur Write et Edit
   - Lancer le linter sur le fichier modifié
   - Afficher les erreurs pour que Claude les corrige

5. Type-check après édition de fichiers TypeScript:
   - PostToolUse sur Write et Edit
   - Si le fichier est .ts ou .tsx, lancer tsc --noEmit
   - Signaler les erreurs de type

6. Format automatique:
   - PostToolUse sur Write
   - Lancer le formatter sur le fichier créé/modifié
</hooks-qualite>

<hooks-workflow>
7. Rappel de tests au stop:
   - Stop hook
   - Vérifier si des fichiers source ont été modifiés sans lancer les tests
   - Si oui, rappeler à Claude de lancer les tests (exit 2)

8. Contexte au démarrage:
   - SessionStart hook
   - Afficher la branche git actuelle et le dernier commit
   - Afficher les fichiers modifiés non commités
</hooks-workflow>

<format-settings>
Le fichier settings.json doit suivre cette structure exacte:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "script ou commande inline"
          }
        ]
      }
    ],
    "PostToolUse": [...],
    "Stop": [...],
    "SessionStart": [...]
  }
}

Pour les scripts complexes, crée des fichiers .sh dans .claude/hooks/ et référence-les.
</format-settings>

Fournis:
1. Le fichier .claude/settings.json complet
2. Les scripts shell référencés dans .claude/hooks/
3. Un guide d'installation en 3 étapes

Utilisation

Adaptez la section <contexte-projet> à votre stack. Les hooks de sécurité sont recommandés pour tous les projets. Les hooks de qualité sont optionnels mais utiles pour maintenir un code propre automatiquement. Placez le fichier settings.json généré dans le dossier .claude/ à la racine de votre projet.