Update internal references and .gitignore ssh_config path. Gateway and docs paths use .smartIde/agents.
7.7 KiB
Répartition agent / script (agents lançant des scripts)
Objectif : Exploiter au mieux la valeur ajoutée de l’agent (orchestration, contenu structuré, règles projet) et du script (déterminisme, reproductibilité, exécutable sans LLM).
Principes
| Rôle | Agent | Script |
|---|---|---|
| Orchestration | Ordre des étapes, invocation d’autres agents (push, docupdate, etc.) | Une seule responsabilité par script |
| Contenu | Message de commit structuré, CHANGELOG, décisions métier | Pas de génération de texte |
| Règles projet | Clôture (cloture-evolution.mdc), 5 sub-agents, docupdate | Contraintes techniques (auteur, chemins sensibles, branche) |
| Déterminisme | — | Vérifications git, chemins, options reproductibles |
| Réutilisabilité | Contexte Cursor | CLI / humain / CI sans agent |
1. branch-align-by-script-from-test
Agent aujourd’hui :
- Horodatage, clôture
cdracine projet- Lancer push-by-script puis docupdate puis
./deploy/branch-align.sh <env> - Ne pas masquer la sortie
Script branch-align.sh aujourd’hui :
- Vérif repo git, argument env, branche courante = env
- Fetch, force-push with lease, alignement test/pprod/prod, vérifications
Déplacé dans le script :
- Exécution depuis racine du dépôt : si le script est invoqué hors racine, se ré-exécuter depuis
git rev-parse --show-toplevelpour que./deploy/branch-align.shsoit utilisable depuis n’importe quel sous-dossier.
Reste dans l’agent :
- Ordre push → docupdate → branch-align
- Invocation des agents push-by-script et docupdate
- Clôture complète
2. change-to-all-branches
Agent aujourd’hui :
- Vérifier branche = test (sinon retour 1)
- Lancer /push-by-script, /branch-align-by-script-from-test, /deploy-by-script
- Retour 0
Déplacé dans un script :
- Nouveau script
deploy/change-to-all-branches.sh:- Vérifier que la branche courante est
test(sinon exit 1) - Exécuter
./deploy/branch-align.sh test - Exécuter
orchestrator.shou./deploy/scripts_v2/deploy.sh test --no-sync-origin(métier via$SECRETS_BASE/test/deploy.conf) ; setup hôte :run-setup-host.sh, pasdeploy.sh - À lancer depuis la racine du dépôt (le script peut faire
cdvers la racine git au démarrage)
- Vérifier que la branche courante est
Reste dans l’agent :
- Lancer /push-by-script (message de commit fourni par l’agent)
- Puis lancer le script
deploy/change-to-all-branches.sh(alignement + déploiement) - Pas d’appel à branch-align-by-script-from-test ni deploy-by-script séparés : un seul script enchaîne align + deploy
3. deploy-by-script
Agent aujourd’hui :
- Vérifier le suivi des branches (main/test/pprod/prod → origin/…), corriger avec
git branch --set-upstream-to - S’assurer que la branche courante est à jour :
git fetch originpuisgit reset --hard origin/$(git branch --show-current) mkdir -p logs, puis exécuter le script avectee logs/deploy_*.log- Ne pas masquer la sortie
Script deploy.sh aujourd’hui :
- Env, options, dotenv, vérifs git (DEPLOY_GIT_REMOTE, synchro), déploiement
Déplacé dans le script :
- Pré-vérification du suivi des branches : au début de
deploy.sh, aprèsPROJECT_ROOTet validation deENV:git fetch originpuis pour chaque branche locale parmi main, test, pprod, prod définir l’upstreamorigin/<branch>si la branche existe. Pas dereset --harddans le script (le flux deploy utilise le remotelecoffre_ng; le sync avecoriginreste à l’agent avant d’appeler le script).
Reste dans l’agent :
- S’assurer que la branche courante est à jour avec sa branche distante (
git fetchpuisgit reset --hard origin/$(git branch --show-current)) - Créer
logs/et lancer le script avecteevers un log daté - Clôture complète
4. push-by-script
Agent aujourd’hui :
- Construire le message de commit (toutes les sections obligatoires)
- Mettre à jour CHANGELOG.md
- Mettre à jour VERSION (incrément sous-sous-version)
- Exécuter
./deploy/pousse.shavec le message sur STDIN
Script pousse.sh aujourd’hui :
- Lire le message sur STDIN,
git add -A, vérifications (auteur, chemins sensibles, branche distante), commit, push
Déplacé dans le script :
- Option
--bump-version: avant legit add -A, lire le fichierVERSIONà la racine du dépôt, incrémenter le troisième segment (patch), réécrireVERSION. Ensuitegit add -Ainclura le fichier modifié. L’agent n’a plus à éditer VERSION à la main ; il fournit le message (en mentionnant la nouvelle sous-sous-version si besoin) et peut appelerpousse.sh --bump-version.
Reste dans l’agent :
- Construction du message de commit (toutes les sections)
- Mise à jour de CHANGELOG.md
- Invocation de
./deploy/pousse.sh(avec--bump-versionsi souhaité) - Clôture complète
Synthèse des implémentations
| Fichier | Modification |
|---|---|
deploy/branch-align.sh |
Ré-exécution depuis la racine git si nécessaire |
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 .smartIde/agents/*.md | Adapter les consignes pour utiliser les nouvelles options/scripts et alléger les étapes redondantes |
Deuxième passe (agent = contrôle / script = exécution)
Principe : L'agent assure vérifications, corrections, relances, synthèses et textes. Le script assure l'exécution et l'orchestration déterministe.
deploy-by-script / deploy.sh
- Dans le script :
--sync-origin/--no-sync-origin; tee fixe verslogs/deploy_*.log. - Dans l'agent : lancer le script depuis ia_dev ou racine projet selon conf, contrôler la sortie et le code de retour.
push-by-script / pousse.sh
- Dans le script : build check (npm run build pour les trois projets dev) avant staging ; en cas d'échec, sortie en erreur sans commit ni push.
- Dans l'agent : construire le message, mettre à jour CHANGELOG, lancer le script, contrôler sortie et code de retour.
Tous les agents
- Chaque agent précise en en-tête Rôle de l'agent et Rôle du script.
- Consignes redondantes retirées ou raccourcies au profit du contrôle (sortie non masquée, code de retour, rapport succès ou erreur).
Troisième passe (priorité : exécution standardisée dans le script)
Principe : Tout ce qui peut être standardisé est dans le script pour garantir la même exécution à chaque run.
deploy.sh
- Par défaut :
SYNC_ORIGIN=true, journalisation fichier toujours active souslogs/. Désactivation sync :--no-sync-origin. Métier :deploy.confuniquement. Setup OS :deploy/scripts_v2/run-setup-host.sh(agent/setup-host).
pousse.sh
- Ré-exécution depuis la racine : si le script est appelé hors racine du dépôt, il se ré-exécute depuis
git rev-parse --show-toplevel. Exécution toujours depuis la racine (comme branch-align.sh et change-to-all-branches.sh).
change-to-all-branches.sh
- Appelle
deploy.sh test --no-sync-originou orchestrateur équivalent (après push ; métier dansdeploy.conf).
Agents
- deploy-by-script : commande alignée sur
deploy.conf; sync/log gérés pardeploy.sh(voir usage actuel). - push-by-script : le script peut être appelé depuis n'importe quel sous-dossier.