---
name: php-commit
description: Rédige un message de commit Git pour un projet PHP/Symfony, en suivant la convention Emoji-Log. À utiliser dès que l'utilisateur demande un commit ou un message de commit.
allowed-tools:
  - bash
  - read
---

# Convention de commit Emoji-Log

Préfixer chaque message par un emoji selon le type de changement :

| Emoji | Type     | Quand l'utiliser                                      |
|-------|----------|-------------------------------------------------------|
| 📦    | NEW      | Nouvelle feature ou nouveau fichier majeur            |
| 👌    | IMPROVE  | Amélioration d'une feature existante                  |
| 🐛    | FIX      | Correction de bug                                     |
| 📖    | DOC      | Documentation uniquement (README, CHANGELOG, etc.)    |
| 🚀    | RELEASE  | Tag de version                                        |
| ✅    | TEST     | Tests uniquement                                      |
| 🔧    | CHORE    | Tooling, CI, dépendances, refacto sans changement fonctionnel |

## Format

```
EMOJI TYPE: <verbe à l'impératif présent, en français, ~50 chars max>

<corps optionnel multi-ligne expliquant le *pourquoi* — pas le *quoi*,
la diff parle d'elle-même>
```

## Procédure

1. Lancer `git diff --stat HEAD` puis `git diff HEAD` pour comprendre le changement.
2. Identifier le type principal (un seul emoji par commit).
3. Rédiger un sujet de ~50 caractères, à l'impératif présent (« ajoute », « corrige », « refactor », pas « ajout »).
4. Si plusieurs fichiers et que le pourquoi n'est pas trivial : ajouter un corps de 2-5 lignes max.
5. Proposer le message à l'utilisateur **avant** d'exécuter `git commit` (jamais commiter sans validation).

## Exemples

```
📦 NEW: ajoute un endpoint /api/posts/{slug}/comments
```

```
🐛 FIX: corrige le tri Doctrine sur Post::publishedAt

Le critère par défaut renvoyait les posts récents en dernier
à cause d'un `ASC` au lieu de `DESC`.
```

```
🔧 CHORE: passe Symfony AI à ^0.3
```
