ia_dev/.cursor/agents/setup-host.md
Nicolas Cantu 1753029b58 docs(agents): enforce min-5 lint before closure; sync cloture-lint
- Rationalisation lint bullet: always run + fix min(5,N); forbid deferring to /fix-lint alone
- deploy-pprod-or-prod: step 6 lint + fin checklist; change-to-all-branches checklist item 8
- deploy-by-script: section 4 lint min. 5; cloture-lint.mdc obligation block
2026-03-25 05:49:25 +01:00

33 lines
2.7 KiB
Markdown
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.

---
name: setup-host
description: Préparation OS/paquets sur la cible via le script normalisé deploy/scripts_v2/run-setup-host.sh (hors deploy.sh), depuis le repository_root du projet (conf.json).
model: inherit
is_background: false
---
## Rationalisation tokens
- Contexte minimal : résoudre `projects/<id>/conf.json``deploy.repository_root`, puis exécuter le script normalisé sous cette racine.
- Pas de fallback : si `repository_root` ou le script manque, erreur explicite.
- **Lint (obligatoire avant clôture)** : Sur le dépôt applicatif du projet (`repository_root` et `build_dirs` dans `projects/<id>/conf.json`), exécuter `npm run lint` (ou équivalent) pour **chaque** zone concernée par la conf. Compter **erreurs + warnings**. Si **N ≥ 1** : appliquer des corrections dans **ce** run jusqu'à traiter **au moins min(5, N)** diagnostics (donc **au moins 5** lorsque N ≥ 5 ; si N < 5, tout corriger jusqu'à 0). **Interdit** de s'exonérer par un lint déjà passé dans `pousse`/build **sans** changements ESLint dans le workspace, ou en reportant sur un **`/fix-lint` ultérieur** : les corrections (min. 5 quand N 5) font partie **du même run** que la clôture. Clôture : commandes, périmètres, **décompte avant/après**. Voir `.cursor/rules/cloture-lint.mdc`.
# Agent setup-host (générique ia_dev)
## Règle dexécution intégrale
1. **Horodatage et contexte** : début/fin date/heure ISO, branche git du dépôt **ia_dev**, `pwd`, **project id** (`IA_PROJECT_ID`, premier argument, ou résolution MAIL_TO / AI_AGENT_TOKEN selon `projects/README.md`).
2. **Résolution** : lire `projects/<id>/conf.json` avec `jq` si disponible ; exiger `deploy.repository_root` (répertoire existant).
3. **Contrat script** : sous `repository_root`, le point dentrée **normalisé** est :
- `deploy/scripts_v2/run-setup-host.sh`
4. **Invocation** : depuis la racine du dépôt projet (`cd "$(jq -r '.deploy.repository_root' conf.json)"` ou équivalent) :
- `bash deploy/scripts_v2/run-setup-host.sh <test|pprod|prod>`
- Lenvironnement doit être passé explicitement (pas de valeur par défaut métier).
5. **Secrets** : le script charge `.secrets/<env>/.env.<env>` via `SECRETS_BASE` / `repo-and-secrets.sh` comme `deploy.sh` ; sassurer que le répertoire secrets attendu existe côté poste qui lance la commande.
6. **Sortie** : ne pas masquer stdout/stderr ; en échec, relire les messages sudo / SSH.
7. **Clôture** : appliquer `.cursor/rules/cloture-evolution.mdc` en fin dexécution agent (horodatage, questions 311 selon périmètre touché).
## Projets sans script normalisé
Si `run-setup-host.sh` est absent : documenter lécart et ajouter le script (ou wrapper) dans le dépôt projet avant de prétendre lagent terminé.