--- description: Renforce le point 11 (lint) de la clôture — exécution depuis ia_dev sur les dépôts projet alwaysApply: true --- # Clôture — point Lint (complément obligatoire) Complète le point **11. Lint corrigé obligatoirement** de `.smartIde/rules/cloture-evolution.mdc` pour toute exécution qui touche du code dans un dépôt projet (backend, frontend, ressources). ## Périmètre : tous les `build_dirs` (pas seulement la session) Le lint obligatoire porte sur **chaque** entrée listée dans `build_dirs` du `projects//conf.json` du dépôt projet actif (ex. LeCoffre : backend, frontend, ressources partagées). **Interdit** de restreindre l’exécution ou les corrections au seul sous-projet « concerné » par la tâche en cours (ex. correctif backend uniquement : lancer et traiter le lint aussi sur front et ressources). Même règle pour les agents **ia_dev** et les délégations depuis `LECOFFRE_REPO`. ## Obligation systématique (même après `pousse` ou build) - Avant clôture, sur tout dépôt projet ayant des `build_dirs` : exécuter le lint sur **chaque** entrée ; si **N ≥ 1**, appliquer **au moins min(5, N)** corrections **dans le run courant** (commits dans le workspace si besoin). - Un lint **déjà** exécuté pendant `pousse`, un script de build ou une étape intermédiaire **sans** modifications ESLint enregistrées dans le dépôt **ne dispense pas** cette étape. - **Interdit** de clôturer le point lint en reportant l’effort sur un appel **`/fix-lint` séparé** ou « à faire plus tard » : les corrections requises font partie du **même run** que la clôture (sauf enchaînement **immédiat** de `/fix-lint` dans ce run, avec décompte final identique). ## Interdiction de « lint non applicable » par convenance - **« Lint non applicable »** sans justification stricte est **interdit** s’il existe des sources dans le périmètre (`build_dirs` du `conf.json` du projet). - **Norme** : avec du code versionné, le lint est **toujours** applicable ; ce n’est **normalement jamais** hors sujet. - **Exception** : tâche sans fichier source modifié ; **justifier** en une phrase et lancer `npm run lint` sur les `build_dirs` si possible pour confirmer l’absence de régression. ## Warnings = erreurs - Même exigence de correction pour **warnings** et **erreurs**. **« Lint : Réalisées »** seulement si **0 erreur et 0 warning** par répertoire du périmètre (sauf exceptions documentées projet). ## Minimum de corrections quand le lint signale des problèmes - Si `npm run lint` (ou commande équivalente par périmètre, dans chaque répertoire listé dans `build_dirs` du `projects//conf.json` du **dépôt projet** concerné, chemins relatifs à `repository_root`) rapporte au moins un diagnostic (**erreur ou warning**), l’exécuteur doit **tenter de corriger au moins 5 problèmes** (cumul erreurs + warnings sur l’ensemble des lots pertinents) **avant** de clôturer, sauf : - **moins de 5 diagnostics au total** : alors **corriger tous** les diagnostics restants jusqu’à épuisement ou jusqu’à 0 ; - **0 diagnostic après corrections** : clôture lint conforme. - Si l’exécuteur ne peut pas atteindre 5 corrections malgré des diagnostics restants, **documenter** pourquoi (dépendance bloquante, périmètre hors tâche avec accord explicite utilisateur) ; **ne pas** utiliser « non applicable » à la place. ## Exécution lint avant clôture (toujours) - **Toujours**, avant clôture sur les `build_dirs` du dépôt projet : lancer `npm run lint` (ou équivalent) sur chaque entrée, puis appliquer **Minimum de corrections quand le lint signale des problèmes** et la section **Obligation systématique** ci-dessus — **y compris** si une commande lint a déjà tourné plus tôt dans le run **sans** corrections enregistrées dans le dépôt. - **Hors périmètre métier de la tâche** : l’obligation de corriger **au moins 5** diagnostics (ou tous si N < 5) reste en vigueur ; ne pas se limiter aux seuls fichiers modifiés par la tâche — sauf **impossibilité documentée** (accord utilisateur explicite, dépendance bloquante). - Cette section s’applique à **tous** les agents du dépôt **ia_dev** (référence dans `.smartIde/agents/*.md`). Les délégations depuis un dépôt projet (ex. LeCoffre) doivent appliquer le même principe sur le **repository_root** du projet actif. ## Clôture point 11 - Indiquer commandes, périmètres, décompte **erreurs et warnings** avant → après par répertoire.