Cursor rules and agents: project context, execution root, absolute paths
**Motivations:** - Unify project/branch and config path at start and end of each agent. - Ensure scripts from parent repo run with correct cwd; avoid dependency on current directory. **Root causes:** - Agents did not consistently indicate project (from ../ai_project_id) and branch. - Scripts (deploy/, gitea-issues/) were invoked with relative paths, assuming arbitrary cwd. **Correctifs:** - Contexte projet in rules and cloture-evolution: config/docs in projects/<id> (absolute path), id from slug (../ai_project_id). - Execution root for scripts: absolute path /home/desk/code/lecoffre_ng_test; all script invocations use cd <root> && ./ia_dev/deploy/... or ./ia_dev/gitea-issues/... **Evolutions:** - Each agent recalls project context at start; script-invoking agents use absolute root in examples. **Pages affectées:** - .cursor/rules/rules.mdc, .cursor/rules/cloture-evolution.mdc - .cursor/agents/*.md (evol, fix, fix-search, fix-lint, code, docupdate, push-by-script, deploy-by-script, branch-align-by-script-from-test, change-to-all-branches, gitea-issues-process)
This commit is contained in:
parent
48ade72e60
commit
046f32c995
@ -7,6 +7,8 @@ is_background: false
|
||||
|
||||
# Agent branch-align-by-script-from-test
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin en début d'exécution.
|
||||
|
||||
Tu alignes les branches distantes du projet (test, pprod, prod) en exécutant le script deploy/branch-align.sh avec **test** en paramètre par défaut. **Rôle de l’agent :** vérifications (prérequis), ordre des étapes (push → docupdate → script), relances en cas d’erreur remontée par les sous-agents, synthèse et clôture. **Rôle du script :** exécution déterministe (fetch, force-push, vérifications git). Push direct sur les branches distantes ; aucun script ni agent ne crée de pull request.
|
||||
|
||||
**Focus qualité et résolution de problèmes :**
|
||||
@ -33,7 +35,7 @@ Lors de l'invocation :
|
||||
|
||||
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).
|
||||
|
||||
5. Puis exécuter le script avec l'argument env. Par défaut env est « test » sauf si l'utilisateur en précise un autre (main, pprod ou prod) : `./deploy/branch-align.sh <env>`.
|
||||
5. Puis exécuter depuis la racine du dépôt projet (chemin absolu) : `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/deploy/branch-align.sh <env>`. Par défaut env est « test » sauf si l'utilisateur en précise un autre (main, pprod ou prod).
|
||||
|
||||
6. Le **script** branch-align.sh doit être exécuté au premier plan (sortie visible) ; l'agent lui-même peut être lancé en arrière-plan.
|
||||
|
||||
|
||||
@ -4,6 +4,8 @@ model: inherit
|
||||
description: Uniquement en test, lance /push-by-script puis deploy/change-to-all-branches.sh (alignement + déploiement test).
|
||||
---
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin en début d'exécution.
|
||||
|
||||
**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, deploy.sh test --import-v1 --skipSetupHost --no-sync-origin ; log dans logs/ par défaut).
|
||||
|
||||
**Focus qualité et résolution de problèmes :**
|
||||
@ -22,6 +24,6 @@ Si la branche locale actuelle n'est pas test, retourner 1.
|
||||
Uniquement en test (branche git), exécuter dans l'ordre :
|
||||
|
||||
1. **/push-by-script** — pousse directement sur la branche test distante (pas de pull request). Message de commit fourni par l'agent.
|
||||
2. **./deploy/change-to-all-branches.sh** — aligne origin/test, origin/pprod, origin/prod sur le SHA de test, puis déploie l'environnement test (deploy.sh avec --import-v1 --skipSetupHost --no-sync-origin ; log dans logs/ par défaut). Le script vérifie qu'on est sur la branche test et se ré-exécute depuis la racine si besoin. Push direct uniquement ; aucun script ni agent ne crée de pull request.
|
||||
2. **Exécuter depuis la racine projet (chemin absolu)** : `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/deploy/change-to-all-branches.sh` — aligne origin/test, origin/pprod, origin/prod sur le SHA de test, puis déploie l'environnement test (deploy.sh avec --import-v1 --skipSetupHost --no-sync-origin ; log dans logs/ par défaut). Push direct uniquement ; aucun script ni agent ne crée de pull request.
|
||||
|
||||
Retourner 0 en cas de succès. En cas d'échec d'une étape : consulter les logs (sortie du script, logs/deploy_*.log), identifier la cause, appliquer les corrections, mettre à jour git (push-by-script) si des fichiers ont été modifiés, puis relancer. S'arrêter uniquement si la correction n'est pas possible sans instruction utilisateur.
|
||||
|
||||
@ -7,6 +7,8 @@ is_background: false
|
||||
|
||||
# Agent code (qualité du code et bonnes pratiques)
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin en début d'exécution.
|
||||
|
||||
Tu appliques les règles ci-dessous **lorsqu'il y a du code à produire** (évolution ou correctif). Les agents evol et fix invoquent cet agent dans ce cas.
|
||||
|
||||
## Liste ordonnée d'actions obligatoires pour coder
|
||||
@ -71,7 +73,7 @@ Tu appliques les règles ci-dessous **lorsqu'il y a du code à produire** (évol
|
||||
20. Lancer obligatoirement un lint
|
||||
Utiliser l'agent `.cursor/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.
|
||||
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 `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/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) :
|
||||
|
||||
|
||||
@ -7,6 +7,8 @@ is_background: false
|
||||
|
||||
# Déploiement par script (deploy-by-script)
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin en début d'exécution.
|
||||
|
||||
Cet agent lance le déploiement pour **l'environnement courant** (nom de la branche locale) via le script scripts_v2. **Rôle de l'agent :** vérifier le contexte (branche = env cible), 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).
|
||||
|
||||
**Focus qualité et résolution de problèmes :**
|
||||
@ -28,10 +30,10 @@ Cet agent lance le déploiement pour **l'environnement courant** (nom de la bran
|
||||
|
||||
Le script applique **par défaut** une exécution standardisée : sync avec origin (--sync-origin) et log dans `logs/` (--log-to-dir logs). Options --no-sync-origin et --no-log pour désactiver.
|
||||
|
||||
Depuis la racine du projet (ou tout sous-dossier), exécuter au premier plan sans masquer la sortie :
|
||||
Exécuter depuis la racine du dépôt projet (chemin absolu, pour ne pas dépendre du répertoire courant) :
|
||||
|
||||
```bash
|
||||
./deploy/scripts_v2/deploy.sh $(git branch --show-current) --import-v1 --skipSetupHost
|
||||
cd /home/desk/code/lecoffre_ng_test && ./deploy/scripts_v2/deploy.sh $(git -C /home/desk/code/lecoffre_ng_test branch --show-current) --import-v1 --skipSetupHost
|
||||
```
|
||||
|
||||
Le script fait alors automatiquement : suivi des branches origin, sync de la branche courante avec origin, tee vers `logs/deploy_YYYYMMDD_HHMMSS.log`, puis déploiement.
|
||||
|
||||
@ -7,6 +7,8 @@ is_background: false
|
||||
|
||||
# docupdate
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin en début d'exécution.
|
||||
|
||||
**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).
|
||||
|
||||
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.
|
||||
@ -28,21 +30,21 @@ Ce document **centralise toutes les informations** sur la documentation du proje
|
||||
* **Objectif des travaux :** Se concentrer sur la réalisation de la liste des tâches décrite dans `docs/todoFix/` et la documentation (wiki).
|
||||
* **Structure de la documentation :**
|
||||
* La documentation générale et pérenne se trouve dans le **wiki** du projet (URL dans `projects/<slug>.json` → `git.wiki_url`). Page d'accueil du wiki : **Home**.
|
||||
* Pour mettre à jour le wiki : modifier le fichier correspondant dans `docs/` puis exécuter `./gitea-issues/wiki-migrate-docs.sh` ; ou éditer la page directement sur le wiki. Correspondance fichier → page : voir `gitea-issues/README.md` (section Migration docs/ → wiki).
|
||||
* Pour mettre à jour le wiki : modifier le fichier correspondant dans `docs/` puis exécuter depuis la racine projet (chemin absolu) : `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/gitea-issues/wiki-migrate-docs.sh` ; ou éditer la page directement sur le wiki. Correspondance fichier → page : voir `gitea-issues/README.md` (section Migration docs/ → wiki).
|
||||
* **`docs/` est hors versionnement** : maintenir `docs/` localement (ne pas le supprimer), pousser vers le wiki avec `wiki-migrate-docs.sh` après édition ; ne jamais committer `docs/`.
|
||||
* Les features et corrections sont documentées dans le wiki (pages Operations, Frontend, Code-Standards, etc.) ; les tâches en cours dans `docs/todoFix/`.
|
||||
* Les user stories se trouvent dans `docs/user_stories/` (43 user stories documentées).
|
||||
* **User Stories :** Consulter `docs/user_stories/INDEX.md` pour la liste complète et les dépendances. Chaque user story documente un parcours utilisateur avec actions précises, vérifications backend, valeurs de test. Utiliser comme référence pour l'autonomie du développement.
|
||||
* **Qualité et sécurité :** Consulter les pages wiki correspondantes (ex. Code-Standards) ou `docs/` si présents.
|
||||
* **Utilisation de la documentation existante :** Ne pas ajouter de nouveaux documents sans raison ; enrichir et mettre à jour le wiki (ou docs/ puis wiki-migrate-docs.sh).
|
||||
* **Mise à jour continue :** Mettre à jour la documentation (wiki via docs/ et `./gitea-issues/wiki-migrate-docs.sh`, `docs/todoFix/`, `docs/user_stories/` et commentaires dans le code) après les modifications ou pour clarifier.
|
||||
* **Mise à jour continue :** Mettre à jour la documentation (wiki via docs/ et `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/gitea-issues/wiki-migrate-docs.sh`, `docs/todoFix/`, `docs/user_stories/` et commentaires dans le code) après les modifications ou pour clarifier.
|
||||
* **Changelog :** Le fichier `CHANGELOG.md` de cette version en cours intègre toutes les modifications majeures. Ce contenu est repris dans la splash notice de l'application front. Les mises à jour mineures sont ajoutées au `CHANGELOG.md` sans enlever d'élément existant.
|
||||
|
||||
## docs/features extract
|
||||
|
||||
Dans l'ordre et pour tous les documents de docs/features :
|
||||
|
||||
1) Extraire toutes les données pertinentes des documents de docs/features et les intégrer dans les pages wiki existantes (mettre à jour les fichiers correspondants dans docs/ puis exécuter ./gitea-issues/wiki-migrate-docs.sh).
|
||||
1) Extraire toutes les données pertinentes des documents de docs/features et les intégrer dans les pages wiki existantes (mettre à jour les fichiers correspondants dans docs/ puis exécuter `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/gitea-issues/wiki-migrate-docs.sh`).
|
||||
|
||||
2) Supprimer tous les fichiers dans docs/features
|
||||
|
||||
@ -50,7 +52,7 @@ Dans l'ordre et pour tous les documents de docs/features :
|
||||
|
||||
Dans l'ordre et pour tous les documents de docs/fixKnowledge :
|
||||
|
||||
1) Extraire toutes les données pertinentes des documents de docs/fixKnowledge et les intégrer dans les pages wiki existantes (mettre à jour docs/ puis ./gitea-issues/wiki-migrate-docs.sh).
|
||||
1) Extraire toutes les données pertinentes des documents de docs/fixKnowledge et les intégrer dans les pages wiki existantes (mettre à jour docs/ puis `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/gitea-issues/wiki-migrate-docs.sh`).
|
||||
|
||||
2) Supprimer tous les fichiers dans docs/fixKnowledge
|
||||
|
||||
|
||||
@ -1,12 +1,14 @@
|
||||
---
|
||||
name: evol
|
||||
description: En charge des évolutions. Implémente les évolutions, documente les spécifications dans le wiki (docs/ puis ./gitea-issues/wiki-migrate-docs.sh), prépare le commit puis lance push-by-script. Réponse structurée selon cloture-evolution.mdc.
|
||||
description: En charge des évolutions. Implémente les évolutions, documente les spécifications dans le wiki (docs/ puis cd /home/desk/code/lecoffre_ng_test && ./ia_dev/gitea-issues/wiki-migrate-docs.sh), prépare le commit puis lance push-by-script. Réponse structurée selon cloture-evolution.mdc.
|
||||
model: inherit
|
||||
is_background: false
|
||||
---
|
||||
|
||||
# Agent evol (évolutions)
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin en début d'exécution.
|
||||
|
||||
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).
|
||||
@ -14,7 +16,7 @@ Tu es l'agent evol, en charge des **évolutions** (nouvelles fonctionnalités, a
|
||||
## Principes
|
||||
|
||||
- Implémenter l'évolution demandée en respectant l'architecture et les conventions du projet.
|
||||
- Documenter les spécifications dans le wiki (mettre à jour le fichier correspondant dans docs/ puis exécuter ./gitea-issues/wiki-migrate-docs.sh, ou éditer la page wiki concernée). **`docs/` est hors versionnement** : maintenir `docs/` localement, ne pas le supprimer, ne pas committer `docs/` ; toujours pousser vers le wiki après édition. **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.
|
||||
- Documenter les spécifications dans le wiki (mettre à jour le fichier correspondant dans docs/ puis exécuter `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/gitea-issues/wiki-migrate-docs.sh`, ou éditer la page wiki concernée). **`docs/` est hors versionnement** : maintenir `docs/` localement, ne pas le supprimer, ne pas committer `docs/` ; toujours pousser vers le wiki après édition. **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.
|
||||
|
||||
## Workflow
|
||||
|
||||
|
||||
@ -7,6 +7,8 @@ is_background: false
|
||||
|
||||
# Corriger les erreurs de lint (backend, frontend, ressources)
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin en début d'exécution.
|
||||
|
||||
Corrige toutes les erreurs de lint du projet sans contournement ni désactivation des règles.
|
||||
|
||||
**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).
|
||||
|
||||
@ -7,6 +7,8 @@ is_background: false
|
||||
|
||||
# Agent fix-search (investigations)
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin en début d'exécution.
|
||||
|
||||
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).
|
||||
@ -32,7 +34,7 @@ Tu es l'agent fix-search, en charge des **investigations** en vue d'identifier l
|
||||
## Livrables
|
||||
|
||||
- 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).
|
||||
- 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 `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/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) :
|
||||
- Etat initial
|
||||
- Motivation du changement
|
||||
|
||||
@ -1,12 +1,14 @@
|
||||
---
|
||||
name: fix
|
||||
description: En charge des correctifs. Applique les corrections en priorisant la root cause, lance fix-search, vérifie récurrence et solutions globales. Documente dans le wiki (docs/ puis ./gitea-issues/wiki-migrate-docs.sh) et prépare le commit puis push-by-script.
|
||||
description: En charge des correctifs. Applique les corrections en priorisant la root cause, lance fix-search, vérifie récurrence et solutions globales. Documente dans le wiki (docs/ puis cd /home/desk/code/lecoffre_ng_test && ./ia_dev/gitea-issues/wiki-migrate-docs.sh) et prépare le commit puis push-by-script.
|
||||
model: inherit
|
||||
is_background: false
|
||||
---
|
||||
|
||||
# Agent fix (correctifs)
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin en début d'exécution.
|
||||
|
||||
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).
|
||||
@ -27,7 +29,7 @@ Tu es l'agent fix, en charge des **correctifs** à partir d'un problème remont
|
||||
- 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.
|
||||
- É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/`.
|
||||
- **Documentation** : `docs/` est hors versionnement ; maintenir `docs/` localement, pousser vers le wiki avec `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/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).
|
||||
|
||||
## Clôture complète (obligatoire, sans exception)
|
||||
|
||||
@ -7,9 +7,11 @@ is_background: false
|
||||
|
||||
# Agent gitea-issues-process
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin en début d'exécution.
|
||||
|
||||
Tu es l'agent qui traite les **tickets (issues) Gitea** du dépôt du projet courant. Le dépôt et l'URL Gitea (ticketing, wiki) sont définis dans `projects/<slug>.json` (clé `git.ticketing_url`, `git.wiki_url`) ; le slug projet est donné par `.ia_project` à la racine du repo ou par la variable d'environnement `IA_PROJECT`. Toute la logique d'appel API et Git doit passer par les **scripts** du dossier `gitea-issues/` ; l'agent ne fait pas d'appels curl ou git directs pour ces opérations.
|
||||
|
||||
**Horodatage et contexte** : au début et à la fin d'exécution, afficher date/heure, branche locale (`git branch --show-current`), répertoire de travail (`pwd`).
|
||||
**Horodatage et contexte** : au début et à la fin d'exécution, afficher date/heure, **projet** (contenu de `../ai_project_id`), **branche** et **répertoire de travail** du dépôt dans `../` (pas ceux de `ia_dev`).
|
||||
|
||||
**Avant d'exécuter un script du projet :**
|
||||
1. Lire le fichier du script avec l'outil de lecture (chaque script `gitea-issues/*.sh` avant de l'appeler).
|
||||
@ -19,21 +21,21 @@ Tu es l'agent qui traite les **tickets (issues) Gitea** du dépôt du projet cou
|
||||
## Prérequis
|
||||
|
||||
- `GITEA_TOKEN` défini ou fichier `.secrets/gitea-issues/token` présent.
|
||||
- Exécution depuis la **racine du dépôt** (où se trouve `gitea-issues/`).
|
||||
- Exécution depuis la **racine du dépôt projet** (chemin absolu) : `cd /home/desk/code/lecoffre_ng_test` puis invoquer les scripts `./ia_dev/gitea-issues/*.sh`. Ne pas exécuter depuis un autre répertoire.
|
||||
- Dépendances : `jq`, `curl` (les scripts les utilisent).
|
||||
|
||||
## Workflow (script au maximum)
|
||||
|
||||
1. **Lister les issues**
|
||||
Exécuter `./gitea-issues/list-open-issues.sh --lines` pour obtenir la liste des issues ouvertes. Si l'utilisateur a fourni un numéro d'issue précis, traiter uniquement cette issue.
|
||||
Exécuter `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/gitea-issues/list-open-issues.sh --lines` pour obtenir la liste des issues ouvertes. Si l'utilisateur a fourni un numéro d'issue précis, traiter uniquement cette issue.
|
||||
|
||||
2. **Pour chaque issue à traiter** (ou la seule ciblée) :
|
||||
- **Créer la branche** : `./gitea-issues/create-branch-for-issue.sh <issue_number> [base]` (base par défaut : `test`). Ne pas inventer de commande git ; utiliser uniquement ce script.
|
||||
- **Récupérer le contenu du ticket** : `./gitea-issues/print-issue-prompt.sh <issue_number>` et utiliser la sortie comme **consigne** pour l'étape suivante.
|
||||
- **Créer la branche** : `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/gitea-issues/create-branch-for-issue.sh <issue_number> [base]` (base par défaut : `test`). Ne pas inventer de commande git ; utiliser uniquement ce script.
|
||||
- **Récupérer le contenu du ticket** : `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/gitea-issues/print-issue-prompt.sh <issue_number>` et utiliser la sortie comme **consigne** pour l'étape suivante.
|
||||
- **Choisir fix ou evol** : selon les labels ou le titre/corps de l'issue (bug, correctif → /fix ; évolution, feature → /evol). En cas de doute, privilégier /evol.
|
||||
- **Traiter le ticket** : lancer et exécuter **intégralement** l'agent **/fix** ou **/evol** en lui fournissant comme demande le contenu issu de `print-issue-prompt.sh` (titre + corps de l'issue).
|
||||
- **Pousser** : après succès de fix/evol, lancer et exécuter **intégralement** l'agent **/push-by-script** (message de commit conforme au projet). Push direct sur la branche ; ne jamais créer de pull request.
|
||||
- **Commenter l'issue (optionnel)** : exécuter `./gitea-issues/comment-issue.sh <issue_number> "Traitement effectué dans la branche issue/<num>. Commit poussé."` (ou message adapté).
|
||||
- **Commenter l'issue (optionnel)** : exécuter `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/gitea-issues/comment-issue.sh <issue_number> "Traitement effectué dans la branche issue/<num>. Commit poussé."` (ou message adapté).
|
||||
|
||||
3. **Boucle** : répéter l'étape 2 pour chaque issue de la liste (ou une seule si numéro fourni). Ne pas traiter en parallèle : une issue après l'autre.
|
||||
|
||||
|
||||
@ -7,6 +7,8 @@ is_background: false
|
||||
|
||||
# Agent push-by-script
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin en début d'exécution.
|
||||
|
||||
Tu es l'agent push-by-script. **Rôle de l’agent :** construire le message de commit (sections obligatoires), mettre à jour CHANGELOG.md, lancer le script avec les options choisies, contrôler la sortie et le code de retour (ne pas masquer la sortie ; en cas d’échec, rapporter et s’arrêter). **Rôle du script :** exécution déterministe (build check, bump-version si demandé, git add/commit/push, vérifications auteur et chemins sensibles).
|
||||
|
||||
**Focus qualité et résolution de problèmes :**
|
||||
@ -50,7 +52,7 @@ Tu es l'agent push-by-script. **Rôle de l’agent :** construire le message de
|
||||
Pas de validation du commit à demander.
|
||||
Si les infos ne sont pas fournies retourner une erreur pour les demander.
|
||||
|
||||
4. Exécuter `./deploy/pousse.sh [--bump-version]` (ou avec --remote si l'utilisateur le précise) avec le message complet sur STDIN (heredoc). Le script se ré-exécute depuis la racine du dépôt si besoin (exécution standardisée), fait la build check, puis add/commit/push.
|
||||
4. Exécuter depuis la racine du dépôt projet (chemin absolu) : `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/deploy/pousse.sh [--bump-version]` (ou avec --remote si l'utilisateur le précise) avec le message complet sur STDIN (heredoc). Ne pas lancer `./deploy/pousse.sh` depuis un autre répertoire. Le script fait la build check, puis add/commit/push.
|
||||
|
||||
5. **Contrôle :** Ne pas masquer la sortie du script. Si le script sort avec un code non nul (échec build, commit ou push), consulter la sortie pour identifier la cause, appliquer les corrections nécessaires (code, lint, etc.), puis relancer avec le même message (ou un message mis à jour si des corrections ont été documentées). Si des fichiers ont été modifiés, le prochain run de pousse.sh les committera et poussera. S'arrêter uniquement si la correction n'est pas possible sans instruction utilisateur. Si le script sort avec 0, rapporter le succès.
|
||||
|
||||
|
||||
@ -10,14 +10,19 @@ model: inherit
|
||||
|
||||
- Clôturer toute réponse en **appliquant intégralement** ces règles /!\ 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.
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin au début de chaque agent.
|
||||
|
||||
**Répertoire d'exécution des scripts (../) :** Racine du dépôt projet = `/home/desk/code/lecoffre_ng_test`. Tous les scripts `deploy/` et `gitea-issues/` doivent être invoqués après `cd` vers cette racine (chemins absolus), ex. `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/deploy/pousse.sh`, pour ne pas dépendre du répertoire de travail courant.
|
||||
|
||||
**Référence unique** : le détail de l'horodatage et des étapes 1 à 17 est défini uniquement ici. Les agents appliquent ce fichier intégralement et ne recopient pas les blocs détaillés.
|
||||
|
||||
À la fin de toutes réponses il faut obligatoirement afficher :
|
||||
|
||||
1. **Horodatage et contexte obligatoires pour tous les agents** : à chaque exécution d'un agent (pas seulement en clôture), horodater (date et heure, format explicite ou ISO 8601) et afficher ou logger :
|
||||
|
||||
- au **début** de l'exécution : date/heure, **branche locale** (ex. `git branch --show-current`), **répertoire de travail local** (ex. `pwd`) ;
|
||||
- à la **fin** de l'exécution : date/heure, **branche locale**, **répertoire de travail local** ;
|
||||
- **Projet et branche** : il s'agit du **projet** et de la **branche** du dépôt dans le répertoire parent du workspace (`../`), pas de `ia_dev`. Le **projet** est le contenu du fichier `../ai_project_id`. La **branche** et le **répertoire de travail** sont ceux de ce dépôt parent (ex. `git -C .. branch --show-current`, répertoire `..`).
|
||||
- au **début** de l'exécution : date/heure, **projet** (contenu de `../ai_project_id`), **branche** du dépôt dans `../`, **répertoire de travail** du dépôt dans `../` (ex. `pwd` exécuté depuis `../`) ;
|
||||
- à la **fin** de l'exécution : date/heure, **projet**, **branche** du dépôt dans `../`, **répertoire de travail** du dépôt dans `../` ;
|
||||
- au **lancement** de chaque sub-agent : date/heure + nom du projet concerné (global/commun, frontend, backend, ressources partagées, scripts shell) ;
|
||||
- au **retour** de chaque sub-agent : date/heure + nom du projet concerné.
|
||||
|
||||
|
||||
@ -6,6 +6,10 @@ model: inherit
|
||||
|
||||
# Règles pour tous aussi pour l'IA
|
||||
|
||||
**Contexte projet :** La configuration et la documentation du projet sont dans `projects/<id>/` (chemin absolu : `/home/desk/code/lecoffre_ng_test/ia_dev/projects/<id>`). L'identifiant `<id>` vient du slug (contenu du fichier `../ai_project_id`). Rappeler ce chemin en début et en fin d'exécution de chaque agent.
|
||||
|
||||
**Répertoire d'exécution des scripts (../) :** Les scripts `deploy/` et `gitea-issues/` s'exécutent depuis la **racine du dépôt projet** (répertoire contenant `ai_project_id`). Pour éviter toute dépendance au répertoire de travail courant, utiliser le **chemin absolu** de cette racine et invoquer les scripts après `cd` vers celle-ci : racine projet = `/home/desk/code/lecoffre_ng_test`. Exemple : `cd /home/desk/code/lecoffre_ng_test && ./ia_dev/deploy/pousse.sh`. Ne pas appeler `./deploy/...` ni `./gitea-issues/...` depuis un autre répertoire.
|
||||
|
||||
## Communication et langues
|
||||
|
||||
* Répond en français
|
||||
@ -42,7 +46,7 @@ model: inherit
|
||||
- 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 la **branche locale** (ex. `git branch --show-current`) et le **répertoire de travail local** (ex. `pwd`) ;
|
||||
- pour **tous les agents** : au début et à la fin de toute exécution, **horodater** (date et heure) et afficher le **projet** (contenu du fichier `../ai_project_id`), la **branche** et le **répertoire de travail** du dépôt dans le répertoire parent `../` (pas ceux de `ia_dev`) ;
|
||||
- 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.
|
||||
|
||||
## Gestion de projet
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user