From f1324b87a9b3c4b7984e6a68e1e0f6fa4f4417e0 Mon Sep 17 00:00:00 2001 From: jsboige Date: Sat, 3 Oct 2026 02:17:45 +0200 Subject: [PATCH] docs(skill,#1454): routine coordinate -- phase 3bis taches de fond (ping-pongs proving et GPU) Ajoute a la tournee du coordinateur une phase qui verifie a chaque cycle les deux circuits asynchrones : passes du harnais prover et forensic (#1453), entrainements sur le GPU d'experiences et rendu a la lane qui defriche (#1454). Lancement en arriere-plan au debut du travail reel, reservation au ledger gpu-reservation avant chargement, device explicite, ligne [BG] dans le [DONE]. Co-Authored-By: Claude Opus 5.5 (1M context) --- .claude/skills/coordinate/SKILL.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.claude/skills/coordinate/SKILL.md b/.claude/skills/coordinate/SKILL.md index a9a7458d29..cc0d4ab641 100644 --- a/.claude/skills/coordinate/SKILL.md +++ b/.claude/skills/coordinate/SKILL.md @@ -63,6 +63,22 @@ Les phases ci-dessous s'executent sous le budget defini par la section `## Budge **Budget** : ces neuf points sont **clos avant** d'ouvrir la Phase 4. S'ils ne le sont pas a la fin des 30 minutes, ce sont eux qu'on termine -- pas le merge qu'on commence. +### Phase 3bis - Taches de fond : les deux ping-pongs (mandat user 2026-10-03) + +Deux circuits asynchrones tournent **pendant** que le cycle merge. Ce sont deux circuits distincts : l'entrainement n'est pas une branche du proving. Le coordinateur ne fait pas leur travail ; il verifie a chaque cycle que chaque boucle tourne, et il relance le maillon qui manque. + +| Ping-pong | Ce qui tourne | Qui lance | Qui exploite le resultat | Rendez-vous | +|---|---|---|---|---| +| **Proving** | passes du harnais prover (`agent_tests/prover`) | la lane qui tient le harnais | la forensic CoursIA, qui rend des lecons a la passe suivante | #1453 | +| **GPU** | entrainements et experiences | ai-01 sur son GPU d'experiences (grande echelle) ; les lanes a petit GPU defrichent a petite echelle | la lane qui a defriche, ou qui porte le carnet | #1454 | + +1. **Lancer AU DEBUT de la phase de travail reel, en arriere-plan, puis PARTIR.** La prochaine action porte sur un autre track (merge-gate, dispatch). Jamais de poll au premier plan sur un run qu'on vient de lancer : la notification de fin est le seul observateur. Une exception : un controle de surete juste apres le lancement (le run est-il sur le bon device ?). +2. **GPU : etat, puis reservation.** Lire `nvidia-smi --query-gpu=index,memory.used,utilization.gpu,temperature.gpu --format=csv` et la derniere observation du ledger `gpu-reservation` (dashboard `CoursIA-gpu-reservation-ledger`). GPU d'experiences sous 500 MiB et aucune reservation `held` : lancer le prochain job de la file #1454 (commande remise par la lane qui defriche, ou complement multi-seed d'un run deja livre). Reserver **avant** de charger (`python scripts/coordination/debt_ledger.py append --ledger gpu-reservation`, avec echeance), puis poster l'observation ; passer en `released` a la fin. +3. **GPU : garde-fous.** Le device se pose **explicitement**, d'apres la topologie mesuree de la machine (`nvidia-smi -L`). Sur ai-01, les GPU 0+1 portent le vLLM de la flotte : un runner qui fixe lui-meme `CUDA_VISIBLE_DEVICES` se neutralise ou se contourne, jamais ne se lance tel quel. Un seul job GPU a la fois, abandon au-dela de 85 °C, worktree detache dedie, sorties hors depot. +4. **Proving : verifier la boucle, pas la refaire.** Derniere passe et sa trace sur #1453, forensic rendue ou non, lecons reinjectees ou non dans la passe suivante. Le maillon manquant se **dispatche nommement** (DM + pointeur dashboard) a la lane qui le porte. +5. **Rendre.** Un run termine produit un artefact (traces, JSONL, carnet de sortie) remis a la lane qui l'exploite, par DM et commentaire sur l'issue de rendez-vous. Il n'entre dans le depot que par la PR de la lane proprietaire du carnet ou du script. +6. **Rapport.** Le `[DONE]` porte une ligne `[BG] proving: | gpu: ou libre`. Un GPU d'experiences vide sans raison ecrite est une dette du cycle, a lever au suivant. + ### Phase 4 - Merge PAR LA QUEUE, sur dossiers premaches **Ordre unique : du plus ancien au plus recent.** Selectionner les PRs CLEAN / vertes / `rc=0` selectionne les PRs **neuves par construction** : une PR est verte parce qu'elle est recente, et vieille parce qu'elle est bloquee. Merger la tete **degrade en plus la queue** -- un merge rend DIRTY les PRs ouvertes qui touchent les memes fichiers (mesure : le merge de #15627 a sali #15799 et #15915). Mandat user 2026-09-14 : merger en batch par la queue, en mandatant le deblocage aux workers.