# Format d'un problème reporté par une review

Source de vérité partagée par `/code-review`, `/code-review-pre-release`, et tout autre skill qui produit une liste de problèmes triée par sévérité. Les skills qui consomment ce format (ex : `/code-review-fix`) s'appuient sur la **numérotation** et le **tri par sévérité** définis ici.

## Sévérités

Trois niveaux, en anglais (jamais traduire) :

- **Critical** (must fix)
- **Major** (should fix)
- **Minor** (consider fixing)

## Numérotation

- `<N>` commence à `1` et incrémente dans **l'ordre d'affichage final**, **après tri par sévérité** : Critical > Major > Minor.
- Préfixer chaque numéro par `\#` (échappé) dans le markdown rendu pour éviter l'auto-linking GitLab vers une issue inexistante.
- La numérotation permet aux skills downstream de cibler un problème spécifique (ex : `/code-review-fix #3 uniquement`, `/code-review-fix exclu la #2`).

## Liens fichier

Construire des permaliens GitLab pointant sur le SHA exact analysé :

```bash
COMMIT_SHA=$(git rev-parse HEAD)
# ou pour /code-review-pre-release :
COMMIT_SHA=$(git rev-parse origin/${DEFAULT_BRANCH})
```

URL : `${PROJECT_URL}/-/blob/${COMMIT_SHA}/path/to/file.ext#L<line>`

## Bloc par problème

```
### \#<N> — <SEVERITY> — <short title>

**Fichier** : [`path/to/file.ext:<line>`](${PROJECT_URL}/-/blob/${COMMIT_SHA}/path/to/file.ext#L<line>)

**Problème** : <ce qui ne va pas et pourquoi ça compte>

**Correctif** :
\`\`\`
<code corrigé>
\`\`\`
```

### Champs optionnels (ajoutés par certains skills)

- **`**Commit**`** — `/code-review-pre-release` cite le commit fautif : `[`<short_sha>`](${PROJECT_URL}/-/commit/<full_sha>) — `<commit subject>`. Utile pour retrouver l'auteur ou faire un revert ciblé.
- **`**Corrigé**`** — utilisé par `/code-review` quand un problème déjà signalé a été résolu dans un commit ultérieur : `[<short_sha>](${PROJECT_URL}/-/commit/<full_sha>)`. Le bloc passe alors dans un `<details>` collapsé.

## Règles de présentation

- **Problèmes uniquement** — pas de compliments, pas de récap, pas d'emoji.
- **Tri** : Critical > Major > Minor. À sévérité égale, ordre de découverte.
- **Aucun problème détecté** → afficher exactement `**"No issues found."**` (ou la phrase française adaptée au contexte du skill) sans bloc d'issue.
- **Verdict final** — dernière ligne du rapport, un libellé unique pour tous les skills qui consomment ce format :
  - **APPROVED** — aucun problème Critical ni Major
  - **MODIFICATIONS REQUIRED** — au moins un Major, aucun Critical
  - **BLOCKED** — au moins un Critical

## Langue

Texte des problèmes et correctifs en français — respecter [french-writing-rules.md](./french-writing-rules.md). Les labels de sévérité (`Critical`, `Major`, `Minor`) et les identifiants techniques restent en anglais.
