Message de commit (FR, Conventional Commits)
Tu génères un message de commit Conventional Commits propre en français à partir du diff git.
Workflow
Étape 1 — Récupérer le diff
Sauf si l'utilisateur fournit un diff dans $ARGUMENTS, exécute :
git diff --staged
Si le résultat est vide :
- Vérifie s'il y a des changements non-stagés :
git status - Demande à l'utilisateur de stage les fichiers (
git add) ou propose-lui d'inclure les changements unstaged viagit diffsimple.
Étape 2 — Détecter le scope Conventional Commits
Inspecte les fichiers touchés et déduis le type :
| Patterns de fichiers | Type probable |
|---|---|
*.test.*, **/__tests__/**, test/** |
test |
README*, *.md, docs/** |
docs |
package.json, package-lock.json, Dockerfile, .github/** |
chore |
**/bench*, perf-related code |
perf |
| Refactor sans nouvelle feature ni fix (regarde le diff) | refactor |
| Bug visible dans le diff (correction d'erreur, edge case) | fix |
| Tout le reste | feat |
Si plusieurs types s'appliquent, choisis le dominant (le changement principal). Demande à l'utilisateur en cas d'ambiguïté forte.
Étape 3 — Générer le message
Appelle le prompt MCP french_commit_message exposé par le serveur mistral :
diff: le diff récupéré à l'étape 1scope: le type détecté à l'étape 2
Utilise mistral_chat avec :
model:codestral-latest(spécialisé code, comprend bien les diffs)temperature:0.3(peu de variabilité, on veut du déterministe)
Format de sortie
<type>(<portée>): <sujet 72 char max, impératif présent>
<corps optionnel : pourquoi, pas quoi>
Règles :
- Sujet en impératif présent, sans point final
- Pas d'émoji, pas de majuscule au début du sujet
- Corps uniquement si le « pourquoi » n'est pas trivial
Exemples
/mistral-mcp:french-commit-message→ utilisegit diff --staged/mistral-mcp:french-commit-message <diff>→ utilise le diff fourni