**Motivations:** - Centraliser les fichiers Cursor (rules, skills, agents, commands, hooks) par user et par projet **Root causes:** - N/A **Correctifs:** - N/A **Evolutions:** - desk: rules, skills-cursor, agents, commands, hooks, argv/hooks/mcp.json - ncantu: README placeholder - 4NK_node, algo, builazoo, ia_local, lecoffre_ng, lecoffre_ng_pprod, lecoffre_ng_test: .cursor contents **Pages affectées:** - cursor/desk/, cursor/ncantu/, cursor/<project>/
39 lines
1.8 KiB
Markdown
39 lines
1.8 KiB
Markdown
# Cursor Hooks (niveau utilisateur)
|
|
|
|
Hooks pour observer et étendre le cycle de l'agent Cursor. Utiles pour la commande `/fix-lint` et le subagent fix-lint en arrière-plan.
|
|
|
|
## Logs
|
|
|
|
Tous les événements sont journalisés dans `~/.cursor/logs/hooks.log`.
|
|
|
|
## Hooks configurés
|
|
|
|
- **sessionStart** : Log démarrage session
|
|
- **sessionEnd** : Log fin session
|
|
- **subagentStart** : Log lancement subagent, autorise fix-lint
|
|
- **subagentStop** : Log fin subagent, followup pour fix-lint (vérifier lint)
|
|
- **beforeShellExecution** : Log commande shell, autorise par défaut
|
|
- **afterShellExecution** : Log sortie commande (tronquée)
|
|
- **beforeReadFile** : Log accès fichier
|
|
- **afterFileEdit** : Log édition fichier
|
|
- **stop** : Log fin agent (completed/aborted/error)
|
|
- **postToolUseFailure** : Log échec outil (shell, etc.)
|
|
|
|
## Fix-lint
|
|
|
|
Quand le subagent fix-lint se termine avec succès, `subagentStop` ajoute un message de suivi suggérant de relancer `npm run lint` dans les trois applications.
|
|
|
|
## Déploiement et correction automatique
|
|
|
|
Quand un subagent de déploiement échoue (`status=error` et résultat contenant deploy/déploiement), `subagentStop` retourne un `followup_message` demandant à l'agent parent d'analyser l'erreur, identifier la root cause, corriger le bug et retenter. Pour bénéficier de ce flux, lancer le déploiement via le subagent `/deploy` (et non via une commande shell directe).
|
|
|
|
## Personnalisation
|
|
|
|
- **Bloquer une commande** : modifier `before-shell-execution.sh`, retourner `"permission":"deny"`.
|
|
- **Bloquer un subagent** : modifier `subagent-start.sh`, retourner `{"decision":"deny","reason":"..."}`.
|
|
- **Désactiver un hook** : retirer l'entrée correspondante dans `~/.cursor/hooks.json`.
|
|
|
|
## Redémarrage
|
|
|
|
Redémarrer Cursor après modification de `hooks.json` ou des scripts.
|