# 0.2 — Outillage qualité ## Objectif Garantir un code uniformément formaté, sans warning, et vérifiable d'une commande. ## Périmètre & hors-périmètre - Inclus : lint strict, format, script de vérification locale, conventions de test. - Exclus : CI distante (GitHub Actions, etc.) — peut venir plus tard, hors v1. ## Dépendances 0.1 (projet existant). ## Conception - `analysis_options.yaml` : partir de `flutter_lints`, puis durcir (ex. `prefer_const_constructors`, `always_declare_return_types`, `require_trailing_commas`, interdiction de `print`). Objectif **0 warning**. - Ajouter `mocktail` en `dev_dependencies` (mocks pour les tests à venir). - **Script « CI locale »** `tool/check.sh` enchaînant : 1. `dart format --set-exit-if-changed .` 2. `flutter analyze` 3. `flutter test` Code de sortie non nul si l'une échoue. - Documenter dans le README projet : « avant de cocher une étape, `tool/check.sh` doit passer ». ## Plan TDD Étape outillage : la « preuve » est l'exécution du script. 1. Écrire `tool/check.sh`. 2. Le lancer : il doit passer sur le squelette de 0.1 (format OK, analyze 0 issue, test 0.1 vert). 3. Vérifier qu'il **échoue** volontairement si on introduit un fichier mal formaté (test du garde-fou), puis rétablir. ## Definition of Done - `tool/check.sh` passe intégralement. - `flutter analyze` : 0 issue. - Étape 0.2 cochée dans `ROADMAP.md`. ## Risques / notes - Garder le lint strict mais pragmatique : si une règle gêne sans valeur, la désactiver explicitement avec un commentaire justificatif plutôt que de la subir.