Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Générer des messages de commit. Se déclenche avec « générer un message de commit », « suggérer un commit message ».
.claude/skills/wasabeef-ge-ne-rer-des-messages-de-commit/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 129% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 208% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 342% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 89% | 0% |
| case-09 | ✓→✗ | ▼ Worse | 339% | 0% |
Génère des messages de commit à partir des modifications indexées (git diff --staged). Cette commande ne fait que créer des messages et les copie dans votre presse-papiers—elle n'exécute aucune commande git.
bash/commit-message [options]
--format <format> : Choisir le format du message (conventional, gitmoji, angular)--lang <language> : Définir la langue explicitement (en, fr)--breaking : Inclure la détection de changements cassantsbash# Générer un message à partir des modifications indexées (langue auto-détectée) # La suggestion principale est automatiquement copiée dans votre presse-papiers /commit-message # Spécifier la langue explicitement /commit-message --lang fr /commit-message --lang en # Inclure la détection de changements cassants /commit-message --breaking
Important : Cette commande ne fonctionne qu'avec les modifications indexées. Exécutez d'abord git add pour indexer vos modifications.
bash# Si rien n'est indexé, vous verrez : $ /commit-message Aucune modification indexée trouvée. Veuillez d'abord exécuter git add.
La suggestion principale est copiée dans votre presse-papiers comme commande complète : git commit -m "message". Il suffit de la coller et l'exécuter dans votre terminal.
Notes d'implémentation :
pbcopy dans un processus séparé de la sortie du messageprintf au lieu de echo pour éviter les sauts de ligne indésirablesImportant : Si des conventions spécifiques au projet existent, elles ont la priorité.
Détecte automatiquement les paramètres des fichiers suivants :
commitlint.config.jscommitlint.config.mjscommitlint.config.cjscommitlint.config.ts.commitlintrc.js.commitlintrc.json.commitlintrc.yml.commitlintrc.yamlpackage.json avec section commitlintbash# Rechercher les fichiers de configuration find . -name "commitlint.config.*" -o -name ".commitlintrc.*" | head -1
Exemple de types spécifiques au projet :
javascript// commitlint.config.mjs export default { extends: ["@commitlint/config-conventional"], rules: { "type-enum": [ 2, "always", [ "feat", "fix", "docs", "style", "refactor", "test", "chore", "wip", // travail en cours "hotfix", // correction urgente "release", // version "deps", // mise à jour de dépendance "config", // changement de configuration ], ], }, };
javascript// Quand le projet utilise des messages français export default { rules: { "subject-case": [0], // Désactivé pour le support français "subject-max-length": [2, "always", 72], // Limite de caractères ajustée pour le français }, };
bash# Apprendre les modèles des commits récents git log --oneline -50 --pretty=format:"%s" # Statistiques d'utilisation des types git log --oneline -100 --pretty=format:"%s" | \ grep -oE '^[a-z]+(\([^)]+\))?' | \ sort | uniq -c | sort -nr
Bascule automatiquement entre français/anglais basé sur :
Par défaut c'est l'anglais. Génère en français si détecté comme projet français.
text<type>: <description>
Important : Génère toujours des messages de commit sur une seule ligne. Ne génère pas de messages multi-lignes.
Note : Les conventions spécifiques au projet ont la priorité si elles existent.
Types requis :
feat : Nouvelle fonctionnalité (ajout de fonctionnalité visible pour l'utilisateur)fix : Correction de bugTypes optionnels :
build : Changements du système de build ou dépendances externeschore : Autres changements (aucun impact sur la version)ci : Changements des fichiers de configuration et scripts CIdocs : Changements de documentation uniquementstyle : Changements qui n'affectent pas la signification du code (espaces, formatage, points-virgules, etc.)refactor : Changements de code sans corrections de bugs ni ajouts de fonctionnalitésperf : Améliorations de performancestest : Ajout ou correction de testsbash$ /commit-message 📝 Suggestions de message de commit ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ Candidat principal : feat: implement JWT-based authentication system 📋 Alternatives : 1. feat: add user authentication with JWT tokens 2. fix: resolve token validation error in auth middleware 3. refactor: extract auth logic into separate module ✅ `git commit -m "feat: implement JWT-based authentication system"` copié dans le presse-papiers
Exemple d'implémentation (Corrigé) :
bash# Copier d'abord la commande commit dans le presse-papiers (pas de saut de ligne) printf 'git commit -m "%s"' "$COMMIT_MESSAGE" | pbcopy # Puis afficher le message cat << EOF 📝 Suggestions de message de commit ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ Candidat principal : $COMMIT_MESSAGE 📋 Alternatives : 1. ... 2. ... 3. ... ✅ \`git commit -m "$COMMIT_MESSAGE"\` copié dans le presse-papiers EOF
bash$ /commit-message 📝 Suggestions de message de commit ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ Candidat principal : feat: système d'authentification JWT implémenté 📋 Alternatives : 1. feat: ajouter authentification utilisateur avec tokens JWT 2. fix: résoudre erreur de validation de token dans middleware auth 3. docs: séparer logique auth dans module différent ✅ `git commit -m "feat: système d'authentification JWT implémenté"` copié dans le presse-papiers
git diff --stagedNote : Cette commande n'exécute pas git add ou git commit. Elle ne fait que générer des messages de commit et les copie dans le presse-papiers.
featfixtestchoredocs.gitmessageCONTRIBUTING.mdbash# Critères de détection (ordre de priorité) 1. Détecter la langue à partir du contenu git diff --staged 2. Analyse des commentaires des fichiers indexés 3. Analyse de langue de git log --oneline -20 4. Paramètres de langue principale du projet
Informations utilisées pour l'analyse (lecture seule) :
git diff --staged --name-only - Liste des fichiers modifiésgit diff --staged - Contenu réel des changementsgit status --porcelain - Statut des fichiersPour les changements d'API cassants :
Français :
bashfeat!: changer format de réponse API utilisateur BREAKING CHANGE: la réponse utilisateur inclut maintenant des métadonnées supplémentaires
Ou :
bashfeat(api)!: changer flux d'authentification
Anglais :
bashfeat!: change user API response format BREAKING CHANGE: user response now includes additional metadata
Ou :
bashfeat(api)!: change authentication flow
Français :
textfeat: ajouter endpoint d'inscription utilisateur fix: résoudre fuite mémoire dans gestionnaire cache docs: mettre à jour documentation API
Anglais :
textfeat: add user registration endpoint fix: resolve memory leak in cache manager docs: update API documentation
bash# Utiliser avec les modifications indexées git add -p # Indexation interactive /commit-message "Générer message de commit optimal" # Indexer et analyser des fichiers spécifiques git add src/auth/*.js /commit-message --lang fr "Générer message pour changements d'authentification" # Détection et gestion de changement cassant git add -A /commit-message --breaking "Marquer appropriément s'il y a des changements cassants"
git add au préalableOther measured skills in the registry, with their headline benchmark lift.