---
name: bugfix-sans-regression
description: Use when fixing a bug. Reproduce it with a failing test first, fix in the right layer, then prove nothing else broke. Never fix a bug without a test that would have caught it.
---

# bugfix-sans-regression

Le but n'est pas que ce bug disparaisse. C'est qu'il ne revienne jamais, et que sa correction
n'en crée pas deux autres.

## 1. Reproduire avant de toucher

- Écris un test qui reproduit le bug, au plus près du métier (cas d'usage ou règle métier,
  pas l'écran si possible).
- Lance-le : **il doit échouer**, pour la bonne raison. S'il passe, tu n'as pas reproduit le bug.
- Impossible à reproduire en test ? Arrête-toi et dis ce qui manque (données, contexte).

## 2. Trouver la bonne couche

- Le bug est dans une règle métier → corrige dans le métier.
- Le bug vient d'une donnée mal lue ou mal traduite → corrige dans la couche données (mapper,
  valeur par défaut d'un champ absent, traduction d'erreur).
- Le bug est un affichage → corrige dans la présentation, sans y déplacer de logique métier.
Ne corrige jamais un bug métier dans l'écran « parce que c'est plus court ».

## 3. Corriger le minimum

- La plus petite modification qui fait passer le test.
- Pas de refactoring opportuniste dans le même changement.

## 4. Prouver qu'il n'y a pas de régression

- Le nouveau test passe.
- **Toute la suite de tests passe**, pas seulement celle du fichier.
- Le lint et la règle d'imports passent (skill `architecture-guard`).

## Fini quand

Tu peux montrer : le test qui échouait, le diff de correction, la suite complète au vert.
