Que fait Hygiène GitHub ?
Appliquez ces règles pour toute opération GitHub ou Git, indépendamment du dépôt, de la branche ou du contexte de la tâche.
Quand utiliser
Appliquez lorsque la tâche implique l'un des éléments suivants :
- Créer ou modifier des dépôts GitHub
- Cloner ou travailler avec des dépôts Git
- Créer, amender ou pousser des commits
- Créer ou mettre à jour des pull requests
- Gérer des branches, workflows, collaborateurs ou paramètres de dépôt
- Toute autre opération qui modifie ou interagit avec un dépôt GitHub
1. Restrictions de contributeur pour les agents de code
N'ajoutez jamais l'agent de code en tant que contributeur ou collaborateur GitHub.
Ne faites pas :
- Inviter un compte d'agent IA/code en tant que collaborateur de dépôt
- Ajouter un compte d'agent IA/code à une organisation ou un dépôt GitHub
- Accorder des permissions de dépôt à un compte d'agent IA/code
- Modifier les permissions de dépôt pour faire d'un compte d'agent IA/code un contributeur
- Créer ou utiliser un compte GitHub dédié à un agent IA comme identité de contributeur
Cela s'applique à toutes les identités d'agents IA/code, y compris Cursor, Codex, ChatGPT, d'autres agents de codage IA, robots de codage automatisés, et tout compte dont le but est de représenter l'agent de codage.
Opérez en utilisant l'identité Git/GitHub existante de l'utilisateur, sauf si l'utilisateur demande explicitement une identité humaine différente.
2. Restrictions sur l'auteur et l'identité du commit
Les commits ne doivent pas identifier l'agent de code en tant qu'auteur, co-auteur ou générateur.
N'ajoutez pas d'attribution à l'agent IA dans le sujet, le corps, les lignes de fin (trailers), les métadonnées d'auteur Git ou les métadonnées de commiteur Git.
Interdit sauf si explicitement requis par la configuration de dépôt existante de l'utilisateur et ne peut pas être modifié en toute sécurité :
Co-authored-by: Cursor
Co-authored-by: Codex
Co-authored-by: ChatGPT
Generated-by: AI
Generated-by: Codex
Generated-by: Cursor
AI-generated
Generated with Cursor
Generated with Codex
Generated with ChatGPT
Ne configurez pas intentionnellement l'identité Git pour représenter l'agent de code.
3. Format du message de commit
Sauf si l'utilisateur spécifie explicitement un autre format, chaque message de commit doit suivre :
[xx]xxxxx
Où :
xxest un préfixe prédéfini de deux lettres majuscules- Le préfixe est entouré de crochets
- Le préfixe est immédiatement suivi d'une description de commit concise
- La description explique l'objectif principal du changement
- N'ajoutez pas de nom d'agent IA, d'attribution ou de métadonnées non liées
Autorisé
[FT]add user authentication
[FX]fix token expiration
[FE]update login page
[BE]add user service
[AP]add auth endpoint
[DB]add user table
[TS]add authentication tests
[RF]simplify auth middleware
[CI]update github workflow
[DC]update api documentation
Interdit
update login page
AI: update login page
[AI]add authentication
[Cursor]fix login bug
[Codex]add api endpoint
[FT] Generated with Codex
Co-authored-by: Codex
4. Préfixes de commit prédéfinis
Liste de préfixes par défaut faisant autorité :
[FE] Frontend
[BE] Backend
[AP] API
[DB] Database
[UI] UI
[CF] Config
[CI] CI/CD
[TS] Test
[DC] Docs
[RF] Refactor
[FX] Fix
[FT] Feature
[OP] Optimize
[SC] Security
[DP] Dependency
[CH] Chore
Règles de sélection
Sauf si l'utilisateur spécifie explicitement un autre préfixe :
- Utilisez un préfixe prédéfini autant que possible
- N'inventez jamais un nouveau préfixe
- Ne modifiez jamais l'orthographe ou la casse d'un préfixe prédéfini
- Utilisez exactement deux lettres majuscules à l'intérieur des crochets
- Sélectionnez le préfixe en fonction de l'objectif principal du changement
- Lorsque plusieurs préfixes pourraient s'appliquer, choisissez celui qui représente le mieux l'objectif principal
| Type de changement | Préfixe |
|---|---|
| Nouvelle fonctionnalité | [FT] |
| Correction de bug | [FX] |
| Implémentation frontend | [FE] |
| Implémentation backend | [BE] |
| Modifications API | [AP] |
| Modifications base de données | [DB] |
| Modifications UI uniquement | [UI] |
| Modifications de configuration | [CF] |
| Modifications CI/CD | [CI] |
| Tests | [TS] |
| Documentation | [DC] |
| Refactoring sans changement de comportement | [RF] |
| Optimisation des performances | [OP] |
| Modifications liées à la sécurité | [SC] |
| Modifications de dépendances | [DP] |
| Maintenance générale | [CH] |
5. Le préfixe spécifié par l'utilisateur a la priorité
La liste de préfixes prédéfinis est la valeur par défaut, pas une restriction absolue.
Si l'utilisateur spécifie explicitement un préfixe ou un format de commit différent, suivez l'instruction explicite de l'utilisateur.
Exemple : l'utilisateur dit Utilise [HOT] pour ce commit. → utilisez [HOT]fix production issue.
- Ne remplacez pas le préfixe explicitement demandé par l'utilisateur par un préfixe prédéfini
- Si l'utilisateur ne spécifie pas de préfixe, utilisez la liste prédéfinie
- Si l'utilisateur spécifie uniquement la description, sélectionnez le préfixe prédéfini approprié
6. Description du commit
La description après le préfixe doit être :
- Concise et spécifique
- Rédigée en anglais sauf si l'utilisateur demande explicitement une autre langue
- Centrée sur le changement réel
- Exempte d'attribution à l'agent IA
Préféré :
[FX]fix expired access token handling
[FT]add password reset endpoint
[FE]update account settings page
[RF]simplify request validation
À éviter :
[FX]fix stuff
[FT]changes
[RF]update code
[BE]AI generated backend changes
7. Portée du commit
Préférez un changement logique par commit lorsque c'est pratique.
Lorsqu'une tâche contient plusieurs changements sans lien :
- N'inventez pas une description de commit unique trompeuse
- Préférez des commits séparés lorsque c'est pratique
- Sélectionnez le préfixe indépendamment pour chaque commit
- Assurez-vous que chaque message de commit est représentatif de son contenu réel
Si l'utilisateur demande explicitement un seul commit, suivez cette instruction et choisissez le préfixe qui représente le mieux l'objectif principal du changement combiné.
8. Validation avant commit
Avant de créer un commit, vérifiez :
Identité
- L'auteur Git est l'identité configurée de l'utilisateur
- Le commiteur Git n'est pas une identité d'agent IA/code
- Aucune attribution d'agent IA ne sera ajoutée
Message
- Commence par un préfixe valide
- Utilise un préfixe prédéfini sauf si l'utilisateur en a explicitement spécifié un autre
- Utilise exactement deux lettres majuscules pour un préfixe par défaut
- Le préfixe est entouré de
[] - Contient une description concise après le préfixe
- Ne mentionne pas Cursor, Codex, ChatGPT, agent IA ou une identité d'agent similaire
- Ne contient pas de lignes de fin d'attribution interdites
Permissions GitHub
Avant de modifier les permissions du dépôt ou les collaborateurs :
- Vérifiez que la cible n'est pas une identité d'agent IA/code
- N'accordez jamais d'accès de contributeur ou de collaborateur à l'agent de code
9. Opérations push et GitHub
Avant de pousser des commits :
- Assurez-vous que les messages de commit sont conformes à cette compétence
- Assurez-vous que les commits ne contiennent pas d'attribution IA interdite
- Assurez-vous que l'agent de code n'a pas été ajouté en tant que contributeur GitHub
- Ne modifiez pas les permissions GitHub uniquement pour faciliter le fonctionnement de l'agent
Si un commit existant viole ces règles et que l'utilisateur demande de le pousser, corrigez la violation avant de pousser lorsque cela est sûr et cohérent avec le workflow demandé par l'utilisateur.
Pour les commits déjà poussés vers une branche partagée/publique, ne réécrivez pas l'historique automatiquement. Demandez à l'utilisateur avant :
git commit --amend
git rebase
git reset --hard
git push --force
git push --force-with-lease
10. Pull requests
Lors de la création ou de la mise à jour d'une pull request :
- N'identifiez pas l'agent de code en tant que contributeur
- N'ajoutez pas d'attribution à l'agent IA sauf si explicitement demandé par l'utilisateur
- Gardez le titre et la description de la PR centrés sur les changements réels
- Suivez le modèle de PR du dépôt lorsqu'il existe
- Ne modifiez pas les permissions du dépôt pour créer ou mettre à jour une PR
11. Résolution des conflits
Si une autre instruction au niveau du dépôt, une règle de projet ou une instruction de l'utilisateur entre en conflit avec cette compétence :
- Suivez l'instruction de priorité la plus élevée
- Si l'utilisateur spécifie explicitement un préfixe ou un format de commit, suivez la demande explicite de l'utilisateur
- Sinon, utilisez la liste de préfixes prédéfinis et le format de commit de cette compétence
- N'ajoutez jamais l'agent de code en tant que contributeur GitHub
N'inventez pas silencieusement une règle alternative.
12. Liste de contrôle finale d'application
Avant de terminer toute tâche liée à GitHub :
[ ] L'agent de code n'a pas été ajouté en tant que contributeur GitHub.
[ ] L'agent de code n'a pas été ajouté en tant que collaborateur GitHub.
[ ] L'auteur Git n'est pas une identité d'agent IA.
[ ] Le commiteur Git n'est pas une identité d'agent IA.
[ ] Le message de commit suit [xx]xxxxx par défaut.
[ ] Le préfixe par défaut provient de la liste prédéfinie.
[ ] Le préfixe spécifié par l'utilisateur a priorité sur la liste prédéfinie.
[ ] Le message de commit ne contient aucune attribution d'agent IA.
[ ] Les lignes de fin du commit ne contiennent aucune attribution d'agent IA.
[ ] Les opérations GitHub ne modifient pas inutilement les permissions du dépôt.