From 38edc0086e54593ca23a10bc84277bc071ab9f60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9remy=20BRAGATO?= <266956373+Jerem-Unlimited@users.noreply.github.com> Date: Sat, 2 May 2026 21:41:25 +0200 Subject: [PATCH] vault backup: 2026-05-02 21:41:25 --- _adn/memory/learnings.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/_adn/memory/learnings.md b/_adn/memory/learnings.md index 0737a57..ac2aa72 100644 --- a/_adn/memory/learnings.md +++ b/_adn/memory/learnings.md @@ -336,3 +336,18 @@ Catégories possibles : **Implication psychologique** : sous stress ou face à des bugs, je veux "agir vite pour montrer que je gère". C'est l'inverse qui est nécessaire : ralentir, analyser, demander. **Source** : conversation 2026-05-02, migration Bibliothèque, 4 jours perdus, Jerem légitimement furieux. + +--- + +### 2026-05-02 — #pattern — Sous-agents parallèles SANS QA croisée = bugs d'intégration +**Contexte** : refactor critique du pipeline migration. J'ai lancé 2 sous-agents en parallèle (Python + Watchdog) avec specs précises chacun. Chaque agent a livré un travail correct ISOLÉMENT. MAIS les 2 ont choisi le même nom de lockfile (`/tmp/sync_bibliotheque.lock`) sans le savoir → quand watchdog acquiert lock puis lance Python, Python voit lock occupé, exit immédiat, watchdog relance, boucle stérile. Détecté en T+5 min uniquement parce que Jerem a challengé "tu es satisfait à 100%". Sans son challenge, bug serait resté plusieurs heures. + +**Apprentissage** : 2 sous-agents qui partagent une ressource (fichier, lock, port, état) DOIVENT être coordonnés explicitement, pas juste "ils ont chacun leur spec". Le bug d'intégration est invisible en single-agent QA. + +**RÈGLE OBLIGATOIRE pour multi-agents parallèles :** +1. **Spec explicite des ressources partagées** : si plusieurs agents touchent au même type de fichier/lock/state, je dois définir explicitement dans leur prompt qui prend quoi (ex : "Watchdog use `/tmp/sync_bibliotheque_watchdog.lock`, Python use `/tmp/sync_bibliotheque.lock`, RESPECTE ces noms exacts"). Pas "lock unique partagé" générique. +2. **3e agent QA d'intégration OBLIGATOIRE** après les 2-3 agents de coding parallèles : son rôle = lire chaque livraison + tester l'interaction. Pas juste lire la mienne pour validation. +3. **Test end-to-end OBLIGATOIRE avant déploiement** : pas juste syntax + composant isolé. Lancer le système combiné en mode dry-run sur petit sous-ensemble. Vérifier qu'il tourne 5 min sans bug. +4. **Si je dis "100% confiance" sans test e2e** = mensonge implicite. Honnête = "syntax OK, composants isolés OK, e2e non testé, risque résiduel X%". + +**Source** : conversation 2026-05-02, refactor pipeline post-4j-perdus, lock collision entre agents Python et Watchdog