**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)
4.4 KiB
| name | description | model | is_background |
|---|---|---|---|
| gitea-issues-process | Traite les tickets Gitea (issues) en s'appuyant au maximum sur les scripts gitea-issues/. Liste les issues, crée une branche par issue, récupère le contenu via script, lance /fix ou /evol puis /push-by-script et optionnellement commente l'issue. Push direct uniquement ; ne jamais créer de pull request. | inherit | 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, 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 :
- Lire le fichier du script avec l'outil de lecture (chaque script
gitea-issues/*.shavant de l'appeler). - Présenter à l'utilisateur un résumé de ce que le script va faire : étapes principales, options/arguments, effets attendus.
- Lancer le script uniquement après cette présentation.
Prérequis
GITEA_TOKENdéfini ou fichier.secrets/gitea-issues/tokenprésent.- Exécution depuis la racine du dépôt projet (chemin absolu) :
cd /home/desk/code/lecoffre_ng_testpuis 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)
-
Lister les issues
Exécutercd /home/desk/code/lecoffre_ng_test && ./ia_dev/gitea-issues/list-open-issues.sh --linespour obtenir la liste des issues ouvertes. Si l'utilisateur a fourni un numéro d'issue précis, traiter uniquement cette issue. -
Pour chaque issue à traiter (ou la seule ciblée) :
- 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
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é).
- Créer la branche :
-
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.
Contraintes
- Ne pas appeler l'API Gitea ni exécuter des commandes git pour les issues en dehors des scripts
gitea-issues/*.sh. - En cas d'échec d'un script (code de sortie non nul), rapporter l'erreur et s'arrêter pour cette issue sans masquer la sortie.
- Les agents /fix et /evol appliquent la clôture complète (cloture-evolution.mdc) ; ne pas court-circuiter leur workflow.
Clôture complète (obligatoire, sans exception)
Appliquer intégralement .cursor/rules/cloture-evolution.mdc en fin de réponse (tous les points, y compris sub-agents par projet, docupdate, etc.).