ia_dev/.smartIde/rules/cloture-lint.mdc
Nicolas Cantu 2baae6ca48 chore(deploy): make pousse.sh build opt-in via --build
**Motivations:**
- Push-by-script should stage, commit, and push without implicit full monorepo builds; compilation must be explicit.

**Root causes:**
- pousse.sh always ran npm build for each build_dir before git add, coupling push duration and Next lock issues to every push.

**Correctives:**
- Add --build flag to run the previous build loop; default skips builds and prints guidance.
- Update push-by-script agent (step 4 bis, closure types), deploy-pprod-or-prod note, cloture-lint wording, agents-scripts-split.

**Evolutions:**
- Documented alternative: manual builds per build_dirs or single pousse.sh --build <<MSG.

**Pages affectées:**
- deploy/pousse.sh, .smartIde/agents/push-by-script.md, deploy-pprod-or-prod.md, cloture-lint.mdc, projects/kogus/docs/agents-scripts-split.md
2026-04-22 22:20:27 +02:00

46 lines
4.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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/<id>/conf.json` du dépôt projet actif (ex. LeCoffre : backend, frontend, ressources partagées). **Interdit** de restreindre lexé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 build explicite ou `pousse.sh --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 un script de build, **`pousse.sh --build`**, ou une étape intermédiaire **sans** modifications ESLint enregistrées dans le dépôt **ne dispense pas** cette étape. **`pousse.sh` sans `--build`** ne lance pas de build et ne dispense pas non plus le lint de clôture.
- **Interdit** de clôturer le point lint en reportant leffort 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** sil 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 nest **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 labsence 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/<id>/conf.json` du **dépôt projet** concerné, chemins relatifs à `repository_root`) rapporte au moins un diagnostic (**erreur ou warning**), lexécuteur doit **tenter de corriger au moins 5 problèmes** (cumul erreurs + warnings sur lensemble 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 lexé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** : lobligation 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 sapplique à **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.