From 293b5ec9ba357b7ccedeedbebc08bff4e0092eac Mon Sep 17 00:00:00 2001 From: Nicolas Cantu Date: Mon, 23 Mar 2026 13:11:09 +0100 Subject: [PATCH] docs(cursor): align fix-lint with strict lint closure rules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Motivations:** - Same lint closure expectations when running fix-lint from ia_dev (warnings as errors, min five fixes, no spurious non-applicable) **Root causes:** - N/A **Correctifs:** - N/A **Evolutions:** - Add .cursor/rules/cloture-lint.mdc; tighten fix-lint agent table and intro **Pages affectées:** - .cursor/rules/cloture-lint.mdc, .cursor/agents/fix-lint.md --- .cursor/agents/fix-lint.md | 10 +++++++--- .cursor/rules/cloture-lint.mdc | 26 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 .cursor/rules/cloture-lint.mdc diff --git a/.cursor/agents/fix-lint.md b/.cursor/agents/fix-lint.md index 824ca77..fcd5081 100644 --- a/.cursor/agents/fix-lint.md +++ b/.cursor/agents/fix-lint.md @@ -39,7 +39,7 @@ Chacune des actions ci-dessous est **obligatoire** et doit être réalisée **de | **Réduction de complexité** | Réduire complexité cyclomatique, profondeur, paramètres ; extraire fonctions/composants. | | **Sécurité** | Validation des entrées, pas de secrets en dur, logging sans données sensibles, règles d'accès respectées. | | **Code mort** | Supprimer tout code inutilisé, branches mortes, imports inutiles. | -| **Lint** | Corriger toutes les **erreurs** et tous les **warnings** de lint sans désactiver les règles. Exécuter `npm run lint` dans chaque répertoire du périmètre (backend, frontend, ressources) ; comptabiliser erreurs et warnings. En clôture, « Lint : Réalisées » uniquement si **0 erreur et 0 warning** pour chaque répertoire ; sinon « Non réalisées encore » avec le détail par répertoire. | +| **Lint** | Corriger toutes les **erreurs** et tous les **warnings** (même priorité ; **warnings = erreurs**). Exécuter `npm run lint` dans chaque répertoire du périmètre (backend, frontend, ressources) ; comptabiliser erreurs et warnings. **Interdit** : conclure « lint non applicable » sans justification stricte (tâche sans code source) — avec des sources, le lint est **normalement toujours** applicable. Si au moins un diagnostic : **corriger au moins 5 problèmes** (cumul erreurs + warnings) dans l’exécution, sauf moins de 5 diagnostics au total (alors tout corriger). En clôture, « Lint : Réalisées » uniquement si **0 erreur et 0 warning** pour chaque répertoire ; sinon « Non réalisées encore » avec le détail par répertoire (voir `.cursor/rules/cloture-lint.mdc`). | | **Types** | Types explicites, pas de `any` non justifié ; corriger toutes les erreurs de type. | | **Compilation** | Build et typecheck OK sur chaque répertoire du périmètre. | | **Documentation** | Mise à jour réelle de la doc (docs/, wiki) selon `.cursor/agents/docupdate.md`. | @@ -53,13 +53,17 @@ Chacune des actions ci-dessous est **obligatoire** et doit être réalisée **de **Documentation** : La doc des projets gérés est dans **`projects//docs`** ; la doc ia_dev est dans **`projects/ia_dev/docs`**. -Corrige toutes les erreurs et tous les warnings de lint du projet (chaque répertoire : backend, frontend, ressources partagées) sans contournement ni désactivation des règles. Ne négliger aucun projet. +Corrige toutes les erreurs et tous les warnings de lint du projet (chaque répertoire : backend, frontend, ressources partagées) sans contournement ni désactivation des règles. **Warnings = erreurs.** Ne jamais conclure « lint non applicable » sans justification stricte. Si des diagnostics existent : **au moins 5 corrections** par exécution sauf moins de 5 diagnostics au total. Ne négliger aucun projet. **Horodatage et contexte** : appliquer intégralement le bloc défini dans `.cursor/rules/cloture-evolution.mdc` (début et fin d'exécution, lancement et retour des sub-agents). +## Lint renforcé (clôture et exécution) + +- Voir `.cursor/rules/cloture-lint.mdc` : pas de « non applicable » par convenance, **warnings = erreurs**, **minimum 5 corrections** lorsqu’il existe des diagnostics (sauf moins de 5 au total → tout corriger), décompte erreurs **et** warnings en clôture. + ## Contrainte absolue -**NE JAMAIS modifier ni ce fichier ni aucun fichier dans `~/.cursor/`.** Ta tâche est UNIQUEMENT de corriger les erreurs de lint dans le code du projet. Les répertoires à linter (backend, frontend, ressources partagées, etc.) sont définis par le projet : soit par convention (ex. backend, frontend, shared), soit dans `projects//conf.json` (clé `build_dirs` ou documentation du projet). Ne pas modifier ni améliorer la définition de cet agent. +**NE JAMAIS modifier ni ce fichier ni aucun fichier dans `~/.cursor/`.** Ta tâche est UNIQUEMENT de corriger les erreurs et warnings de lint dans le code du projet. Les répertoires à linter (backend, frontend, ressources partagées, etc.) sont définis par le projet : soit par convention (ex. backend, frontend, shared), soit dans `projects//conf.json` (clé `build_dirs` ou documentation du projet). Ne pas modifier ni améliorer la définition de cet agent. * **Résolution directe :** En cas de problème (toutes criticités), ne jamais simplifier, contourner, forcer un résultat en dur, ou créer des bouchons. Le problème doit être résolu à sa racine. diff --git a/.cursor/rules/cloture-lint.mdc b/.cursor/rules/cloture-lint.mdc new file mode 100644 index 0000000..818357e --- /dev/null +++ b/.cursor/rules/cloture-lint.mdc @@ -0,0 +1,26 @@ +--- +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 `.cursor/rules/cloture-evolution.mdc` pour toute exécution qui touche du code dans un dépôt projet (backend, frontend, ressources). + +## 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 + +- Si le lint remonte au moins un diagnostic : **corriger au moins 5 problèmes** (erreurs + warnings cumulés) avant clôture, sauf **moins de 5 diagnostics au total** (corriger **tous** jusqu’à 0). + +## Clôture point 11 + +- Indiquer commandes, périmètres, décompte **erreurs et warnings** avant → après par répertoire.