chore: rename .cursor to .smartIde for agents, rules, hooks
Update internal references and .gitignore ssh_config path. Gateway and docs paths use .smartIde/agents.
This commit is contained in:
parent
11da4329e4
commit
285e72039e
2
.gitignore
vendored
2
.gitignore
vendored
@ -60,7 +60,7 @@ deploy/env-full-*-for-bdd-injection.txt
|
||||
lecoffre-anchor-api/test-api-ok.sh
|
||||
# .env files (nouveau chemin: .secrets/<env>/.env.<env>)
|
||||
.secrets/*/.env.*
|
||||
.cursor/ssh_config
|
||||
.smartIde/ssh_config
|
||||
|
||||
tmp_commit_msg.txt
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Agent agent-loop
|
||||
|
||||
@ -43,7 +43,7 @@ Tu es l'agent qui **orchestre** la surveillance des mails et leur traitement. Tu
|
||||
|
||||
**Références obligatoires** : lire `projects/ia_dev/docs/GITEA_ISSUES_SCRIPTS_AGENTS.md` (contexte d'exécution). Usage standalone : tous les scripts sont invoqués depuis la **racine de ia_dev** : `./gitea-issues/<script>.sh`.
|
||||
|
||||
**Script agent-loop.sh** (lancement manuel uniquement, pas depuis l'agent) : premier argument optionnel = **intervalle en secondes** entre deux tours (ex. `./gitea-issues/agent-loop.sh 60` = 60 s). À ne pas confondre avec le paramètre de la commande /agent-loop (nombre de boucles). La boucle utilise le **spooler** (critère from/to dans conf.json), pas le statut IMAP « non lu ». Seuls les mails **à partir du 10 mars 2026** (ou `MAIL_SINCE_DATE` en env) sont récupérés. **Fichier témoin** `projects/<id>/logs/gitea-issues/agent-loop.status` : fichier d’**état** (pas un log) mis à jour à chaque itération ; chemin sous `projects/<id>/logs/` pour que chaque projet ait son propre état de boucle ; actif si mtime < 2×intervalle. Fichier pending : `projects/<id>/logs/gitea-issues/agent-loop.pending` (chemins des .pending du spooler à traiter). Variables (optionnel `.secrets/gitea-issues/agent-loop.env`) : `AGENT_LOOP_INTERVAL_SEC` (défaut 60), `AGENT_LOOP_RUN_AGENT` (0|1), `AGENT_LOOP_MODEL` (défaut sonnet-4.6), `AGENT_LOOP_STATUS_FILE`, `AGENT_LOOP_PENDING_FILE`. Hook « remonter mails » : `.cursor/hooks/remonter-mails.sh` lit `projects/<id>/data/issues/*.pending` ou `agent-loop.pending`.
|
||||
**Script agent-loop.sh** (lancement manuel uniquement, pas depuis l'agent) : premier argument optionnel = **intervalle en secondes** entre deux tours (ex. `./gitea-issues/agent-loop.sh 60` = 60 s). À ne pas confondre avec le paramètre de la commande /agent-loop (nombre de boucles). La boucle utilise le **spooler** (critère from/to dans conf.json), pas le statut IMAP « non lu ». Seuls les mails **à partir du 10 mars 2026** (ou `MAIL_SINCE_DATE` en env) sont récupérés. **Fichier témoin** `projects/<id>/logs/gitea-issues/agent-loop.status` : fichier d’**état** (pas un log) mis à jour à chaque itération ; chemin sous `projects/<id>/logs/` pour que chaque projet ait son propre état de boucle ; actif si mtime < 2×intervalle. Fichier pending : `projects/<id>/logs/gitea-issues/agent-loop.pending` (chemins des .pending du spooler à traiter). Variables (optionnel `.secrets/gitea-issues/agent-loop.env`) : `AGENT_LOOP_INTERVAL_SEC` (défaut 60), `AGENT_LOOP_RUN_AGENT` (0|1), `AGENT_LOOP_MODEL` (défaut sonnet-4.6), `AGENT_LOOP_STATUS_FILE`, `AGENT_LOOP_PENDING_FILE`. Hook « remonter mails » : `.smartIde/hooks/remonter-mails.sh` lit `projects/<id>/data/issues/*.pending` ou `agent-loop.pending`.
|
||||
|
||||
**Fichiers de contrôle (section 2 — boucle x cycles)** :
|
||||
- **Lock (une seule instance)** : `projects/<id>/logs/gitea-issues/agent-loop.lock`. Utiliser les scripts : **agent-loop-lock-acquire.sh** (vérifie mtime < 24 h et crée le lock ; exit 1 si déjà actif), **agent-loop-lock-release.sh** (supprime lock et fichier stop).
|
||||
@ -106,4 +106,4 @@ Répéter les étapes 1, 2 et 3 pour les x cycles demandés. Chaque cycle traite
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.cursor/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si la boucle n'a pas traité d'éléments, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.smartIde/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si la boucle n'a pas traité d'éléments, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
@ -16,7 +16,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Agent branch-align-by-script-from-test
|
||||
|
||||
@ -41,7 +41,7 @@ Tu alignes les branches distantes du projet (test, pprod, prod) en exécutant le
|
||||
|
||||
- **Logs et corrections :** Toujours vérifier la sortie (stdout/stderr) des scripts lancés. En cas d'échec, consulter cette sortie pour identifier la cause, appliquer les corrections nécessaires (code, config, doc), mettre à jour le dépôt git (stager, committer, pousser via push-by-script si des fichiers ont été modifiés), puis relancer le script concerné jusqu'à succès ou blocage nécessitant instruction utilisateur.
|
||||
|
||||
**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). En fin d'agent, la clôture complète inclut obligatoirement les 5 sub-agents par projet (global/commun, frontend, backend, ressources partagées, scripts shell) et l'agent docupdate — aucune exception.
|
||||
**Horodatage et contexte** : appliquer intégralement le bloc défini dans `.smartIde/rules/cloture-evolution.mdc` (début et fin d'exécution, lancement et retour des sub-agents). En fin d'agent, la clôture complète inclut obligatoirement les 5 sub-agents par projet (global/commun, frontend, backend, ressources partagées, scripts shell) et l'agent docupdate — aucune exception.
|
||||
|
||||
**Avant d'exécuter un script du projet :**
|
||||
1. Lire le fichier du script avec l'outil de lecture (ex. `deploy/branch-align.sh`).
|
||||
@ -52,12 +52,12 @@ Lors de l'invocation :
|
||||
|
||||
1. Le script branch-align.sh se ré-exécute depuis le git toplevel si besoin. Usage standalone : lancer depuis la racine de ia_dev.
|
||||
|
||||
2. **Exécuter obligatoirement et intégralement** l'agent `.cursor/agents/push-by-script.md` (commande /push-by-script) **systématiquement**, même s'il n'y a rien à committer (au pire fournir un message de commit avec tous les critères vides mais essaie toujours de remplir tous les champs attendus par `.cursor/agents/push-by-script.md` ).
|
||||
2. **Exécuter obligatoirement et intégralement** l'agent `.smartIde/agents/push-by-script.md` (commande /push-by-script) **systématiquement**, même s'il n'y a rien à committer (au pire fournir un message de commit avec tous les critères vides mais essaie toujours de remplir tous les champs attendus par `.smartIde/agents/push-by-script.md` ).
|
||||
|
||||
3. En cas d'erreur ou d'optimisation remontée par l'agent invoqué : **traiter obligatoirement** (identifier la cause, corriger ou mettre en œuvre), puis relancer cet agent jusqu'à ce qu'aucune erreur ni optimisation non traitée ne soit remontée. Ne pas relancer sans avoir traité la cause.
|
||||
|
||||
|
||||
4. Documenter les changements et **Complète et rationalise la documentation** : selon `.cursor/agents/docupdate.md`, documenter puis **lancer et exécuter intégralement** l'agent `.cursor/agents/docupdate.md` (commande /docupdate).
|
||||
4. Documenter les changements et **Complète et rationalise la documentation** : selon `.smartIde/agents/docupdate.md`, documenter puis **lancer et exécuter intégralement** l'agent `.smartIde/agents/docupdate.md` (commande /docupdate).
|
||||
|
||||
5. Puis exécuter depuis la racine de ia_dev : `./deploy/branch-align.sh [project_id] <env>`. Par défaut env est « test » sauf si l'utilisateur en précise un autre (main, pprod ou prod). project_id optionnel pour cibler le projet (sinon MAIL_TO ou AI_AGENT_TOKEN).
|
||||
|
||||
@ -78,4 +78,4 @@ Prérequis (imposés par le script) :
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.cursor/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si le script a échoué ou si l'agent n'a pas modifié de code, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.smartIde/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si le script a échoué ou si l'agent n'a pas modifié de code, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
@ -32,7 +32,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
5. Exécuter **/push-by-script** (message fourni par l'agent).
|
||||
6. Exécuter `./deploy/change-to-all-branches.sh [project_id]` (timeout long).
|
||||
7. **En échec du script** : identifier la cause (sortie + logs/deploy_*.log). Si typecheck / lint / build : lancer **intégralement** l'agent **/fix-lint** pour le projet, puis **/push-by-script**, puis relancer `./deploy/change-to-all-branches.sh [project_id]`. Répéter jusqu'à succès ou **maximum 5 tentatives** ; au-delà, documenter les erreurs et s'arrêter.
|
||||
8. **Lint min. 5 avant clôture** : sur `repository_root`, lint **chaque** `build_dir` (tout le périmètre déclaré, pas seulement le sous-projet modifié dans la session) ; si **N ≥ 1**, corriger **au moins min(5, N)** dans **ce** run ; décompte avant/après. **Interdit** de clôturer en reportant seul sur un **`/fix-lint` ultérieur** sans ces corrections. **Interdit** d’ignorer des warnings/erreurs parce qu’ils sont « préexistants » ou hors fichiers modifiés ce run : voir `.cursor/rules/cloture-lint.mdc` — section **Diagnostics préexistants / hors périmètre de la session**. Si fichiers modifiés : **/push-by-script** avant clôture si le dépôt n’est pas clean.
|
||||
8. **Lint min. 5 avant clôture** : sur `repository_root`, lint **chaque** `build_dir` (tout le périmètre déclaré, pas seulement le sous-projet modifié dans la session) ; si **N ≥ 1**, corriger **au moins min(5, N)** dans **ce** run ; décompte avant/après. **Interdit** de clôturer en reportant seul sur un **`/fix-lint` ultérieur** sans ces corrections. **Interdit** d’ignorer des warnings/erreurs parce qu’ils sont « préexistants » ou hors fichiers modifiés ce run : voir `.smartIde/rules/cloture-lint.mdc` — section **Diagnostics préexistants / hors périmètre de la session**. Si fichiers modifiés : **/push-by-script** avant clôture si le dépôt n’est pas clean.
|
||||
9. Clôture : points 1 à 16 de cloture-evolution.mdc (horodatage, 5 périmètres 3-11, 12-14, 15, 16).
|
||||
|
||||
---
|
||||
@ -43,7 +43,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
|
||||
**Rôle de l’agent :** vérifier que la branche locale est test (sinon retour 1), fournir le message de commit (via /push-by-script), lancer le script, contrôler la sortie et le code de retour. **Rôle du script :** exécution déterministe (vérif branche test, `branch-align.sh test`, orchestrateur ou `deploy.sh test --no-sync-origin` ; flags métier uniquement via `$SECRETS_BASE/test/deploy.conf` ; journalisation toujours `./logs/deploy_*.log`). Préparation OS cible : agent **`/setup-host`** + `deploy/scripts_v2/run-setup-host.sh`, pas `deploy.sh`.
|
||||
|
||||
**Branche applicative test-first (obligatoire) :** Toute correction de code, configuration ou documentation dans le **dépôt applicatif** (`repository_root` dans `projects/<id>/conf.json`) pendant l’exécution de cet agent doit être réalisée sur la branche locale **test**. Avant toute modification : si le dépôt applicatif n’est pas sur **test**, exécuter **`git checkout test`** (ou équivalent validé projet). **Interdit** : committer un correctif **uniquement** sur **pprod** ou **prod** depuis cet agent. Si l’échec ou le contexte provient d’une phase **pprod**/**prod** (correctifs identifiés après déploiement ou analyse sur ces branches), appliquer la procédure **Corrections découvertes sur pprod ou prod** dans `.cursor/agents/deploy-pprod-or-prod.md` : correctifs sur **test**, puis **rejouer** le workflow complet depuis l’étape 2 de cet agent dans ce flux (**`/change-to-all-branches`** inclus dans **`/deploy-pprod-or-prod`**), sans court-circuiter l’alignement **test → pprod → prod**.
|
||||
**Branche applicative test-first (obligatoire) :** Toute correction de code, configuration ou documentation dans le **dépôt applicatif** (`repository_root` dans `projects/<id>/conf.json`) pendant l’exécution de cet agent doit être réalisée sur la branche locale **test**. Avant toute modification : si le dépôt applicatif n’est pas sur **test**, exécuter **`git checkout test`** (ou équivalent validé projet). **Interdit** : committer un correctif **uniquement** sur **pprod** ou **prod** depuis cet agent. Si l’échec ou le contexte provient d’une phase **pprod**/**prod** (correctifs identifiés après déploiement ou analyse sur ces branches), appliquer la procédure **Corrections découvertes sur pprod ou prod** dans `.smartIde/agents/deploy-pprod-or-prod.md` : correctifs sur **test**, puis **rejouer** le workflow complet depuis l’étape 2 de cet agent dans ce flux (**`/change-to-all-branches`** inclus dans **`/deploy-pprod-or-prod`**), sans court-circuiter l’alignement **test → pprod → prod**.
|
||||
|
||||
**Focus qualité et résolution de problèmes :**
|
||||
|
||||
@ -55,7 +55,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
|
||||
- **Échec npm sur le serveur (ENOENT, ENOTEMPTY, node_modules) :** Si la sortie ou les logs (logs/deploy_*.log) contiennent une erreur npm liée à node_modules (ex. ENOENT, ENOTEMPTY, mkdir node_modules/…, npm error enoent). Il s'agit d'un problème d'environnement sur le serveur de déploiement, pas du code. **Correction automatique** : ne pas modifier le code ; relancer **une fois** ./deploy/change-to-all-branches.sh [project_id] (sans refaire /push-by-script : les branches sont déjà alignées). Le script distant deploy/scripts_v2/remote/deploy-app.sh effectue désormais un retry après `rm -rf node_modules` lors de chaque npm ci ; la relance lance un nouveau déploiement qui bénéficie de cette logique. Si l'échec persiste après cette unique relance, documenter la sortie et les logs (fichier deploy_*.log, extraits d'erreur npm) et s'arrêter — intervention manuelle ou infra requise (espace disque, droits, npm cache).
|
||||
|
||||
- **Échec du build (TypeScript, lint, frontend/backend) — boucle autonome obligatoire :** Si le déploiement échoue au build (code de sortie non nul, erreurs TypeScript, typecheck, lint, module introuvable, etc. dans la sortie ou dans logs/deploy_*.log), l'agent doit **obligatoirement** et **sans demander validation** : 1) Extraire de la sortie/log la liste des fichiers et erreurs (ex. fichiers .ts/.tsx listés par tsc ou eslint). 2) **Lancer et exécuter intégralement** l'agent **/fix-lint** (ou `.cursor/agents/fix-lint.md`) pour le projet cible, en lui passant en contexte les fichiers/erreurs identifiés si possible ; fix-lint corrige types, lint et compilation. 3) Exécuter **/push-by-script** (ou `./deploy/pousse.sh [project_id]`) pour committer et pousser les corrections. 4) **Relancer immédiatement** `./deploy/change-to-all-branches.sh [project_id]`. Répéter cette séquence (fix-lint → push-by-script → change-to-all-branches.sh) jusqu'à **succès** ou jusqu'à **5 tentatives** ; après 5 échecs consécutifs, documenter la sortie et les logs (extraits d'erreurs, fichiers concernés) et s'arrêter — intervention utilisateur requise. Aucune demande de validation entre correction et relance.
|
||||
- **Échec du build (TypeScript, lint, frontend/backend) — boucle autonome obligatoire :** Si le déploiement échoue au build (code de sortie non nul, erreurs TypeScript, typecheck, lint, module introuvable, etc. dans la sortie ou dans logs/deploy_*.log), l'agent doit **obligatoirement** et **sans demander validation** : 1) Extraire de la sortie/log la liste des fichiers et erreurs (ex. fichiers .ts/.tsx listés par tsc ou eslint). 2) **Lancer et exécuter intégralement** l'agent **/fix-lint** (ou `.smartIde/agents/fix-lint.md`) pour le projet cible, en lui passant en contexte les fichiers/erreurs identifiés si possible ; fix-lint corrige types, lint et compilation. 3) Exécuter **/push-by-script** (ou `./deploy/pousse.sh [project_id]`) pour committer et pousser les corrections. 4) **Relancer immédiatement** `./deploy/change-to-all-branches.sh [project_id]`. Répéter cette séquence (fix-lint → push-by-script → change-to-all-branches.sh) jusqu'à **succès** ou jusqu'à **5 tentatives** ; après 5 échecs consécutifs, documenter la sortie et les logs (extraits d'erreurs, fichiers concernés) et s'arrêter — intervention utilisateur requise. Aucune demande de validation entre correction et relance.
|
||||
|
||||
- **Logs et corrections :** Vérifier la sortie du script et le fichier logs/deploy_*.log produit par deploy.sh. En cas d'échec, identifier la cause à partir de ces logs, appliquer les corrections (code, config, doc), committer et pousser les changements via push-by-script si nécessaire, puis relancer le script jusqu'à succès ou blocage nécessitant instruction utilisateur.
|
||||
|
||||
@ -78,7 +78,7 @@ Retourner 0 en cas de succès. En cas d'échec d'une étape : consulter les logs
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.cursor/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si le script a échoué ou si l'agent n'a pas modifié de code, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.smartIde/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si le script a échoué ou si l'agent n'a pas modifié de code, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
|
||||
**Exhaustivité obligatoire de la clôture :**
|
||||
|
||||
@ -11,7 +11,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Point 7 clôture : Optimisation / mutualisation / centralisation — justification obligatoire
|
||||
|
||||
@ -16,7 +16,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Agent code (qualité du code et bonnes pratiques)
|
||||
|
||||
@ -95,11 +95,11 @@ Tu appliques les règles ci-dessous **lorsqu'il y a du code à produire** (évol
|
||||
Gérer les envois d'emails de manière appropriée pour éviter le spam et gérer les erreurs.
|
||||
|
||||
20. Lancer obligatoirement un lint
|
||||
Utiliser l'agent `.cursor/agents/fix-lint.md` (commande /fix-lint)
|
||||
Utiliser l'agent `.smartIde/agents/fix-lint.md` (commande /fix-lint)
|
||||
|
||||
21. **Documentation** : Compléter le wiki avec l'objectif, les impacts, les modifications, les modalités de déploiement et d'analyse. **`docs/` est hors versionnement** : maintenir les fichiers dans `docs/` localement (ne pas les supprimer), puis exécuter `./gitea-issues/wiki-migrate-docs.sh` pour pousser vers le wiki ; ou éditer la page wiki directement. Ne pas committer `docs/`. **Avant d'exécuter wiki-migrate-docs.sh :** lire le script, présenter un résumé de ce qu'il fait, puis l'exécuter.
|
||||
|
||||
22. **Commit** : Préparer le commit avec le format de `.cursor/agents/push-by-script.md` (lignes 15-32) :
|
||||
22. **Commit** : Préparer le commit avec le format de `.smartIde/agents/push-by-script.md` (lignes 15-32) :
|
||||
|
||||
- Etat initial
|
||||
- Motivation du changement
|
||||
@ -113,13 +113,13 @@ Tu appliques les règles ci-dessous **lorsqu'il y a du code à produire** (évol
|
||||
- Fichiers dans logs impactés
|
||||
- Bases de données et autres sources modifiées
|
||||
- Modifications hors projet
|
||||
- fichiers dans .cursor/ modifiés
|
||||
- fichiers dans .smartIde/ modifiés
|
||||
- fichiers dans .secrets/ modifiés
|
||||
- nouvelle sous sous version dans VERSION
|
||||
- CHANGELOG.md mise à jour (oui/non)
|
||||
|
||||
23. **Push** : Lancer et **exécuter intégralement** l'agent `.cursor/agents/push-by-script.md` (commande /push-by-script) avec ce message de commit. En cas d'erreur ou d'optimisation remontée par l'agent invoqué : traiter obligatoirement (corriger ou mettre en œuvre), puis relancer cet agent jusqu'à ce qu'aucune erreur ni optimisation non traitée ne soit remontée.
|
||||
23. **Push** : Lancer et **exécuter intégralement** l'agent `.smartIde/agents/push-by-script.md` (commande /push-by-script) avec ce message de commit. En cas d'erreur ou d'optimisation remontée par l'agent invoqué : traiter obligatoirement (corriger ou mettre en œuvre), puis relancer cet agent jusqu'à ce qu'aucune erreur ni optimisation non traitée ne soit remontée.
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.cursor/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si le code n'a pas été modifié, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.smartIde/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si le code n'a pas été modifié, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
@ -31,13 +31,13 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
|
||||
**Documentation** : La doc des projets gérés est dans **`projects/<id>/docs`** ; la doc ia_dev est dans **`projects/ia_dev/docs`**.
|
||||
|
||||
**`deploy.host_stays_on_test: true` dans `projects/<id>/conf.json` (ex. lecoffreio / LeCoffre) :** le clone applicatif (`repository_root`) reste sur la branche Git locale **`test`** pour les déploiements **pprod**/**prod** via **`deploy-by-script-to.sh`**. L’environnement cible est l’**argument** du script. Le `deploy.sh` du dépôt aligne les remotes / **worktree** (ex. **`git push lecoffre_ng test:<branche>`** pour LeCoffre) — pas de **`git checkout pprod`**/**`prod`** sur le poste. Vérifier **`test`** aligné avec le remote attendu. Doc applicative : **`deploy/README.md`** ; agents LeCoffre : **`LECOFFRE_REPO/.cursor/agents/deploy-by-script.md`**.
|
||||
**`deploy.host_stays_on_test: true` dans `projects/<id>/conf.json` (ex. lecoffreio / LeCoffre) :** le clone applicatif (`repository_root`) reste sur la branche Git locale **`test`** pour les déploiements **pprod**/**prod** via **`deploy-by-script-to.sh`**. L’environnement cible est l’**argument** du script. Le `deploy.sh` du dépôt aligne les remotes / **worktree** (ex. **`git push lecoffre_ng test:<branche>`** pour LeCoffre) — pas de **`git checkout pprod`**/**`prod`** sur le poste. Vérifier **`test`** aligné avec le remote attendu. Doc applicative : **`deploy/README.md`** ; agents LeCoffre : **`LECOFFRE_REPO/.smartIde/agents/deploy-by-script.md`**.
|
||||
|
||||
Cet agent lance le déploiement vers l’**environnement passé au script** (ex. `./deploy/deploy-by-script-to.sh <id> test|pprod|prod`) via **scripts_v2**. **Si `deploy.host_stays_on_test` est absent ou false :** en pratique la branche locale du dépôt applicatif correspond souvent à l’env cible pour **pprod**/**prod**. **Rôle de l’agent :** vérifier le contexte (si **`host_stays_on_test`** : branche locale = **test** ; sinon : cohérence branche / env selon le projet), lancer le script, contrôler la sortie et le code de retour, synthèse et clôture. **Rôle du script :** exécution et orchestration sûre (suivi branches, sync, log, déploiement).
|
||||
|
||||
**Corrections applicatives : branche test d'abord (obligatoire) :** Si une correction de **code**, **configuration** ou **documentation** du dépôt applicatif (`repository_root` dans `projects/<id>/conf.json`) est nécessaire après un échec ou une analyse pendant un déploiement :
|
||||
- **Branche locale du dépôt applicatif = test** : appliquer la correction sur **test**, committer/pousser selon les règles du projet, puis relancer le déploiement adapté (cet agent si l’env reste **test**).
|
||||
- **Branche locale = pprod ou prod** : **interdit** de traiter le correctif comme un commit **uniquement** sur **pprod**/**prod**. **`git checkout test`** sur le dépôt applicatif, appliquer la correction, puis **rejouer le flux officiel** vers l’environnement visé : exécuter intégralement **`/deploy-pprod-or-prod`** (cible **pprod** ou **prod**) conformément à `.cursor/agents/deploy-pprod-or-prod.md`, en particulier la section **Corrections découvertes sur pprod ou prod** (**`/change-to-all-branches`** puis **`deploy-by-script-to`**). Ne pas se limiter à relancer **seulement** le script de déploiement local sur **pprod**/**prod** après un fix hors **test**.
|
||||
- **Branche locale = pprod ou prod** : **interdit** de traiter le correctif comme un commit **uniquement** sur **pprod**/**prod**. **`git checkout test`** sur le dépôt applicatif, appliquer la correction, puis **rejouer le flux officiel** vers l’environnement visé : exécuter intégralement **`/deploy-pprod-or-prod`** (cible **pprod** ou **prod**) conformément à `.smartIde/agents/deploy-pprod-or-prod.md`, en particulier la section **Corrections découvertes sur pprod ou prod** (**`/change-to-all-branches`** puis **`deploy-by-script-to`**). Ne pas se limiter à relancer **seulement** le script de déploiement local sur **pprod**/**prod** après un fix hors **test**.
|
||||
|
||||
**Focus qualité et résolution de problèmes :**
|
||||
- **Qualité :** Avant de lancer le script : si **`deploy.host_stays_on_test`** dans la conf du projet, vérifier que la branche courante du clone applicatif est **`test`** et l’alignement remote (ex. **`lecoffre_ng/test`** pour LeCoffre ; voir **`deploy.sh`** / **`deploy/README.md`**). Sinon, vérifier que la branche courante correspond à l’environnement cible. Ne pas déployer depuis un état non poussé ou non aligné sans l’avoir vérifié.
|
||||
@ -47,7 +47,7 @@ Cet agent lance le déploiement vers l’**environnement passé au script** (ex.
|
||||
|
||||
- **Logs et corrections :** Toujours consulter la sortie du script et le fichier logs/deploy_*.log après exécution. En cas d'échec, utiliser ces logs pour identifier la cause, appliquer les corrections (code, config, doc, scripts) en respectant **Corrections applicatives : branche test d'abord**, committer et pousser via push-by-script si des fichiers ont été modifiés (ou enchaîner **`/deploy-pprod-or-prod`** si la cible du script était **pprod**/**prod** ou si la branche applicative locale était **pprod**/**prod** pour un projet **sans** **`host_stays_on_test`**), puis relancer le déploiement ou le workflow complet jusqu'à succès ou blocage nécessitant instruction utilisateur.
|
||||
|
||||
**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).
|
||||
**Horodatage et contexte** : appliquer intégralement le bloc défini dans `.smartIde/rules/cloture-evolution.mdc` (début et fin d'exécution, lancement et retour des sub-agents).
|
||||
|
||||
**Avant d'exécuter un script du projet :**
|
||||
1. Lire le fichier du script avec l'outil de lecture (ex. `deploy/scripts_v2/deploy.sh`).
|
||||
@ -77,10 +77,10 @@ Le script fait alors automatiquement : suivi des branches origin, sync de la bra
|
||||
|
||||
## 4. Lint min. 5 avant clôture (obligatoire)
|
||||
|
||||
Sur le `repository_root` du projet (`projects/<id>/conf.json`) : exécuter le lint dans **chaque** `build_dir` déclaré — **tout** le périmètre à chaque fois, pas seulement le sous-projet touché par la session ; si **N ≥ 1** diagnostics (erreurs+warnings), corriger **au moins min(5, N)** **dans ce run**. **Interdit** de s’en remettre à un **`/fix-lint` ultérieur** seul pour satisfaire ce quota. **Interdit** d’omettre des corrections sous prétexte qu’elles ne concernent pas les fichiers modifiés dans la session : voir `.cursor/rules/cloture-lint.mdc` — section **Diagnostics préexistants / hors périmètre de la session**. Documenter le décompte en clôture. Si corrections = changements non poussés : **/push-by-script** avant de finaliser la clôture. Voir la puce **Lint (obligatoire avant clôture)** (rationalisation) et `.cursor/rules/cloture-lint.mdc`.
|
||||
Sur le `repository_root` du projet (`projects/<id>/conf.json`) : exécuter le lint dans **chaque** `build_dir` déclaré — **tout** le périmètre à chaque fois, pas seulement le sous-projet touché par la session ; si **N ≥ 1** diagnostics (erreurs+warnings), corriger **au moins min(5, N)** **dans ce run**. **Interdit** de s’en remettre à un **`/fix-lint` ultérieur** seul pour satisfaire ce quota. **Interdit** d’omettre des corrections sous prétexte qu’elles ne concernent pas les fichiers modifiés dans la session : voir `.smartIde/rules/cloture-lint.mdc` — section **Diagnostics préexistants / hors périmètre de la session**. Documenter le décompte en clôture. Si corrections = changements non poussés : **/push-by-script** avant de finaliser la clôture. Voir la puce **Lint (obligatoire avant clôture)** (rationalisation) et `.smartIde/rules/cloture-lint.mdc`.
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.cursor/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si le script a échoué ou si l'agent n'a pas modifié de code, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.smartIde/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si le script a échoué ou si l'agent n'a pas modifié de code, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
|
||||
**Exhaustivité obligatoire de la clôture :** Traiter tous les points 1 à 16 (ou 19) sans en omettre. Point 1 : horodatage début/fin et par sub-agent. Point 2 : un sub-agent ou une passée de checklist par périmètre (global/commun, frontend, backend, ressources partagées, scripts shell) avec réponses aux points 3-11. Points 3-11 : indiquer « Réalisées » et « Non réalisées encore » pour chaque point, avec **vérifications concrètes** (exécuter lint **dans chaque projet** en comptant erreurs et warnings — « Lint : Réalisées » uniquement si 0 erreur et 0 warning par répertoire ; type-check, build ; parcourir le code pour Helpers, fallback, code mort, etc.) — pas de « N/A » de convenance, sauf périmètre inexistant. Voir section « Règles d'exécution des points 3 à 11 » dans l'agent change-to-all-branches. Points 12-14 : reste à faire, réaliser non réalisé, réaliser reste à faire. Point 15 : /push-by-script si pas déjà fait. Point 16 : afficher le texte du commit.
|
||||
@ -16,7 +16,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Agent deploy-pprod-or-prod
|
||||
|
||||
@ -52,7 +52,7 @@ Règles **décisionnelles** (ne pas lancer en double ce qu’un agent en aval ex
|
||||
|
||||
| Action en amont | Condition | Application (tant que l’étape 2 ci-dessous existe dans ce fichier) |
|
||||
| --- | --- | --- |
|
||||
| **`/push-by-script`** (branche **test**) | Lancer **avant** ce workflow **seulement si** **`/change-to-all-branches`** ne le lance **pas** aussi. | L’agent **`/change-to-all-branches`** exécute **`/push-by-script`** **avant** `./deploy/change-to-all-branches.sh` (voir `.cursor/agents/change-to-all-branches.md`, checklist étape 5). Comme **`/deploy-pprod-or-prod`** appelle **`/change-to-all-branches`** à l’étape 2, **interdit** de lancer **`/push-by-script`** sur test **séparément avant** l’étape 2 de ce workflow. |
|
||||
| **`/push-by-script`** (branche **test**) | Lancer **avant** ce workflow **seulement si** **`/change-to-all-branches`** ne le lance **pas** aussi. | L’agent **`/change-to-all-branches`** exécute **`/push-by-script`** **avant** `./deploy/change-to-all-branches.sh` (voir `.smartIde/agents/change-to-all-branches.md`, checklist étape 5). Comme **`/deploy-pprod-or-prod`** appelle **`/change-to-all-branches`** à l’étape 2, **interdit** de lancer **`/push-by-script`** sur test **séparément avant** l’étape 2 de ce workflow. |
|
||||
| **`/change-to-all-branches`** | Lancer **avant** ce workflow **seulement si** **`/deploy-pprod-or-prod`** (cible pprod ou prod) ne le lance **pas** aussi. | Ce fichier impose l’**étape 2** « Lancer **`/change-to-all-branches`** ». **Interdit** de lancer **`/change-to-all-branches`** **séparément avant** de commencer ce workflow (sauf **évolution documentée** de ce fichier **sans** étape 2 ; dans ce cas seulement, enchaîner manuellement dans l’ordre push → change-to-all-branches → suite). |
|
||||
|
||||
**Si** une future version de ce fichier **supprime** l’étape 2 : réévaluer le tableau (alors **`/change-to-all-branches`** peut être requis en amont, et **`/push-by-script`** reste couvert **si** **`/change-to-all-branches`** est inchangé côté ia_dev).
|
||||
@ -94,8 +94,8 @@ Cocher explicitement : **« Ordre anti-duplication : respecté (pas de `/push-by
|
||||
|
||||
## 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). Au début et à la fin : date/heure, projet (id), branche et répertoire de travail du dépôt concerné.
|
||||
Appliquer intégralement le bloc défini dans `.smartIde/rules/cloture-evolution.mdc` (début et fin d'exécution, lancement et retour des sub-agents). Au début et à la fin : date/heure, projet (id), branche et répertoire de travail du dépôt concerné.
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.cursor/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si une étape a échoué, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.smartIde/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si une étape a échoué, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
@ -16,7 +16,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# docupdate
|
||||
|
||||
@ -33,9 +33,9 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
|
||||
**Documentation** : La doc des projets gérés est dans **`projects/<id>/docs`** ; la doc ia_dev est dans **`projects/ia_dev/docs`**.
|
||||
|
||||
**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).
|
||||
**Horodatage et contexte** : appliquer intégralement le bloc défini dans `.smartIde/rules/cloture-evolution.mdc` (début et fin d'exécution, lancement et retour des sub-agents).
|
||||
|
||||
Ce document **centralise toutes les informations** sur la documentation du projet (structure, répertoires, mise à jour, Changelog). **L'appel à cet agent** est centralisé dans `.cursor/rules/cloture-evolution.mdc` (étape 12) — à exécuter intégralement lors de la clôture.
|
||||
Ce document **centralise toutes les informations** sur la documentation du projet (structure, répertoires, mise à jour, Changelog). **L'appel à cet agent** est centralisé dans `.smartIde/rules/cloture-evolution.mdc` (étape 12) — à exécuter intégralement lors de la clôture.
|
||||
|
||||
**Avant d'exécuter un script du projet :**
|
||||
|
||||
@ -103,4 +103,4 @@ Ventiler les infos de fixknowledge dans les pages wiki existantes et ne pas cré
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.cursor/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si l'agent n'a pas modifié de code, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.smartIde/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si l'agent n'a pas modifié de code, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
@ -16,7 +16,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Agent evol (évolutions)
|
||||
|
||||
@ -35,7 +35,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
|
||||
Tu es l'agent evol, en charge des **évolutions** (nouvelles fonctionnalités, améliorations, refactors non correctifs).
|
||||
|
||||
**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).
|
||||
**Horodatage et contexte** : appliquer intégralement le bloc défini dans `.smartIde/rules/cloture-evolution.mdc` (début et fin d'exécution, lancement et retour des sub-agents).
|
||||
|
||||
## Principes
|
||||
|
||||
@ -44,8 +44,8 @@ Tu es l'agent evol, en charge des **évolutions** (nouvelles fonctionnalités, a
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Implémentation** : Réaliser l'évolution (code, config si nécessaire) en cohérence avec la doc et les patterns existants. Ne jamais contourner, supprimer le contexte du problème, créer de régression fonctionnelle, mettre de résultat en dur ni écraser les cas ; gérer tous les cas explicitement. **En cas de code à produire**, appliquer obligatoirement intégralement les règles de `.cursor/agents/code.md` (agent commande /code).
|
||||
1. **Implémentation** : Réaliser l'évolution (code, config si nécessaire) en cohérence avec la doc et les patterns existants. Ne jamais contourner, supprimer le contexte du problème, créer de régression fonctionnelle, mettre de résultat en dur ni écraser les cas ; gérer tous les cas explicitement. **En cas de code à produire**, appliquer obligatoirement intégralement les règles de `.smartIde/agents/code.md` (agent commande /code).
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.cursor/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si une étape a échoué, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.smartIde/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si une étape a échoué, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
@ -39,13 +39,13 @@ 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** (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. **Interdit** : laisser des diagnostics sous prétexte qu’ils sont « hors session » ou « préexistants » : voir `.cursor/rules/cloture-lint.mdc` — section **Diagnostics préexistants / hors périmètre de la session**. 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`, dont la même section). |
|
||||
| **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. **Interdit** : laisser des diagnostics sous prétexte qu’ils sont « hors session » ou « préexistants » : voir `.smartIde/rules/cloture-lint.mdc` — section **Diagnostics préexistants / hors périmètre de la session**. 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 `.smartIde/rules/cloture-lint.mdc`, dont la même section). |
|
||||
| **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`. |
|
||||
| **Documentation** | Mise à jour réelle de la doc (docs/, wiki) selon `.smartIde/agents/docupdate.md`. |
|
||||
| **Reste à faire** | Lister explicitement ce qu'il reste à faire (puces) en fin de processus. |
|
||||
| **« Non réalisées encore »** | Pour chaque point des questions de clôture, traiter et réaliser les « Non réalisées encore » avant clôture. |
|
||||
| **Push** | Exécuter `.cursor/agents/push-by-script.md` en fin d'agent si pas déjà fait ; afficher le texte du commit. |
|
||||
| **Push** | Exécuter `.smartIde/agents/push-by-script.md` en fin d'agent si pas déjà fait ; afficher le texte du commit. |
|
||||
|
||||
---
|
||||
|
||||
@ -55,15 +55,15 @@ Chacune des actions ci-dessous est **obligatoire** et doit être réalisée **de
|
||||
|
||||
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).
|
||||
**Horodatage et contexte** : appliquer intégralement le bloc défini dans `.smartIde/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 ; section **Diagnostics préexistants / hors périmètre de la session** : corriger tout diagnostic du périmètre même sans lien avec le diff du run.
|
||||
- Voir `.smartIde/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 ; section **Diagnostics préexistants / hors périmètre de la session** : corriger tout diagnostic du périmètre même sans lien avec le diff du run.
|
||||
|
||||
## Contrainte absolue
|
||||
|
||||
**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/<id>/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 `~/.smartIde/`.** 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/<id>/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.
|
||||
|
||||
@ -77,7 +77,7 @@ Corrige toutes les erreurs et tous les warnings de lint du projet (chaque réper
|
||||
|
||||
## Priorité centralisation / optimisation
|
||||
|
||||
À chaque correction de lint, identifier les duplications et patterns répétés ; centraliser la logique dans des helpers ou modules partagés ; réutiliser les helpers existants avant d'en créer de nouveaux. Pour chaque périmètre (backend, frontend, ressources), si aucune centralisation ou optimisation n'est réalisée alors que des duplications sont repérées, **documenter la raison** (voir `.cursor/agents/closure-point-7-justification.md`). En clôture, si le point 7 (Optimisation / mutualisation / centralisation) est « Non réalisées encore », fournir la justification par composant selon ce fichier.
|
||||
À chaque correction de lint, identifier les duplications et patterns répétés ; centraliser la logique dans des helpers ou modules partagés ; réutiliser les helpers existants avant d'en créer de nouveaux. Pour chaque périmètre (backend, frontend, ressources), si aucune centralisation ou optimisation n'est réalisée alors que des duplications sont repérées, **documenter la raison** (voir `.smartIde/agents/closure-point-7-justification.md`). En clôture, si le point 7 (Optimisation / mutualisation / centralisation) est « Non réalisées encore », fournir la justification par composant selon ce fichier.
|
||||
|
||||
## Première action obligatoire
|
||||
|
||||
@ -111,7 +111,7 @@ Si un déploiement est demandé pendant l'exécution, s'arrêter proprement.
|
||||
9. Lancer un lint fix sur chaque répertoire du périmètre
|
||||
10. S'il y a des mutualisations/optimisations/centralisations possibles, les faire
|
||||
11. Lancer un test de build/typecheck et corriger les erreurs de type pour chaque répertoire
|
||||
12. Compléter la documentation selon `.cursor/agents/docupdate.md`. L'appel à l'agent docupdate est centralisé dans `.cursor/rules/cloture-evolution.mdc` (étape 12) — l'exécuter en clôture selon cette étape.
|
||||
12. Compléter la documentation selon `.smartIde/agents/docupdate.md`. L'appel à l'agent docupdate est centralisé dans `.smartIde/rules/cloture-evolution.mdc` (étape 12) — l'exécuter en clôture selon cette étape.
|
||||
|
||||
## Ordre de priorité des règles applicables
|
||||
|
||||
@ -180,4 +180,4 @@ Si un déploiement est demandé pendant l'exécution, s'arrêter proprement.
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant sollicité (voir `.cursor/agents/closure-point-7-justification.md`). Les **actions obligatoires et significatives** (section ci-dessus : Helpers, i18n/env-full, fallback interdits, modifications similaires, optimisation/mutualisation, réduction de complexité, sécurité, code mort, lint, types, compilation, documentation, reste à faire, « Non réalisées encore », push) doivent toutes être traitées de façon significative avant clôture. Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si le lint n'a pas été modifié, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant sollicité (voir `.smartIde/agents/closure-point-7-justification.md`). Les **actions obligatoires et significatives** (section ci-dessus : Helpers, i18n/env-full, fallback interdits, modifications similaires, optimisation/mutualisation, réduction de complexité, sécurité, code mort, lint, types, compilation, documentation, reste à faire, « Non réalisées encore », push) doivent toutes être traitées de façon significative avant clôture. Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si le lint n'a pas été modifié, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
@ -16,7 +16,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Agent fix-search (investigations)
|
||||
|
||||
@ -35,7 +35,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
|
||||
Tu es l'agent fix-search, en charge des **investigations** en vue d'identifier la cause et la root cause d'un problème remonté.
|
||||
|
||||
**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).
|
||||
**Horodatage et contexte** : appliquer intégralement le bloc défini dans `.smartIde/rules/cloture-evolution.mdc` (début et fin d'exécution, lancement et retour des sub-agents).
|
||||
|
||||
## Mode d'intervention
|
||||
|
||||
@ -59,7 +59,7 @@ Tu es l'agent fix-search, en charge des **investigations** en vue d'identifier l
|
||||
|
||||
- Synthèse d'investigation (symptôme, causes, root cause, preuves).
|
||||
- Si des documents d'investigation ou de retour d'expérience doivent être créés ou complétés, les rédiger dans le wiki (page Operations ou autre) ou dans `docs/` puis exécuter `./gitea-issues/wiki-migrate-docs.sh`. **`docs/` est hors versionnement** : maintenir `docs/` localement, ne pas le supprimer, ne pas le committer ; toujours pousser vers le wiki après édition. **Avant d'exécuter wiki-migrate-docs.sh :** lire le script, présenter un résumé, puis l'exécuter. **Lecture/écriture limitée à la doc** (pas de modification du code ni des configs).
|
||||
- Préparer le commit avec le format défini dans `.cursor/agents/push-by-script.md` (lignes 15-32) :
|
||||
- Préparer le commit avec le format défini dans `.smartIde/agents/push-by-script.md` (lignes 15-32) :
|
||||
- Etat initial
|
||||
- Motivation du changement
|
||||
- Résolution
|
||||
@ -72,12 +72,12 @@ Tu es l'agent fix-search, en charge des **investigations** en vue d'identifier l
|
||||
- Fichiers dans logs impactés
|
||||
- Bases de données et autres sources modifiées
|
||||
- Modifications hors projet
|
||||
- fichiers dans .cursor/ modifiés
|
||||
- fichiers dans .smartIde/ modifiés
|
||||
- fichiers dans .secrets/ modifiés
|
||||
- nouvelle sous sous version dans VERSION
|
||||
- CHANGELOG.md mise à jour (oui/non)
|
||||
- Lancer et **exécuter intégralement** l'agent `.cursor/agents/push-by-script.md` (commande /push-by-script) avec ce message de commit. En cas d'erreur ou d'optimisation remontée par l'agent invoqué : traiter obligatoirement (corriger ou mettre en œuvre), puis relancer cet agent jusqu'à ce qu'aucune erreur ni optimisation non traitée ne soit remontée.
|
||||
- Lancer et **exécuter intégralement** l'agent `.smartIde/agents/push-by-script.md` (commande /push-by-script) avec ce message de commit. En cas d'erreur ou d'optimisation remontée par l'agent invoqué : traiter obligatoirement (corriger ou mettre en œuvre), puis relancer cet agent jusqu'à ce qu'aucune erreur ni optimisation non traitée ne soit remontée.
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.cursor/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si l'agent n'a pas modifié de code, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.smartIde/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si l'agent n'a pas modifié de code, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
@ -16,7 +16,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Agent fix (correctifs)
|
||||
|
||||
@ -35,7 +35,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
|
||||
Tu es l'agent fix, en charge des **correctifs** à partir d'un problème remonté ou d'une investigation préalable.
|
||||
|
||||
**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).
|
||||
**Horodatage et contexte** : appliquer intégralement le bloc défini dans `.smartIde/rules/cloture-evolution.mdc` (début et fin d'exécution, lancement et retour des sub-agents).
|
||||
|
||||
## Principes
|
||||
|
||||
@ -46,7 +46,7 @@ Tu es l'agent fix, en charge des **correctifs** à partir d'un problème remont
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Investigation** : Lancer et **exécuter intégralement** l'agent `.cursor/agents/fix-search.md` (commande /fix-search) pour obtenir ou confirmer la root cause et le périmètre. En cas d'erreur ou d'optimisation remontée par l'agent invoqué : traiter obligatoirement (corriger ou mettre en œuvre), puis relancer cet agent jusqu'à ce qu'aucune erreur ni optimisation non traitée ne soit remontée.
|
||||
1. **Investigation** : Lancer et **exécuter intégralement** l'agent `.smartIde/agents/fix-search.md` (commande /fix-search) pour obtenir ou confirmer la root cause et le périmètre. En cas d'erreur ou d'optimisation remontée par l'agent invoqué : traiter obligatoirement (corriger ou mettre en œuvre), puis relancer cet agent jusqu'à ce qu'aucune erreur ni optimisation non traitée ne soit remontée.
|
||||
|
||||
2. **Corrections** :
|
||||
- Corriger la root cause en priorité.
|
||||
@ -54,8 +54,8 @@ Tu es l'agent fix, en charge des **correctifs** à partir d'un problème remont
|
||||
- Étendre la correction aux endroits similaires identifiés.
|
||||
- Proposer, si pertinent, des évolutions plus globales (architecture, mutualisation, centralisation).
|
||||
- **Documentation** : `docs/` est hors versionnement ; maintenir `docs/` localement, pousser vers le wiki avec `./gitea-issues/wiki-migrate-docs.sh`, ne pas committer `docs/`.
|
||||
- **En cas de code à produire**, appliquer intégralement les règles de `.cursor/agents/code.md` (agent commande /code).
|
||||
- **En cas de code à produire**, appliquer intégralement les règles de `.smartIde/agents/code.md` (agent commande /code).
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.cursor/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si le correctif n'a pas été appliqué ou a échoué, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Pour le point 7 (Optimisation / mutualisation / centralisation), si « Non réalisées encore » : justifier par composant (voir `.smartIde/agents/closure-point-7-justification.md`). Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si le correctif n'a pas été appliqué ou a échoué, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
@ -16,7 +16,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Agent gitea-issues-process
|
||||
|
||||
@ -33,7 +33,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
|
||||
**À lire en début d'exécution** (documentation fournie à l'agent) :
|
||||
- projects/ia_dev/docs/GITEA_ISSUES_SCRIPTS_AGENTS.md (contexte d'exécution, scripts)
|
||||
- .cursor/agents/agent-loop.md (fichier témoin, variables, boucles)
|
||||
- .smartIde/agents/agent-loop.md (fichier témoin, variables, boucles)
|
||||
- projects/ia_dev/docs/TICKETS_SPOOL_FORMAT.md (format JSON du spooler projects/<id>/data/issues/, schémas incoming/response, pièces jointes)
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/`. L'identifiant `<id>` est résolu **uniquement** par **MAIL_TO** (adresse « to » des mails) ou **AI_AGENT_TOKEN** (token des requêtes) ; pas de fallback. Voir `docs/repo/ia-dev-project-conf-schema.md`. Rappeler en début d'exécution : projet = id résolu par MAIL_TO ou AI_AGENT_TOKEN, config = `ia_dev/projects/<id>/`. Ne pas hardcoder de chemin projet.
|
||||
@ -101,4 +101,4 @@ L'agent **ne fait pas** d'appels IMAP/SMTP ni de curl Gitea directs : il **invoq
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si aucun ticket n'a été traité, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si aucun ticket n'a été traité, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
@ -12,7 +12,7 @@ is_background: true
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Agent notary-ai-loop
|
||||
|
||||
@ -72,7 +72,7 @@ Si l'utilisateur demande de **traiter une fois** les questions en attente (sans
|
||||
## 3. Autres demandes
|
||||
|
||||
- **Consulter les pending** : exécuter `Depuis la racine de ia_dev : ./ai_working_help/notary-ai/list-pending-notary-ai.sh` et afficher les chemins (ou le contenu d'un fichier pour vérification).
|
||||
- **Documentation** : `ia_dev/ai_working_help/docs/notary-ai-api.md` (API, spooler, scripts). Agent de traitement : `.cursor/agents/notary-ai-process.md`.
|
||||
- **Documentation** : `ia_dev/ai_working_help/docs/notary-ai-api.md` (API, spooler, scripts). Agent de traitement : `.smartIde/agents/notary-ai-process.md`.
|
||||
|
||||
---
|
||||
|
||||
@ -85,4 +85,4 @@ Si l'utilisateur demande de **traiter une fois** les questions en attente (sans
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si la boucle n'a traité aucun pending, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si la boucle n'a traité aucun pending, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
@ -16,7 +16,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Agent notary-ai-process
|
||||
|
||||
@ -78,8 +78,8 @@ Tu es l'agent qui traite les **questions IA notaire** en attente dans le spooler
|
||||
## Références
|
||||
|
||||
- Spooler et API : `ia_dev/ai_working_help/docs/notary-ai-api.md`
|
||||
- Boucle d'orchestration : `.cursor/agents/notary-ai-loop.md`
|
||||
- Boucle d'orchestration : `.smartIde/agents/notary-ai-loop.md`
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc` : points 1 à 19. Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si aucun fichier pending n'a été traité, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc` : points 1 à 19. Toutes les étapes (agent + clôture) doivent être **réellement passées**, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). **Aucune exception** : même si aucun fichier pending n'a été traité, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.
|
||||
@ -16,7 +16,7 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit.
|
||||
- Réponses concises, sans répéter règles ou docs déjà référencées.
|
||||
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Agent push-by-script
|
||||
|
||||
@ -33,14 +33,14 @@ En tant qu'agent, avant de solliciter l'ia, regarde ce que tu peux scripter (imp
|
||||
|
||||
**Documentation** : La doc des projets gérés est dans **`projects/<id>/docs`** ; la doc ia_dev est dans **`projects/ia_dev/docs`**.
|
||||
|
||||
**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).
|
||||
**Horodatage et contexte** : appliquer intégralement le bloc défini dans `.smartIde/rules/cloture-evolution.mdc` (début et fin d'exécution, lancement et retour des sub-agents).
|
||||
|
||||
---
|
||||
|
||||
## Prérequis obligatoires (à exécuter avant le workflow principal, sans exception)
|
||||
|
||||
1. **Enrichir la documentation du projet** : enrichir `projects/<id>/docs/` des évolutions et des textes présents dans `docs/` à la racine du projet (`project_path` dans `conf.json`). Faire cette étape pour tout projet concerné par le push.
|
||||
2. **Lancer /docupdate** : lancer l'agent `.cursor/agents/docupdate.md` (commande /docupdate) en lui passant l'id du projet, depuis le répertoire ia_dev. Exécuter docupdate **intégralement** ; ne pas le résumer ni en sauter des parties.
|
||||
2. **Lancer /docupdate** : lancer l'agent `.smartIde/agents/docupdate.md` (commande /docupdate) en lui passant l'id du projet, depuis le répertoire ia_dev. Exécuter docupdate **intégralement** ; ne pas le résumer ni en sauter des parties.
|
||||
|
||||
---
|
||||
|
||||
@ -68,7 +68,7 @@ Construire ou obtenir un message de commit contenant **obligatoirement** chacune
|
||||
- Fichiers dans logs impactés
|
||||
- Bases de données et autres sources modifiées
|
||||
- Modifications hors projet
|
||||
- fichiers dans .cursor/ modifiés
|
||||
- fichiers dans .smartIde/ modifiés
|
||||
- fichiers dans .secrets/ modifiés
|
||||
- nouvelle sous-sous-version dans VERSION
|
||||
- CHANGELOG.md mise à jour (oui/non)
|
||||
@ -127,7 +127,7 @@ Avant d'appeler la clôture, remplir explicitement pour cet agent :
|
||||
|
||||
## Clôture complète obligatoire (tous les cas, sans exception)
|
||||
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.cursor/rules/cloture-evolution.mdc`. **Aucune exception** : même si le script a échoué ou que le push est déjà fait, la clôture complète est obligatoire. Ne pas résumer ni omettre un point.
|
||||
En fin d'exécution de cet agent, **toujours** appliquer intégralement `.smartIde/rules/cloture-evolution.mdc`. **Aucune exception** : même si le script a échoué ou que le push est déjà fait, la clôture complète est obligatoire. Ne pas résumer ni omettre un point.
|
||||
|
||||
### Application systématique des points de clôture
|
||||
|
||||
@ -150,7 +150,7 @@ Produire **obligatoirement** en fin de réponse un bloc intitulé **« Clôture
|
||||
|
||||
4. **Point 13** : réaliser le « Non réalisées encore » (actions concrètes ou constat si rien à faire).
|
||||
|
||||
5. **Point 14** : réaliser le reste à faire (actions concrètes ou constat si rien à faire). Si docupdate n'a pas été exécuté en prérequis, lancer et exécuter intégralement l'agent `.cursor/agents/docupdate.md` pour le projet.
|
||||
5. **Point 14** : réaliser le reste à faire (actions concrètes ou constat si rien à faire). Si docupdate n'a pas été exécuté en prérequis, lancer et exécuter intégralement l'agent `.smartIde/agents/docupdate.md` pour le projet.
|
||||
|
||||
6. **Point 15** : non applicable (cet agent est push-by-script ; le push a déjà été effectué à l'étape 5 du workflow).
|
||||
|
||||
@ -167,7 +167,7 @@ Pour chaque point, indiquer **réalisé** ou **non réalisé** et, le cas éché
|
||||
- **4. i18n + env-full** : Vérifier textes en dur dans l'UI, présence de `.secrets/<env>/env-full*` ; « Réalisées » si conforme, « Non réalisées encore » sinon.
|
||||
- **5. Fallback interdits** : Parcourir le code pour fallback, valeurs par défaut masquant des erreurs ; « Réalisées » si aucun, « Non réalisées encore » si présents.
|
||||
- **6. Modifications similaires** : Vérifier patterns similaires à appliquer ailleurs ; « Réalisées » si étendu ou rien à faire, « Non réalisées encore » si à faire.
|
||||
- **7. Optimisation / mutualisation / centralisation** : Vérifier duplication ou centralisation possible ; « Réalisées » ou « Non réalisées encore » avec précision. Si « Non réalisées encore », justification obligatoire par périmètre (voir `.cursor/agents/closure-point-7-justification.md`).
|
||||
- **7. Optimisation / mutualisation / centralisation** : Vérifier duplication ou centralisation possible ; « Réalisées » ou « Non réalisées encore » avec précision. Si « Non réalisées encore », justification obligatoire par périmètre (voir `.smartIde/agents/closure-point-7-justification.md`).
|
||||
- **8. Réduction complexité** : Vérifier complexité dans les zones concernées ; « Réalisées » ou « Non réalisées encore ».
|
||||
- **9. Renforcement sécurité** : Vérifier exposition de données sensibles, validation des entrées ; « Réalisées » ou « Non réalisées encore ».
|
||||
- **10. Code mort** : Vérifier code mort (exports inutilisés, branches mortes) ; « Réalisées » ou « Non réalisées encore ».
|
||||
@ -10,7 +10,7 @@ is_background: false
|
||||
- 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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
- **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** `build_dir` de la conf — **tout** le périmètre à chaque fois, pas seulement le sous-projet modifié dans la session (ex. tâche front : lancer aussi le lint sur les autres `build_dirs`). 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 `.smartIde/rules/cloture-lint.mdc`, dont la section **Diagnostics préexistants / hors périmètre de la session** (correction obligatoire pour tout diagnostic du périmètre, y compris hors fichiers modifiés dans ce run ; **interdit** en clôture : « warning existant », « hors scope session », « préexistait »).
|
||||
|
||||
# Agent setup-host (générique ia_dev)
|
||||
|
||||
@ -25,7 +25,7 @@ is_background: false
|
||||
- L’environnement 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` ; s’assurer 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 d’exécution agent (horodatage, questions 3–11 selon périmètre touché).
|
||||
7. **Clôture** : appliquer `.smartIde/rules/cloture-evolution.mdc` en fin d’exécution agent (horodatage, questions 3–11 selon périmètre touché).
|
||||
|
||||
## Projets sans script normalisé
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
"hooks": {
|
||||
"sessionStart": [
|
||||
{
|
||||
"command": ".cursor/hooks/remonter-mails.sh"
|
||||
"command": ".smartIde/hooks/remonter-mails.sh"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -30,7 +30,7 @@ Fichiers dans déploy modifiés : Aucun.
|
||||
Fichiers dans logs impactés : Aucun.
|
||||
Bases de données et autres sources modifiées : Aucune.
|
||||
Modifications hors projet : Aucune.
|
||||
fichiers dans .cursor/ modifiés : Aucun.
|
||||
fichiers dans .smartIde/ modifiés : Aucun.
|
||||
fichiers dans .secrets/ modifiés : Aucun.
|
||||
nouvelle sous-sous-version dans VERSION : 2.0.98 → 2.0.99.
|
||||
CHANGELOG.md mise à jour : oui.
|
||||
@ -41,8 +41,8 @@ fix-lint backend 76 errors (target 75 reached); N0 161 → N_final 85
|
||||
**Changes outside project:**
|
||||
- None.
|
||||
|
||||
**Files in .cursor/ modified:**
|
||||
- .cursor/agents/change-to-all-branches.md, .cursor/agents/fix-lint.md.
|
||||
**Files in .smartIde/ modified:**
|
||||
- .smartIde/agents/change-to-all-branches.md, .smartIde/agents/fix-lint.md.
|
||||
|
||||
**Files in .secrets/ modified:**
|
||||
- None.
|
||||
@ -47,7 +47,7 @@ model: inherit
|
||||
7. **Optimisation / mutualisation / centralisation systématique:**
|
||||
- Réalisées
|
||||
- Non réalisées encore
|
||||
- Si « Non réalisées encore » : justification obligatoire par périmètre (voir `.cursor/agents/closure-point-7-justification.md`).
|
||||
- Si « Non réalisées encore » : justification obligatoire par périmètre (voir `.smartIde/agents/closure-point-7-justification.md`).
|
||||
|
||||
8. **Réduction de la complexité systématique:**
|
||||
- Réalisées
|
||||
@ -74,7 +74,7 @@ model: inherit
|
||||
|
||||
14. réalise le reste à faire.
|
||||
|
||||
15. Si il n'a pas été lancé avant, lancer l'agent `.cursor/agents/push-by-script.md` (commande /push-by-script) **à exécuter intégralement**, avec un message de commit contenant les infos obligatoires suivantes (vérifier ou établir que ce format est en place). Voir `.cursor/agents/push-by-script.md` pour le détail du format :
|
||||
15. Si il n'a pas été lancé avant, lancer l'agent `.smartIde/agents/push-by-script.md` (commande /push-by-script) **à exécuter intégralement**, avec un message de commit contenant les infos obligatoires suivantes (vérifier ou établir que ce format est en place). Voir `.smartIde/agents/push-by-script.md` pour le détail du format :
|
||||
|
||||
- Etat initial
|
||||
- Motivation du changement
|
||||
@ -88,7 +88,7 @@ model: inherit
|
||||
- Fichiers dans logs impactés
|
||||
- Bases de données et autres sources modifiées
|
||||
- Modifications hors projet
|
||||
- fichiers dans .cursor/ modifiés
|
||||
- fichiers dans .smartIde/ modifiés
|
||||
- fichiers dans .secrets/ modifiés
|
||||
- nouvelle sous sous version dans VERSION
|
||||
- CHANGELOG.md mise à jour (oui/non)
|
||||
@ -5,7 +5,7 @@ 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).
|
||||
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)
|
||||
|
||||
@ -38,7 +38,7 @@ Le lint obligatoire porte sur **chaque** entrée listée dans `build_dirs` du `p
|
||||
|
||||
- **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 `.cursor/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.
|
||||
- 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
|
||||
|
||||
@ -33,22 +33,22 @@ model: inherit
|
||||
|
||||
## Tes réponses doivent obligatoirement respecter:
|
||||
|
||||
- Si c'est du lint toujours utiliser et **appliquer intégralement** `.cursor/agents/fix-lint.md`
|
||||
- Si c'est une demande d'investigation : toujours utiliser et **appliquer intégralement** l'agent (commande /fix-search) `.cursor/agents/fix-search.md`.
|
||||
- Si c'est une anomalie ou un remonté de problème : toujours utiliser et **appliquer intégralement** l'agent (commande /fix) `.cursor/agents/fix.md`.
|
||||
- Si c'est une demande d'évolution ou une nouveauté : toujours utiliser et **appliquer intégralement** l'agent (commande /evol) `.cursor/agents/evol.md`.
|
||||
- Si c'est une demande de code : toujours utiliser et **appliquer intégralement** l'agent (commande /evol) `.cursor/agents/code.md`.
|
||||
- Si c'est une mise à jour de la brnache du git toujours utiliser et **appliquer intégralement** `.cursor/agents/push-by-script.md`.
|
||||
- Si c'est une mise à jour des branches du git toujours utiliser et **appliquer intégralement** `.cursor/agents/branch-align-by-script-test.md`.
|
||||
- - Si c'est un déploiement toujours utiliser et **appliquer intégralement** `.cursor/agents/deploy-by-script.md`
|
||||
- Si c'est un déploiement toujours utiliser et **appliquer intégralement** `.cursor/agents/deploy-by-script.md`
|
||||
- Si c'est de la documentation toujours utiliser et **appliquer intégralement** `.cursor/agents/docupdate.md`
|
||||
- Toujours utiliser et **appliquer intégralement** les règles de `.cursor/rules/cloture-evolution.mdc` pour tous les agents.
|
||||
- Si c'est du lint toujours utiliser et **appliquer intégralement** `.smartIde/agents/fix-lint.md`
|
||||
- Si c'est une demande d'investigation : toujours utiliser et **appliquer intégralement** l'agent (commande /fix-search) `.smartIde/agents/fix-search.md`.
|
||||
- Si c'est une anomalie ou un remonté de problème : toujours utiliser et **appliquer intégralement** l'agent (commande /fix) `.smartIde/agents/fix.md`.
|
||||
- Si c'est une demande d'évolution ou une nouveauté : toujours utiliser et **appliquer intégralement** l'agent (commande /evol) `.smartIde/agents/evol.md`.
|
||||
- Si c'est une demande de code : toujours utiliser et **appliquer intégralement** l'agent (commande /evol) `.smartIde/agents/code.md`.
|
||||
- Si c'est une mise à jour de la brnache du git toujours utiliser et **appliquer intégralement** `.smartIde/agents/push-by-script.md`.
|
||||
- Si c'est une mise à jour des branches du git toujours utiliser et **appliquer intégralement** `.smartIde/agents/branch-align-by-script-test.md`.
|
||||
- - Si c'est un déploiement toujours utiliser et **appliquer intégralement** `.smartIde/agents/deploy-by-script.md`
|
||||
- Si c'est un déploiement toujours utiliser et **appliquer intégralement** `.smartIde/agents/deploy-by-script.md`
|
||||
- Si c'est de la documentation toujours utiliser et **appliquer intégralement** `.smartIde/agents/docupdate.md`
|
||||
- Toujours utiliser et **appliquer intégralement** les règles de `.smartIde/rules/cloture-evolution.mdc` pour tous les agents.
|
||||
- Si un agent ou une règle remonte une **erreur** ou une **optimisation** : la traiter obligatoirement (corriger ou mettre en œuvre), puis **relancer** l'agent ou la règle concerné(e) jusqu'à ce qu'aucune erreur ni optimisation non traitée ne soit remontée.
|
||||
- réponds en priorité aux questions posées
|
||||
- ne contourne jamais le problème
|
||||
- pour **tous les agents** : au début et à la fin de toute exécution, **horodater** (date et heure) et afficher le **projet** (id résolu par MAIL_TO ou AI_AGENT_TOKEN), la **branche** et le **répertoire de travail** du dépôt concerné (ia_dev ou dépôt du projet configuré) ;
|
||||
- Clôturer toute réponse en **appliquant intégralement** `.cursor/rules/cloture-evolution.mdc` /!\ TTRES IMPORTANT ET NON NEGOCIABLE, - **Périmètre** : la clôture est **toujours complète** pour **tous les agents** — sans exception. Aucune exception : même pour les agents qui ne modifient pas le code (ex. branch-align, push-by-script), les points 2 (5 sub-agents par projet), 14 (docupdate), 16 et 17 s’appliquent. C'est toujours applicable de 1 à 19. Lister toutes les actions réaliées et non réalisées dans tous les cas de tous les points.
|
||||
- Clôturer toute réponse en **appliquant intégralement** `.smartIde/rules/cloture-evolution.mdc` /!\ TTRES IMPORTANT ET NON NEGOCIABLE, - **Périmètre** : la clôture est **toujours complète** pour **tous les agents** — sans exception. Aucune exception : même pour les agents qui ne modifient pas le code (ex. branch-align, push-by-script), les points 2 (5 sub-agents par projet), 14 (docupdate), 16 et 17 s’appliquent. C'est toujours applicable de 1 à 19. Lister toutes les actions réaliées et non réalisées dans tous les cas de tous les points.
|
||||
|
||||
## Gestion de projet
|
||||
|
||||
@ -61,7 +61,7 @@ model: inherit
|
||||
* **Explication des modifications :** Accompagner toute modification de code ou de documentation d'une brève explication.
|
||||
* **Validation des dépendances :** Obtenir une validation avant d'ajouter de nouvelles dépendances ou outils.
|
||||
* **Résultats :** Ne présume pas de résultats non testés ou vérifiés.
|
||||
* **Rapports :** Ne fait pas de rapports apres tes actions autre que celui de `.cursor/rules/cloture-evolution.mdc`
|
||||
* **Rapports :** Ne fait pas de rapports apres tes actions autre que celui de `.smartIde/rules/cloture-evolution.mdc`
|
||||
|
||||
## Gestion des Fichiers
|
||||
|
||||
@ -70,7 +70,7 @@ model: inherit
|
||||
|
||||
## Mise à jour de ces règles
|
||||
|
||||
* **Lecture seule sur .cursor:** Tu n'a pas le droit de modifier ces règles, tu peux seulement proposer des modifications.
|
||||
* **Lecture seule sur .smartIde:** Tu n'a pas le droit de modifier ces règles, tu peux seulement proposer des modifications.
|
||||
|
||||
## Preparer au maximum à l'aide d'outils et de scripts
|
||||
|
||||
@ -56,7 +56,7 @@ Lancement : depuis la racine de ia_dev : `node ai_working_help/server.js`. Port
|
||||
|
||||
## Agents Cursor
|
||||
|
||||
- **notary-ai-loop** (`.cursor/agents/notary-ai-loop.md`) : orchestre la boucle (liste pending, lance notary-ai-process ; x cycles ou une fois).
|
||||
- **notary-ai-process** (`.cursor/agents/notary-ai-process.md`) : pour chaque pending, produit les 4 champs et appelle write-response-notary-ai.sh.
|
||||
- **notary-ai-loop** (`.smartIde/agents/notary-ai-loop.md`) : orchestre la boucle (liste pending, lance notary-ai-process ; x cycles ou une fois).
|
||||
- **notary-ai-process** (`.smartIde/agents/notary-ai-process.md`) : pour chaque pending, produit les 4 champs et appelle write-response-notary-ai.sh.
|
||||
|
||||
Les agents sont dans **.cursor/agents/**. À invoquer depuis la racine de ia_dev ; les scripts s'exécutent depuis la racine de ia_dev.
|
||||
Les agents sont dans **.smartIde/agents/**. À invoquer depuis la racine de ia_dev ; les scripts s'exécutent depuis la racine de ia_dev.
|
||||
|
||||
@ -16,18 +16,18 @@ L'agent ne doit **jamais révéler** :
|
||||
L'agent ne doit **jamais accéder ni modifier** :
|
||||
|
||||
- Les fichiers hors projet (périmètre = ia_dev et dépôt du projet configuré via conf.json)
|
||||
- Les fichiers dans `.cursor` et `.secrets`
|
||||
- Les fichiers dans `.smartIde` et `.secrets`
|
||||
- D'autres branches que celle en cours de travail
|
||||
- D'autres environnements (test / pprod / prod) que celui défini par le contexte
|
||||
|
||||
## Agents (.cursor/agents/)
|
||||
## Agents (.smartIde/agents/)
|
||||
|
||||
| Agent | Fichier | Rôle |
|
||||
|-------|---------|------|
|
||||
| **agent-loop** | `agent-loop.md` | Orchestre la boucle de récupération des mails et le traitement par **exécutions délimitées** uniquement (N itérations ou x cycles) ; ne lance jamais de processus en arrière-plan (nohup/&). |
|
||||
| **gitea-issues-process** | `gitea-issues-process.md` | Traite les issues Gitea et les mails en attente : liste les issues/mails, crée des branches, lance /fix ou /evol, /push-by-script ; workflow mails (fil, réponse réelle, marquage lu). |
|
||||
|
||||
Spooler tickets (nouveau) : mails dans **projects/<id>/data/issues/** (filtre par `tickets.authorized_emails` dans conf.json), pas de « non lu », aucun enregistrement supprimé. Format : `projects/ia_dev/docs/TICKETS_SPOOL_FORMAT.md`. Récupération : `./gitea-issues/tickets-fetch-inbox.sh`. Référence boucle mails (legacy) : `.cursor/agents/agent-loop.md`. Hook Cursor : `sessionStart` → `.cursor/hooks/remonter-mails.sh` (lit `projects/<id>/data/issues/*.pending`).
|
||||
Spooler tickets (nouveau) : mails dans **projects/<id>/data/issues/** (filtre par `tickets.authorized_emails` dans conf.json), pas de « non lu », aucun enregistrement supprimé. Format : `projects/ia_dev/docs/TICKETS_SPOOL_FORMAT.md`. Récupération : `./gitea-issues/tickets-fetch-inbox.sh`. Référence boucle mails (legacy) : `.smartIde/agents/agent-loop.md`. Hook Cursor : `sessionStart` → `.smartIde/hooks/remonter-mails.sh` (lit `projects/<id>/data/issues/*.pending`).
|
||||
|
||||
## Contexte d'exécution
|
||||
|
||||
@ -57,7 +57,7 @@ Spooler tickets (nouveau) : mails dans **projects/<id>/data/issues/** (filtre pa
|
||||
| `mail-mark-read.sh` | `./gitea-issues/mail-mark-read.sh <uid>` | Marque un mail comme lu. |
|
||||
| `mail-thread-log.sh` | `./gitea-issues/mail-thread-log.sh get-id \| init \| append-sent \| append-issue \| append-commit ...` | **Log par fil** : un fichier par conversation dans `projects/<id>/logs/gitea-issues/threads/` (échanges reçus/envoyés, tickets, commits). `get-id --uid <uid>` affiche `THREAD_ID=...` ; `init --uid <uid>` crée/met à jour le fichier ; `append-sent/issue/commit` enregistrent une réponse, une issue ou un commit. |
|
||||
| `mail-to-issue.sh` | `./gitea-issues/mail-to-issue.sh` | **Batch** : crée une issue par mail non lu (titre = sujet, corps = texte + From), marque lus. À éviter si on suit le workflow agent (voir ci‑dessous). |
|
||||
| `agent-loop.sh` | `./gitea-issues/agent-loop.sh [interval_sec]` | **Boucle de surveillance** : tourne indéfiniment (spooler ou legacy). **Ne pas lancer depuis l'agent** ; utiliser agent-loop-chat-iterations.sh ou cycles délimités. Voir `.cursor/agents/agent-loop.md`. |
|
||||
| `agent-loop.sh` | `./gitea-issues/agent-loop.sh [interval_sec]` | **Boucle de surveillance** : tourne indéfiniment (spooler ou legacy). **Ne pas lancer depuis l'agent** ; utiliser agent-loop-chat-iterations.sh ou cycles délimités. Voir `.smartIde/agents/agent-loop.md`. |
|
||||
| `agent-loop-treatment.sh` | `./gitea-issues/agent-loop-treatment.sh` | **Boucle traitement** : vérifie périodiquement `agent-loop.pending` ; si non vide, lance l'agent Cursor. Tourne indéfiniment ; **ne pas lancer depuis l'agent** (préférer agent-loop-chat-iterations.sh ou cycles délimités). |
|
||||
| `agent-loop-retrieval-once.sh` | `./gitea-issues/agent-loop-retrieval-once.sh` | **Récupération une fois** (legacy, basé non lu) : exécute `mail-list-unread.sh` et écrit dans `agent-loop.pending`. Utilisé par l'agent agent-loop pour les cycles « x fois ». |
|
||||
| `agent-loop-lock-acquire.sh` | `./gitea-issues/agent-loop-lock-acquire.sh` | **Lock (section 2)** : acquiert `agent-loop.lock` si absent ou périmé (>24 h). Exit 1 si lock actif ; l'agent ne doit pas lancer une deuxième instance. |
|
||||
@ -98,10 +98,10 @@ Le répertoire **projects/<id>/data/issues/** (spooler) est rempli **uniquement*
|
||||
|
||||
- Python 3 (stdlib : imaplib, email, smtplib, json, urllib).
|
||||
- Token Gitea : comme les autres scripts (`GITEA_TOKEN` ou `.secrets/gitea-issues/token`).
|
||||
- Config IMAP/SMTP : copier `gitea-issues/imap-bridge.env.example` vers `.secrets/gitea-issues/imap-bridge.env`. Pour la boucle agent (optionnel) : `agent-loop.env.example` vers `.secrets/gitea-issues/agent-loop.env` (voir `.cursor/agents/agent-loop.md`). Renseigner `IMAP_USER`, `IMAP_PASSWORD` (et optionnellement `SMTP_*` pour l'envoi ; par défaut SMTP reprend les mêmes host/port Bridge 1025). Optionnel : `MAIL_FILTER_TO=ai.support.lecoffreio@4nkweb.com` (seuls les mails envoyés à cette adresse sont listés) ; `MAIL_SINCE_DATE=10-Mar-2026` (seuls les mails à partir de cette date sont récupérés/listés).
|
||||
- Config IMAP/SMTP : copier `gitea-issues/imap-bridge.env.example` vers `.secrets/gitea-issues/imap-bridge.env`. Pour la boucle agent (optionnel) : `agent-loop.env.example` vers `.secrets/gitea-issues/agent-loop.env` (voir `.smartIde/agents/agent-loop.md`). Renseigner `IMAP_USER`, `IMAP_PASSWORD` (et optionnellement `SMTP_*` pour l'envoi ; par défaut SMTP reprend les mêmes host/port Bridge 1025). Optionnel : `MAIL_FILTER_TO=ai.support.lecoffreio@4nkweb.com` (seuls les mails envoyés à cette adresse sont listés) ; `MAIL_SINCE_DATE=10-Mar-2026` (seuls les mails à partir de cette date sont récupérés/listés).
|
||||
- Proton Mail Bridge (ou serveur IMAP/SMTP) en cours d'exécution.
|
||||
|
||||
**Scripts :** `mail-list-unread.sh`, `mail-get-thread.sh`, `mail-thread-log.sh`, `mail-send-reply.sh`, `mail-create-issue-from-email.sh`, `mail-mark-read.sh`. Le script batch `mail-to-issue.sh` reste disponible mais ne doit pas être utilisé dans le cadre du workflow agent (liste → lecture du fil → log du fil → décision → création/ réponse). Le script **`agent-loop.sh`** permet de lancer une boucle de surveillance des mails avec fichier témoin ; voir `.cursor/agents/agent-loop.md`.
|
||||
**Scripts :** `mail-list-unread.sh`, `mail-get-thread.sh`, `mail-thread-log.sh`, `mail-send-reply.sh`, `mail-create-issue-from-email.sh`, `mail-mark-read.sh`. Le script batch `mail-to-issue.sh` reste disponible mais ne doit pas être utilisé dans le cadre du workflow agent (liste → lecture du fil → log du fil → décision → création/ réponse). Le script **`agent-loop.sh`** permet de lancer une boucle de surveillance des mails avec fichier témoin ; voir `.smartIde/agents/agent-loop.md`.
|
||||
|
||||
## API Wiki (tests préalables)
|
||||
|
||||
|
||||
@ -26,12 +26,12 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
|
||||
| Type | Emplacement | Portée |
|
||||
|------|-------------|--------|
|
||||
| Règles | `.cursor/rules/*.mdc` | Projet |
|
||||
| Plans | `~/.cursor/plans/*.plan.md` | Utilisateur (utilisables depuis ce projet) |
|
||||
| Commandes projet | `.cursor/commands/*.md` | Projet (priorité sur global, invoquent plans utilisateur) |
|
||||
| Commandes globales | `~/.cursor/commands/*.md` | Utilisateur (tous projets) |
|
||||
| Subagents | `~/.cursor/agents/*.md` | Utilisateur (tous projets) |
|
||||
| Skills | `~/.cursor/skills-cursor/*/SKILL.md` | Utilisateur (tous projets) |
|
||||
| Règles | `.smartIde/rules/*.mdc` | Projet |
|
||||
| Plans | `~/.smartIde/plans/*.plan.md` | Utilisateur (utilisables depuis ce projet) |
|
||||
| Commandes projet | `.smartIde/commands/*.md` | Projet (priorité sur global, invoquent plans utilisateur) |
|
||||
| Commandes globales | `~/.smartIde/commands/*.md` | Utilisateur (tous projets) |
|
||||
| Subagents | `~/.smartIde/agents/*.md` | Utilisateur (tous projets) |
|
||||
| Skills | `~/.smartIde/skills-cursor/*/SKILL.md` | Utilisateur (tous projets) |
|
||||
|
||||
---
|
||||
|
||||
@ -40,7 +40,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
### 2.1 Workflow de clôture évolution / correction
|
||||
|
||||
**Déclencheur** : Fin de toute évolution ou correction.
|
||||
**Règle** : `.cursor/rules/cloture-evolution.mdc` (alwaysApply: true).
|
||||
**Règle** : `.smartIde/rules/cloture-evolution.mdc` (alwaysApply: true).
|
||||
|
||||
**Ordre d'exécution** : Chaque bloc est bouclé jusqu'à stabilisation (rien à optimiser). **Réponse non partielle** : répondre à toutes les questions de clôture et lancer les subagents/plans concernés.
|
||||
|
||||
@ -61,7 +61,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
|
||||
**Contraintes** : Déploiement uniquement après validation. Pas de tâches en arrière-plan.
|
||||
|
||||
**Plan** : `.cursor/plans/workflow-cloture-evolution.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-cloture-evolution.plan.md`
|
||||
**Commande** : `/cloture-evolution`
|
||||
**Référence** : `docs/README.md#consolidation-operationnelle-ex-operationsmd`.
|
||||
|
||||
@ -80,7 +80,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
| 3 | **En cas d'échec** : orchestrer la correction automatique (boucle jusqu'à succès ou impossibilité) : (a) analyser la cause (logs, journalctl, fichiers sur cible, dist) ; (b) corriger la root cause sans contournement ; (c) committer/pousser si besoin ; (d) relancer le script ; (e) répéter |
|
||||
|
||||
**Options CLI** : `--sync-origin`, `--no-sync-origin` (métier : `deploy.conf`). **Setup hôte** : `deploy/scripts_v2/run-setup-host.sh`, agent `/setup-host`. **Env** : `DEPLOY_SKIP_CONCURRENCY_CHECK=1` pour désactiver le hook pre-deploy.
|
||||
**Plan** : `.cursor/plans/workflow-deploy.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-deploy.plan.md`
|
||||
**Commande** : `/deploy <env>`
|
||||
**Référence** : docs/DEPLOYMENT.md, deploy/README.md.
|
||||
|
||||
@ -102,7 +102,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
**Règles applicables** : max-lines 250, max-lines-per-function 40, max-params 4, max-depth 4, complexity 10, max-nested-callbacks 3.
|
||||
|
||||
**Contournement mcp_task** : `subagent_type="fix-lint"` via mcp_task échoue ; utiliser `generalPurpose` avec prompt détaillé. Voir la consolidation dans `docs/README.md`.
|
||||
**Plan** : `.cursor/plans/workflow-fix-lint.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-fix-lint.plan.md`
|
||||
**Commande** : `/fix-lint`
|
||||
|
||||
---
|
||||
@ -118,7 +118,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
| 3 | `git push` (sans déclencher CI si règle projet) |
|
||||
|
||||
**Format commit** : Titre court ; sections en bullets ; pas de `--no-verify` sauf cas documenté.
|
||||
**Plan** : `.cursor/plans/workflow-pousse.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-pousse.plan.md`
|
||||
**Commande** : `/pousse`
|
||||
|
||||
---
|
||||
@ -132,7 +132,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
**docs/fixKnowledge extract** : Extraire données de docs/fixKnowledge vers docs/ ; supprimer docs/fixKnowledge.
|
||||
|
||||
**docs/ cleanup** : Réunir et optimiser en max 20 documents ; supprimer infos fausses/obsolètes ; ventiler dans doc existante (pas de FEATURES.md ni FIXKNOWLEDGE.md).
|
||||
**Plan** : `.cursor/plans/workflow-docupdate.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-docupdate.plan.md`
|
||||
**Commande** : `/docupdate`
|
||||
|
||||
---
|
||||
@ -144,7 +144,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
**Processus** : Analyse surface d'attaque ; revue OWASP Top 10 ; évaluation risque ; recommandations ; checklist Security Headers.
|
||||
|
||||
**Format rapport** : [SEVERITY] Titre ; Location ; Description ; Impact ; Reproduction ; Remediation ; Références.
|
||||
**Plan** : `.cursor/plans/workflow-audit-security.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-audit-security.plan.md`
|
||||
**Commande** : `/audit-security`
|
||||
|
||||
---
|
||||
@ -154,7 +154,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
**Déclencheur** : Commande `/lintit`.
|
||||
|
||||
**Processus** : Vérifier règles qualité ; liste actions à mener. Couvre : analyse préalable, non-duplication, généricité, design patterns, gestion erreurs, interdiction fallback, interdiction facilités IA ; corriger erreurs et warnings lint sans contournement.
|
||||
**Plan** : `.cursor/plans/workflow-lintit.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-lintit.plan.md`
|
||||
**Commande** : `/lintit`
|
||||
|
||||
---
|
||||
@ -166,7 +166,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
**Processus** : Aligner test, pprod, prod (sauf `<env>`) sur la branche de `<env>` sans modifier `<env>`. Merge en conflit : `<env>` prioritaire. Stash si conflits. Vérifier 30 derniers commits équivalents.
|
||||
|
||||
**Résultat** : origin/test, origin/pprod, origin/prod au même commit ; branches locales à jour.
|
||||
**Plan** : `.cursor/plans/workflow-banch-align.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-banch-align.plan.md`
|
||||
**Commande** : `/banch-align <env>`
|
||||
|
||||
---
|
||||
@ -176,14 +176,14 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
**Déclencheur** : Commande `/banch-align-update <env>`.
|
||||
|
||||
**Processus** : Aligner branche actuelle sur `<env>` sans modifier `<env>`. Stash avant ; liste modifications ; confirmation. Branche locale alignée sur commits de `<env>` ; reste sur même branche.
|
||||
**Plan** : `.cursor/plans/workflow-banch-align-update.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-banch-align-update.plan.md`
|
||||
**Commande** : `/banch-align-update <env>`
|
||||
|
||||
---
|
||||
|
||||
## 3. Plans Cursor (déclenchables)
|
||||
|
||||
Les workflows sont migrés en plans Cursor stockés au niveau utilisateur (`~/.cursor/plans/`) et déclenchables via les commandes projet `.cursor/commands/`.
|
||||
Les workflows sont migrés en plans Cursor stockés au niveau utilisateur (`~/.smartIde/plans/`) et déclenchables via les commandes projet `.smartIde/commands/`.
|
||||
|
||||
### Format Cursor attendu
|
||||
|
||||
@ -207,16 +207,16 @@ Les workflows sont migrés en plans Cursor stockés au niveau utilisateur (`~/.c
|
||||
### Déclenchement
|
||||
|
||||
- **Commande** : Taper `/` dans le chat puis le nom (ex. `/cloture-evolution`, `/deploy test`)
|
||||
- **Plan mode** : Shift+Tab pour créer un plan ; ouvrir `~/.cursor/plans/workflow-*.plan.md` et cliquer « Build » pour exécuter
|
||||
- **Priorité** : Les commandes projet (`.cursor/commands/`) ont priorité sur les commandes globales (`~/.cursor/commands/`)
|
||||
- **Plan mode** : Shift+Tab pour créer un plan ; ouvrir `~/.smartIde/plans/workflow-*.plan.md` et cliquer « Build » pour exécuter
|
||||
- **Priorité** : Les commandes projet (`.smartIde/commands/`) ont priorité sur les commandes globales (`~/.smartIde/commands/`)
|
||||
|
||||
**Référence** : .cursor/plans/README.md, ~/.cursor/plans/
|
||||
**Référence** : .smartIde/plans/README.md, ~/.smartIde/plans/
|
||||
|
||||
---
|
||||
|
||||
## 4. Composants : Règles
|
||||
|
||||
**Emplacement** : `.cursor/rules/*.mdc` (projet).
|
||||
**Emplacement** : `.smartIde/rules/*.mdc` (projet).
|
||||
|
||||
| Règle | Description | alwaysApply |
|
||||
|-------|-------------|-------------|
|
||||
@ -232,7 +232,7 @@ Les workflows sont migrés en plans Cursor stockés au niveau utilisateur (`~/.c
|
||||
|
||||
## 5. Composants : Subagents
|
||||
|
||||
**Emplacement** : `~/.cursor/agents/*.md` (utilisateur).
|
||||
**Emplacement** : `~/.smartIde/agents/*.md` (utilisateur).
|
||||
|
||||
| Subagent | Description | is_background | mcp_task |
|
||||
|----------|-------------|---------------|----------|
|
||||
@ -241,17 +241,17 @@ Les workflows sont migrés en plans Cursor stockés au niveau utilisateur (`~/.c
|
||||
|
||||
**Invocation** : `/deploy`, `/fix-lint` ou « Utilise le subagent X » dans le chat.
|
||||
|
||||
**Tâches de fond** : fix-lint avec `is_background: true` retourne immédiatement ; écrit état dans `~/.cursor/subagents/` ; reprise possible via ID.
|
||||
**Tâches de fond** : fix-lint avec `is_background: true` retourne immédiatement ; écrit état dans `~/.smartIde/subagents/` ; reprise possible via ID.
|
||||
|
||||
**Référence** : ~/.cursor/agents/README.md.
|
||||
**Référence** : ~/.smartIde/agents/README.md.
|
||||
|
||||
---
|
||||
|
||||
## 6. Composants : Commandes
|
||||
|
||||
**Emplacements** : `.cursor/commands/*.md` (projet, priorité) ; `~/.cursor/commands/*.md` (global).
|
||||
**Emplacements** : `.smartIde/commands/*.md` (projet, priorité) ; `~/.smartIde/commands/*.md` (global).
|
||||
|
||||
Les commandes projet invoquent les plans `.cursor/plans/*.plan.md`.
|
||||
Les commandes projet invoquent les plans `.smartIde/plans/*.plan.md`.
|
||||
|
||||
| Commande | Description |
|
||||
|----------|-------------|
|
||||
@ -270,7 +270,7 @@ Les commandes projet invoquent les plans `.cursor/plans/*.plan.md`.
|
||||
|
||||
## 7. Composants : Skills
|
||||
|
||||
**Emplacement** : `~/.cursor/skills-cursor/*/SKILL.md` (utilisateur).
|
||||
**Emplacement** : `~/.smartIde/skills-cursor/*/SKILL.md` (utilisateur).
|
||||
|
||||
| Skill | Description |
|
||||
|-------|-------------|
|
||||
|
||||
@ -123,7 +123,7 @@
|
||||
| `deploy/scripts_v2/deploy.sh` | Par défaut `--sync-origin` ; tee toujours `logs/deploy_*.log` ; `--no-sync-origin` ; métier `deploy.conf` |
|
||||
| `deploy/pousse.sh` | **Ré-exéc depuis racine** si besoin ; option --bump-version ; build check (ressources, backend, frontend) avant staging |
|
||||
| `deploy/change-to-all-branches.sh` | Vérif branche test, branch-align.sh test, orchestrateur ou deploy.sh test --no-sync-origin |
|
||||
| Agents .cursor/agents/*.md | Adapter les consignes pour utiliser les nouvelles options/scripts et alléger les étapes redondantes |
|
||||
| Agents .smartIde/agents/*.md | Adapter les consignes pour utiliser les nouvelles options/scripts et alléger les étapes redondantes |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ Après `npm run lint:fix`, les erreurs ESLint non auto-fixables sont traitées p
|
||||
- Fonctions > 40 lignes et complexité > 10 : extraction systématique (FolderNotaryAIController, FolderNotaryAIContextBuilder, decisionHandlers, ruleMatcher, EmailBuilder, services notary/common).
|
||||
- Constructeurs et méthodes > 4 paramètres : classes @Service de dépendances ou types d’options.
|
||||
|
||||
Vérification : `npm run lint`, `npm run lint:fix` dans lecoffre-back-main. Référence : `.cursor/rules/cloture-evolution.mdc`, agent fix-lint.
|
||||
Vérification : `npm run lint`, `npm run lint:fix` dans lecoffre-back-main. Référence : `.smartIde/rules/cloture-evolution.mdc`, agent fix-lint.
|
||||
|
||||
### Historique des correctifs lint (batches)
|
||||
|
||||
@ -45,7 +45,7 @@ Vérification : `npm run lint`, `npm run lint:fix` dans lecoffre-back-main. Réf
|
||||
|
||||
## Exécution exhaustive des agents lancés
|
||||
|
||||
Tout agent sous `.cursor/agents` doit veiller à l'exécution exhaustive des agents qu'il lance (ou des phases qu'il exécute) : vérification avant clôture ; en cas d'incomplétude : pas de clôture, documenter les manques, améliorer les instructions, relancer jusqu'à exécution exhaustive.
|
||||
Tout agent sous `.smartIde/agents` doit veiller à l'exécution exhaustive des agents qu'il lance (ou des phases qu'il exécute) : vérification avant clôture ; en cas d'incomplétude : pas de clôture, documenter les manques, améliorer les instructions, relancer jusqu'à exécution exhaustive.
|
||||
|
||||
- **Agents de délégation** (agent-loop, fix, evol, docupdate, push-by-script, fix-search, deploy-by-script, fix-lint, gitea-issues-process, code, branch-align-by-script-from-test, change-to-all-branches, deploy-pprod-or-prod, notary-ai-process, notary-ai-loop) : section « Exécution exhaustive des agents lancés » avec vérification obligatoire avant clôture ; en cas d'incomplétude : 1) ne pas clôturer et documenter, 2) améliorer les instructions, 3) relancer l'agent concerné.
|
||||
- **Agent E2E** (e2e-lecoffre-notary-full / `e2e-test`) : même logique sur les phases applicables — 1–12 en test/pprod ; 1–7 et 9–11 en prod (sans notaire invité). Prérequis **user-profil** documenté dans `docs/features/user-profil-and-e2e-environments.md`.
|
||||
|
||||
@ -27,12 +27,12 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
|
||||
| Type | Emplacement | Portée |
|
||||
|------|-------------|--------|
|
||||
| Règles | `.cursor/rules/*.mdc` | Projet |
|
||||
| Plans | `~/.cursor/plans/*.plan.md` | Utilisateur (utilisables depuis ce projet) |
|
||||
| Commandes projet | `.cursor/commands/*.md` | Projet (priorité sur global, invoquent plans utilisateur) |
|
||||
| Commandes globales | `~/.cursor/commands/*.md` | Utilisateur (tous projets) |
|
||||
| Subagents | `~/.cursor/agents/*.md` | Utilisateur (tous projets) |
|
||||
| Skills | `~/.cursor/skills-cursor/*/SKILL.md` | Utilisateur (tous projets) |
|
||||
| Règles | `.smartIde/rules/*.mdc` | Projet |
|
||||
| Plans | `~/.smartIde/plans/*.plan.md` | Utilisateur (utilisables depuis ce projet) |
|
||||
| Commandes projet | `.smartIde/commands/*.md` | Projet (priorité sur global, invoquent plans utilisateur) |
|
||||
| Commandes globales | `~/.smartIde/commands/*.md` | Utilisateur (tous projets) |
|
||||
| Subagents | `~/.smartIde/agents/*.md` | Utilisateur (tous projets) |
|
||||
| Skills | `~/.smartIde/skills-cursor/*/SKILL.md` | Utilisateur (tous projets) |
|
||||
|
||||
---
|
||||
|
||||
@ -41,7 +41,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
### 2.1 Workflow de clôture évolution / correction
|
||||
|
||||
**Déclencheur** : Fin de toute évolution ou correction.
|
||||
**Règle** : `.cursor/rules/cloture-evolution.mdc` (alwaysApply: true).
|
||||
**Règle** : `.smartIde/rules/cloture-evolution.mdc` (alwaysApply: true).
|
||||
|
||||
**Ordre d'exécution** : Chaque bloc est bouclé jusqu'à stabilisation (rien à optimiser). **Réponse non partielle** : répondre à toutes les questions de clôture et lancer les subagents/plans concernés.
|
||||
|
||||
@ -62,7 +62,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
|
||||
**Contraintes** : Déploiement uniquement après validation. Pas de tâches en arrière-plan.
|
||||
|
||||
**Plan** : `.cursor/plans/workflow-cloture-evolution.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-cloture-evolution.plan.md`
|
||||
**Commande** : `/cloture-evolution`
|
||||
**Référence** : `docs/README.md#consolidation-operationnelle-ex-operationsmd`.
|
||||
|
||||
@ -81,7 +81,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
| 3 | **En cas d'échec** : orchestrer la correction automatique (boucle jusqu'à succès ou impossibilité) : (a) analyser la cause (logs, journalctl, fichiers sur cible, dist) ; (b) corriger la root cause sans contournement ; (c) committer/pousser si besoin ; (d) relancer le script ; (e) répéter |
|
||||
|
||||
**Options CLI** : `--sync-origin`, `--no-sync-origin` (métier : `deploy.conf` par env). **Setup hôte** : `deploy/scripts_v2/run-setup-host.sh`, agent `/setup-host`. **Env** : `DEPLOY_SKIP_CONCURRENCY_CHECK=1` pour désactiver le hook pre-deploy.
|
||||
**Plan** : `.cursor/plans/workflow-deploy.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-deploy.plan.md`
|
||||
**Commande** : `/deploy <env>`
|
||||
**Référence** : docs/DEPLOYMENT.md, deploy/README.md.
|
||||
|
||||
@ -103,7 +103,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
**Règles applicables** : max-lines 250, max-lines-per-function 40, max-params 4, max-depth 4, complexity 10, max-nested-callbacks 3.
|
||||
|
||||
**Contournement mcp_task** : `subagent_type="fix-lint"` via mcp_task échoue ; utiliser `generalPurpose` avec prompt détaillé. Voir la consolidation dans `docs/README.md`.
|
||||
**Plan** : `.cursor/plans/workflow-fix-lint.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-fix-lint.plan.md`
|
||||
**Commande** : `/fix-lint`
|
||||
|
||||
---
|
||||
@ -119,7 +119,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
| 3 | `git push` (sans déclencher CI si règle projet) |
|
||||
|
||||
**Format commit** : Titre court ; sections en bullets ; pas de `--no-verify` sauf cas documenté.
|
||||
**Plan** : `.cursor/plans/workflow-pousse.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-pousse.plan.md`
|
||||
**Commande** : `/pousse`
|
||||
|
||||
---
|
||||
@ -133,7 +133,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
**docs/fixKnowledge extract** : Extraire données de docs/fixKnowledge vers docs/ ; supprimer docs/fixKnowledge.
|
||||
|
||||
**docs/ cleanup** : Réunir et optimiser en max 20 documents ; supprimer infos fausses/obsolètes ; ventiler dans doc existante (pas de FEATURES.md ni FIXKNOWLEDGE.md).
|
||||
**Plan** : `.cursor/plans/workflow-docupdate.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-docupdate.plan.md`
|
||||
**Commande** : `/docupdate`
|
||||
|
||||
---
|
||||
@ -145,7 +145,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
**Processus** : Analyse surface d'attaque ; revue OWASP Top 10 ; évaluation risque ; recommandations ; checklist Security Headers.
|
||||
|
||||
**Format rapport** : [SEVERITY] Titre ; Location ; Description ; Impact ; Reproduction ; Remediation ; Références.
|
||||
**Plan** : `.cursor/plans/workflow-audit-security.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-audit-security.plan.md`
|
||||
**Commande** : `/audit-security`
|
||||
|
||||
---
|
||||
@ -155,7 +155,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
**Déclencheur** : Commande `/lintit`.
|
||||
|
||||
**Processus** : Vérifier règles qualité ; liste actions à mener. Couvre : analyse préalable, non-duplication, généricité, design patterns, gestion erreurs, interdiction fallback, interdiction facilités IA ; corriger erreurs et warnings lint sans contournement.
|
||||
**Plan** : `.cursor/plans/workflow-lintit.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-lintit.plan.md`
|
||||
**Commande** : `/lintit`
|
||||
|
||||
---
|
||||
@ -167,7 +167,7 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
**Processus** : Aligner test, pprod, prod (sauf `<env>`) sur la branche de `<env>` sans modifier `<env>`. Merge en conflit : `<env>` prioritaire. Stash si conflits. Vérifier 30 derniers commits équivalents.
|
||||
|
||||
**Résultat** : origin/test, origin/pprod, origin/prod au même commit ; branches locales à jour.
|
||||
**Plan** : `.cursor/plans/workflow-banch-align.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-banch-align.plan.md`
|
||||
**Commande** : `/banch-align <env>`
|
||||
|
||||
---
|
||||
@ -177,14 +177,14 @@ Ce document formalise chaque workflow et chaque composant utilisés par l'IA pou
|
||||
**Déclencheur** : Commande `/banch-align-update <env>`.
|
||||
|
||||
**Processus** : Aligner branche actuelle sur `<env>` sans modifier `<env>`. Stash avant ; liste modifications ; confirmation. Branche locale alignée sur commits de `<env>` ; reste sur même branche.
|
||||
**Plan** : `.cursor/plans/workflow-banch-align-update.plan.md`
|
||||
**Plan** : `.smartIde/plans/workflow-banch-align-update.plan.md`
|
||||
**Commande** : `/banch-align-update <env>`
|
||||
|
||||
---
|
||||
|
||||
## 3. Plans Cursor (déclenchables)
|
||||
|
||||
Les workflows sont migrés en plans Cursor stockés au niveau utilisateur (`~/.cursor/plans/`) et déclenchables via les commandes projet `.cursor/commands/`.
|
||||
Les workflows sont migrés en plans Cursor stockés au niveau utilisateur (`~/.smartIde/plans/`) et déclenchables via les commandes projet `.smartIde/commands/`.
|
||||
|
||||
### Format Cursor attendu
|
||||
|
||||
@ -208,16 +208,16 @@ Les workflows sont migrés en plans Cursor stockés au niveau utilisateur (`~/.c
|
||||
### Déclenchement
|
||||
|
||||
- **Commande** : Taper `/` dans le chat puis le nom (ex. `/cloture-evolution`, `/deploy test`)
|
||||
- **Plan mode** : Shift+Tab pour créer un plan ; ouvrir `~/.cursor/plans/workflow-*.plan.md` et cliquer « Build » pour exécuter
|
||||
- **Priorité** : Les commandes projet (`.cursor/commands/`) ont priorité sur les commandes globales (`~/.cursor/commands/`)
|
||||
- **Plan mode** : Shift+Tab pour créer un plan ; ouvrir `~/.smartIde/plans/workflow-*.plan.md` et cliquer « Build » pour exécuter
|
||||
- **Priorité** : Les commandes projet (`.smartIde/commands/`) ont priorité sur les commandes globales (`~/.smartIde/commands/`)
|
||||
|
||||
**Référence** : .cursor/plans/README.md, ~/.cursor/plans/
|
||||
**Référence** : .smartIde/plans/README.md, ~/.smartIde/plans/
|
||||
|
||||
---
|
||||
|
||||
## 4. Composants : Règles
|
||||
|
||||
**Emplacement** : `.cursor/rules/*.mdc` (projet).
|
||||
**Emplacement** : `.smartIde/rules/*.mdc` (projet).
|
||||
|
||||
| Règle | Description | alwaysApply |
|
||||
|-------|-------------|-------------|
|
||||
@ -233,7 +233,7 @@ Les workflows sont migrés en plans Cursor stockés au niveau utilisateur (`~/.c
|
||||
|
||||
## 5. Composants : Subagents
|
||||
|
||||
**Emplacement** : `~/.cursor/agents/*.md` (utilisateur).
|
||||
**Emplacement** : `~/.smartIde/agents/*.md` (utilisateur).
|
||||
|
||||
| Subagent | Description | is_background | mcp_task |
|
||||
|----------|-------------|---------------|----------|
|
||||
@ -242,17 +242,17 @@ Les workflows sont migrés en plans Cursor stockés au niveau utilisateur (`~/.c
|
||||
|
||||
**Invocation** : `/deploy`, `/fix-lint` ou « Utilise le subagent X » dans le chat.
|
||||
|
||||
**Tâches de fond** : fix-lint avec `is_background: true` retourne immédiatement ; écrit état dans `~/.cursor/subagents/` ; reprise possible via ID.
|
||||
**Tâches de fond** : fix-lint avec `is_background: true` retourne immédiatement ; écrit état dans `~/.smartIde/subagents/` ; reprise possible via ID.
|
||||
|
||||
**Référence** : ~/.cursor/agents/README.md.
|
||||
**Référence** : ~/.smartIde/agents/README.md.
|
||||
|
||||
---
|
||||
|
||||
## 6. Composants : Commandes
|
||||
|
||||
**Emplacements** : `.cursor/commands/*.md` (projet, priorité) ; `~/.cursor/commands/*.md` (global).
|
||||
**Emplacements** : `.smartIde/commands/*.md` (projet, priorité) ; `~/.smartIde/commands/*.md` (global).
|
||||
|
||||
Les commandes projet invoquent les plans `.cursor/plans/*.plan.md`.
|
||||
Les commandes projet invoquent les plans `.smartIde/plans/*.plan.md`.
|
||||
|
||||
| Commande | Description |
|
||||
|----------|-------------|
|
||||
@ -271,7 +271,7 @@ Les commandes projet invoquent les plans `.cursor/plans/*.plan.md`.
|
||||
|
||||
## 7. Composants : Skills
|
||||
|
||||
**Emplacement** : `~/.cursor/skills-cursor/*/SKILL.md` (utilisateur).
|
||||
**Emplacement** : `~/.smartIde/skills-cursor/*/SKILL.md` (utilisateur).
|
||||
|
||||
| Skill | Description |
|
||||
|-------|-------------|
|
||||
|
||||
@ -123,7 +123,7 @@
|
||||
| `deploy/scripts_v2/deploy.sh` | Par défaut sync `--sync-origin` ; tee toujours vers `logs/deploy_*.log` ; `--no-sync-origin` pour désactiver le sync local ; métier uniquement `deploy.conf` |
|
||||
| `deploy/pousse.sh` | **Ré-exéc depuis racine** si besoin ; option --bump-version ; build check (ressources, backend, frontend) avant staging |
|
||||
| `deploy/change-to-all-branches.sh` | Vérif branche test, branch-align.sh test, orchestrateur ou deploy.sh test --no-sync-origin ; logs `./logs/` |
|
||||
| Agents .cursor/agents/*.md | Adapter les consignes pour utiliser les nouvelles options/scripts et alléger les étapes redondantes |
|
||||
| Agents .smartIde/agents/*.md | Adapter les consignes pour utiliser les nouvelles options/scripts et alléger les étapes redondantes |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user