Règles et hooks de Codex
Grâce aux Règles et aux Hooks, vous pouvez personnaliser le comportement de Codex pour mieux l'adapter à votre flux de travail. Cette section détaille ces deux fonctionnalités.
Règles
Les Règles vous permettent de définir des lignes directrices de comportement personnalisées pour Codex, appliquées à toutes les conversations.
Emplacement du fichier de règles
Codex charge les règles depuis les emplacements suivants :
~/.codex/rules/- Règles au niveau utilisateur{项目}/.codex/rules/- Règles au niveau projet
Format du fichier de règles
Créer un fichier de règles
## Style de code
- Utiliser 4 espaces pour l'indentation
- Maximum 100 caractères par ligne
- Toujours utiliser const/let, pas var
## Conventions de commentaires
- Les fonctions publiques doivent inclure des commentaires JSDoc
- Ajouter des commentaires en ligne pour expliquer la logique complexe
- Supprimer tous les console.log de débogage
## Exigences de tests
- Toutes les nouvelles fonctionnalités doivent inclure des cas de test
- Nommage des fichiers de test : *.test.js ou *.spec.js
## Commit Git
- Les messages de commit utilisent le format Conventional Commits
- Exécuter le lint et les tests avant de commit
Activer les règles
Activer les règles dans la configuration
codex_hooks = true
Les règles sont injectées dans le prompt système de chaque conversation, ce qui garantit que Codex respecte toujours vos normes de codage.
Hooks
Les hooks vous permettent d'exécuter des actions personnalisées lorsque des événements spécifiques se produisent.
Emplacement du fichier de hook
Les hooks sont~/.codex/hooks.jsonconfigurés dans :
Créer une configuration de hook
"hooks": [
{
"event": "on_tool_call",
"match": "shell",
"action": "allow"
},
{
"event": "on_task_complete",
"action": "notify",
"command": "echo 'Task completed'"
}
]
}
Événements disponibles
| Événements | Description |
|---|---|
on_tool_call | Déclenchement avant l'invocation de l'outil |
on_task_start | Déclenchement au début de la tâche |
on_task_complete | Déclenchement à la fin de la tâche |
on_error | Déclenchement en cas d'erreur |
on_message | Déclenchement à la réception d'un message |
Actions du hook
| Opération | Description |
|---|---|
allow | Autoriser la poursuite de l'opération |
deny | Bloquer les actions |
notify | Envoyer des notifications |
log | Enregistrer les journaux |
custom | Exécuter un script personnalisé |
L'activation de la fonctionnalité de hook nécessite une configuration[features].codex_hooks = true
Exemples pratiques
Exemple 1 : Exécuter automatiquement les tests
Exécuter automatiquement les tests chaque fois que Codex modifie un fichier :
Hook de test automatisé
"hooks": [
{
"event": "on_tool_call",
"match": "edit_file",
"action": "custom",
"command": "npm test",
"timeout": 60
}
]
}
Exemple 2 : Imposer la revue de code
Imposer la revue de code avant le commit :
Hook de revue de code
"hooks": [
{
"event": "on_tool_call",
"match": "git_commit",
"action": "custom",
"command": "/review",
"require_approval": true
}
]
}
Exemple 3 : Journalisation
Journaliser toutes les exécutions de commandes :
Hook de journalisation
"hooks": [
{
"event": "on_tool_call",
"match": "shell",
"action": "log",
"log_file": "/tmp/codex-commands.log"
}
]
}
Différence entre les règles et les hooks
| Fonctionnalités | Règles | Hook |
|---|---|---|
| Moment | Lorsque la conversation démarre | Lorsqu'un événement est déclenché |
| Objectif principal | Définir des normes de codage | Actions d'automatisation |
| Emplacement de la configuration | répertoire rules/ | hooks.json |
Les Règles et les Hooks peuvent être utilisés ensemble : les Règles définissent le « comment », et les Hooks définissent le « quand ».
Bonnes pratiques
Bonnes pratiques pour les Règles
- Gardez les règles concises et claires
- Évitez les restrictions trop strictes
- Adaptez les règles aux exigences du projet
Bonnes pratiques pour les Hooks
- Évitez les hooks de longue durée
- Définir un délai d’attente raisonnable
- Testez le comportement des hooks
Une utilisation excessive des Hooks peut affecter les performances de Codex, donc n'ajoutez que les Hooks dont vous avez vraiment besoin.
FAQ
Q : Les règles ne prennent pas effet ?
Assurez-vous que le fichier de règles se trouve au bon emplacement et qu'il est activé.codex_hooksFonctionnalités.
Q : L'échec d'exécution d'un Hook bloquera-t-il l'opération ?
Cela dépend de la configuration du Hook ; certains échecs de Hook bloqueront les opérations suivantes.
Q : Les règles peuvent-elles être activées/désactivées dynamiquement ?
Oui, vous pouvez les contrôler via des fichiers de configuration ou des variables d'environnement.
autres extensions