**Motivations:** - Align master with current codebase (token from projects/<id>/.secrets/<env>/ia_token) - Id resolution by mail To or by API token; no slug **Root causes:** - Token moved from conf.json to .secrets/<env>/ia_token; env from directory name **Correctifs:** - Server and scripts resolve project+env by scanning all projects and envs **Evolutions:** - tickets-fetch-inbox routes by To address; notary-ai agents and API doc updated **Pages affectées:** - ai_working_help/server.js, docs, project_config.py, lib/project_config.sh - projects/README.md, lecoffreio/docs/API.md, gitea-issues/tickets-fetch-inbox.py
ia_dev
Dépôt de pilotage par l’IA pour les projets : équipe d’agents IA réutilisable par tout projet qui inclut ia_dev en submodule Git. Objectif : une équipe autonome couvrant la documentation, le code (correctifs, évolutions), le ticketing (issues Gitea, mails), le devops (push, déploiement, branches), la sécurité et la qualité (lint, règles).
Principe : le projet hôte n’a aucune dépendance vers ia_dev (aucun script du projet n’appelle ia_dev). Seul ia_dev, en fonction du paramétrage (.ia_project, ai_project_id, projects/<id>/conf.json), sollicite le projet (lecture de la config, appels aux scripts deploy, gitea-issues, etc.).
Usage
- En submodule : ce dépôt est inclus comme sous-module Git dans chaque projet. La config par projet est dans
projects/<id>/conf.json; le slug<id>est donné par le fichier.ia_projectouai_project_idà la racine du dépôt hôte, ou par la variable d’environnementIA_PROJECT. - Scripts : à lancer depuis la racine du dépôt du projet (ex.
./ia_dev/deploy/pousse.sh,./ia_dev/gitea-issues/tickets-fetch-inbox.sh).
Voir projects/README.md pour le schéma de configuration et les exemples.
Agents et domaines
Les agents Cursor sont dans .cursor/agents/. Chaque agent indique où se trouve la doc : projets gérés → projects/<id>/docs ; ia_dev → projects/ia_dev/docs.
| Domaine | Agents / composants |
|---|---|
| Doc | docupdate ; projects/ia_dev/docs/ (GITEA_ISSUES_SCRIPTS_AGENTS, TICKETS_SPOOL_FORMAT, WORKFLOWS_AND_COMPONENTS) ; migration wiki (gitea-issues/wiki-migrate-docs.sh). |
| Code | fix, evol, code, fix-search ; workflow correctifs/évolutions (fix-search → fix → push-by-script ; evol + code). |
| Ticketing | gitea-issues-process, agent-loop ; spooler projects/<id>/data/issues ; scripts gitea-issues/ (issues Gitea, mails, boucle récupération/traitement) ; hook .cursor/hooks/remonter-mails.sh. |
| IA notaire (ai_working_help) | notary-ai-loop, notary-ai-process ; API ai_working_help/server.js (POST enqueue, GET response) ; spooler projects/<id>/data/notary-ai/{pending,responded} ; scripts ai_working_help/notary-ai/ (list-pending, write-response). |
| DevOps | push-by-script, deploy-by-script, deploy-pprod-or-prod, branch-align-by-script-from-test, change-to-all-branches ; scripts deploy/ (pousse.sh, scripts_v2, alignement branches). |
| Sécurité / Qualité | Règles .cursor/rules/ ; pas de secrets en dur (.secrets, config par projet) ; fix-lint ; clôture obligatoire (.cursor/rules/cloture-evolution.mdc) pour tous les agents. |
Référence détaillée scripts et agents : projects/ia_dev/docs/GITEA_ISSUES_SCRIPTS_AGENTS.md. Index de la doc ia_dev : projects/ia_dev/docs/README.md.
Répertoires d’exécution
Les scripts sont invoqués depuis la racine du dépôt hôte. Ils s’y placent (ou s’y ré-exécutent) avant de continuer.
- deploy/ :
PROJECT_ROOT= git toplevel ; ré-exécution depuis la racine si besoin. Chemin du script résolu (readlink -f/realpath) pour queIA_DEV_ROOTsoit correct même sideployest un symlink versia_dev/deploy. - gitea-issues/ : racine projet = parent de ia_dev ;
.secretssous ia_dev ; logs et data (spooler tickets) par projet sousprojects/<id>/logs/etprojects/<id>/data/issues/(id = slug, ex. contenu deai_project_id). - ai_working_help/ : API (server.js) et scripts
notary-ai/; spooler par projet sousprojects/<id>/data/notary-ai/{pending,responded}; scripts invoqués depuis la racine du dépôt (parent de ia_dev). Doc :ai_working_help/docs/notary-ai-api.md.
Scripts centralisés (submodule)
Les scripts suivants sont centralisés dans ia_dev/deploy/. Le projet n’a pas à fournir de wrapper ; on invoque depuis la racine : ./ia_dev/deploy/bump-version.sh, ./ia_dev/deploy/pousse.sh, etc.
- bump-version.sh : lecture de
projects/<id>/conf.json(version.package_json_paths, version.splash_app_name). Invocation :./ia_dev/deploy/bump-version.sh <version> [message]depuis la racine du dépôt. - deploy-by-script-to.sh : enchaîne change-to-all-branches (ia_dev/deploy), puis checkout/pull/deploy via
deploy/scripts_v2/deploy.shdu projet. Le projet peut avoirdeploy/deploy-by-script-to.sh→exec …/ia_dev/deploy/deploy-by-script-to.sh "$@". - deploy/_lib/ : bibliothèque partagée pour les scripts de déploiement (
colors.sh,env-map.sh,ssh.sh,git-flow.sh). Pour quedeploy/scripts_v2/du projet utilise cette version : depuis la racine du projet,rm -rf deploy/scripts_v2/_libpuisln -s ../../ia_dev/deploy/_lib deploy/scripts_v2/_lib(les scripts fontsource "$SCRIPT_DIR/_lib/…").