Générer des messages de commit. Se déclenche avec « générer un message de commit », « suggérer un commit message ».
Scanned 9/7/2026
Install to Claude Code
npx -y skills add wasabeef/claude-code-cookbook --skill commit-message --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Commit Message?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/wasabeef-commit-message-7e2f930b)More formats (shields.io, HTML) on the badges page.
---
description: "Générer des messages de commit. Se déclenche avec « générer un message de commit », « suggérer un commit message »."
allowed-tools:
- Bash(git diff *)
- Bash(git log *)
- Read
---
# Générer des messages de commit
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.
## Usage
```bash
/commit-message [options]
```
## 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 cassants
## Exemples de base
```bash
# 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
```
## Prérequis
**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.
```
## Fonctionnalité de presse-papiers automatique
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** :
- Exécuter `pbcopy` dans un processus séparé de la sortie du message
- Utiliser `printf` au lieu de `echo` pour éviter les sauts de ligne indésirables
## Détection automatique des conventions de projet
**Important** : Si des conventions spécifiques au projet existent, elles ont la priorité.
### 1. Vérification de la configuration CommitLint
Détecte automatiquement les paramètres des fichiers suivants :
- `commitlint.config.js`
- `commitlint.config.mjs`
- `commitlint.config.cjs`
- `commitlint.config.ts`
- `.commitlintrc.js`
- `.commitlintrc.json`
- `.commitlintrc.yml`
- `.commitlintrc.yaml`
- `package.json` avec section `commitlint`
```bash
# Rechercher les fichiers de configuration
find . -name "commitlint.config.*" -o -name ".commitlintrc.*" | head -1
```
### 2. Détection de types personnalisés
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
],
],
},
};
```
### 3. Détection des paramètres de langue
```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
},
};
```
### 4. Analyse de l'historique des commits existants
```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
```
## Détection automatique de la langue
Bascule automatiquement entre français/anglais basé sur :
1. **Configuration CommitLint** paramètres de langue
2. **Analyse git log** détection automatique
3. **Fichier de projet** paramètres de langue
4. **Fichier modifié** analyse des commentaires et chaînes
Par défaut c'est l'anglais. Génère en français si détecté comme projet français.
## Format de message
### Commits conventionnels (Par défaut)
```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 standards
**Types requis** :
- `feat` : Nouvelle fonctionnalité (ajout de fonctionnalité visible pour l'utilisateur)
- `fix` : Correction de bug
**Types optionnels** :
- `build` : Changements du système de build ou dépendances externes
- `chore` : Autres changements (aucun impact sur la version)
- `ci` : Changements des fichiers de configuration et scripts CI
- `docs` : Changements de documentation uniquement
- `style` : 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és
- `perf` : Améliorations de performances
- `test` : Ajout ou correction de tests
## Exemple de sortie (Projet anglais)
```bash
$ /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
```
## Exemple de sortie (Projet français)
```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
```
## Vue d'ensemble du fonctionnement
1. **Analyse** : Analyser le contenu de `git diff --staged`
2. **Génération** : Générer un message de commit approprié
3. **Copie** : Copier automatiquement le candidat principal dans le presse-papiers
**Note** : 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.
## Fonctionnalités intelligentes
### 1. Classification automatique des changements (Fichiers indexés uniquement)
- Ajout de nouveau fichier → `feat`
- Modèles de correction d'erreur → `fix`
- Fichiers de test uniquement → `test`
- Changements de fichiers de configuration → `chore`
- Mises à jour README/docs → `docs`
### 2. Détection automatique des conventions de projet
- Fichier `.gitmessage`
- Conventions dans `CONTRIBUTING.md`
- Modèles d'historique de commits passés
### 3. Détails de détection de langue (Modifications indexées uniquement)
```bash
# 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
```
### 4. Détails de l'analyse d'indexation
Informations utilisées pour l'analyse (lecture seule) :
- `git diff --staged --name-only` - Liste des fichiers modifiés
- `git diff --staged` - Contenu réel des changements
- `git status --porcelain` - Statut des fichiers
## Détection de changements cassants
Pour les changements d'API cassants :
**Français** :
```bash
feat!: changer format de réponse API utilisateur
BREAKING CHANGE: la réponse utilisateur inclut maintenant des métadonnées supplémentaires
```
Ou :
```bash
feat(api)!: changer flux d'authentification
```
**Anglais** :
```bash
feat!: change user API response format
BREAKING CHANGE: user response now includes additional metadata
```
Ou :
```bash
feat(api)!: change authentication flow
```
## Meilleures pratiques
1. **Correspondre au projet** : Suivre la langue de commit existante
2. **Concision** : Clair en moins de 50 caractères
3. **Cohérence** : Ne pas mélanger les langues (rester cohérent en français)
4. **OSS** : Anglais recommandé pour l'open source
5. **Ligne unique** : Toujours message de commit sur une ligne (compléter avec PR pour explications détaillées)
## Modèles communs
**Français** :
```text
feat: ajouter endpoint d'inscription utilisateur
fix: résoudre fuite mémoire dans gestionnaire cache
docs: mettre à jour documentation API
```
**Anglais** :
```text
feat: add user registration endpoint
fix: resolve memory leak in cache manager
docs: update API documentation
```
## Intégration avec Claude
```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"
```
## Notes importantes
- **Prérequis** : Les modifications doivent être indexées avec `git add` au préalable
- **Limitation** : Les modifications non indexées ne sont pas analysées
- **Recommandation** : Vérifier d'abord les conventions de commit du projet existant
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!