LifePlay-Revival/Docs/Migration/etat/EVAL/EVAL-STATS.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

202 lines
16 KiB
Markdown

Fiche EVAL-T7 — Niveau N2 — Modèle prévu orchestrateur (Opus 5.5) | utilisé claude-opus-5-5 — Agent session « EVAL » — Skills sk-orchestrate, sk-recount
# EVAL-STATS : statistiques de l'organisation multi-agents, 2026-10-08 05:30 → 2026-10-11 05:30 (2026-10-11)
Sources : les 7 relevés `EVAL-T1a` à `EVAL-T6` (`lp-inventory`), recomptés par l'orchestrateur à réception (`sk-recount`,
§ 9). Tables : `data\*.csv`. Scripts rejouables : `scripts\*.py`. Ces scripts sont ignorés par git (`.gitignore:75`),
comme ceux de `Saved\STAT1\` (doc 31) : ils restent sur le disque.
Heures : locales (UTC+2). « h active » = somme des écarts ≤ 10 min entre événements horodatés, toutes sessions
confondues (méthode du doc 31). Les sessions parallèles ne sont pas additionnées.
## 0. Sous-périodes
| | P0 | P1 | P2 |
|---|---|---|---|
| Bornes | 10-08 05:30 → 13:30 | 10-08 13:30 → 10-10 10:45:20 | 10-10 10:45:20 → 10-11 05:30 |
| Organisation | agents génériques, avant `lp-*` | agents `lp-*`, chaque session commite | **Big Boss** (file de la copie UE, jeton du journal) + **gardien** (`lp-gardien`, tickets) |
| Heures de calendrier | 8,0 | 45,25 | 18,75 |
| Heures actives (toutes activités) | 3,70 | 25,95 | 11,68 |
| Sessions principales actives | 4 | 21 | 12 |
| Heures-sessions (somme des sessions) | 3,09 | 27,61 | 29,39 (parallélisme moyen 2,5) |
Début de P2 = premier événement de la session titrée « Big Boss » (`92a3927f`, 10:45:20). Premier commit sur ticket
du gardien : `3aaaf2c`, 10:45:50 (T2). P0 et P1 recouvrent la fenêtre du doc 31 (« après » = 10-08 13:30 → 10-09
16:41, inclus dans P1).
## 1. Production
| Indicateur | P0 | P1 | P2 | Total | Commande, compte brut |
|---|---:|---:|---:|---:|---|
| Commits distincts (jeu 5.8 + addon + Modules 5.8 + jeu 5.5 propre) | 5 | 80 | 47 | **132** | `EvalT2_Commits.py` ; `git rev-list --count --all --since/--until` : jeu 90, addon 40 (recompte orchestrateur identique) ; Modules 1 ; jeu 5.5 : 1 propre sur 10 |
| dont addon (skills, agents) | 0 | 28 | 12 | 40 | dont **15 paires de commits jumeaux** 5.5 / 5.8 (T2 § 2) |
| Entrées CHG (par commit d'introduction) | 4 | 47 | 28 | **79** | `eval_journal.py` ; `chg.csv` 79 lignes ; CHG-245 → 323 sans trou |
| Entrées ERR | 0 | 14 | 31 | 45 | `err.csv` 45 lignes ; ERR-044 → 088. Ce sont surtout des **défauts du jeu** (STB, STE…). Une seule touche l'organisation : ERR-087 (`--amend` du gardien) |
| Livrables `.md` sous `etat\` (date de modification) | 15 | 153 | 246 | **414** (4,57 Mo) | `eval_fiches.py` ; `fiches.csv` 414 = `Get-ChildItem` 414 |
| Journaux bruts sous `etat\` (`.txt`, `.log`, `.csv`) | 0 | 268 | 262 | 530 (105 Mo) | idem |
| Tickets du gardien | — | — | 63 | 63 | `tickets\` : 62 `fait` (dont 10 annotés), 1 `abandonné` (OBB-R11) |
| Sous-agents lancés | 15 | 121 | 124 | **260** | `eval_subagents.py` ; `subagents.csv` 260 lignes (recompte : 260 / 362 fichiers) |
**Débit par heure active**
| Indicateur | P0 | P1 | P2 | Doc 31 « avant » | Doc 31 « après » |
|---|---:|---:|---:|---:|---:|
| Commits / h active | 1,35 | 3,08 | **4,02** | — | — |
| CHG / h active | 1,08 | 1,81 | **2,40** | 2,4 (59 CHG, règle d'avant « un CHG par lot » non appliquée) | 1,2 |
| Livrables `.md` / h active | 4,1 | 5,9 | **21,1** | — | — |
## 2. Coût (jetons, temps)
| Indicateur | P0 | P1 | P2 | Doc 31 avant | Doc 31 après | Commande |
|---|---:|---:|---:|---:|---:|---|
| Jetons lus, total (M) | 108,5 | 1 458,0 | 1 520,3 | 771 | 786 | `eval_sessions.py` (`tableaux.md` § Sous-périodes) |
| Jetons lus, sessions principales (M) | 70,2 | 898,7 | **1 266,5** | 632 | 375 | idem |
| Jetons lus, sous-agents (M) | 38,3 | 559,3 | 253,8 | 139 | 411 | idem ; `subagents.csv` = 851,5 M |
| Jetons / h active, total (M) | 29,3 | 56,2 | **130,2** | 31,7 | 47,6 | idem |
| Jetons / h active, principales (M) | 19,0 | 34,6 | **108,4** | 26,0 | 22,7 | idem |
| Jetons / h active, sous-agents (M) | 10,4 | 21,6 | 21,7 | 5,7 | 24,9 | idem |
| **Jetons par CHG (M)** | 27,1 | 31,0 | **54,3** | — | — | calcul : total / CHG |
| **Jetons par commit (M)** | 21,7 | 18,2 | **32,3** | — | — | total / commits distincts |
| Contexte moyen par tour, principales | 329 k | 307 k | **377 k** | 376 k | 269 k | `eval_sessions.py` |
| Contexte médian par tour, principales | 228 k | 245 k | **323 k** | 344 k | 216 k | idem |
| Tours des principales > 150 k | 83 % | 77 % | **88 %** | 85 % | 74 % | idem |
| Compactages | 1 | 1 | 2 | 5 | 0 | idem |
| Lecture en cache | 97,0 % | 98,5 % | 99,2 % | 98,6 % | 99,1 % | idem |
Plus lourdes sessions principales de la fenêtre (jetons lus) : LOT STE `37530d8d` 439 M (995 tours, pic 898 k) ;
Lot 29 `87a0d630` 390 M (815 tours, pic 965 k) ; **Big Boss `92a3927f` 267 M** (679 tours, pic 825 k) ; U7 `ab8918a1`
181 M ; LOT STF `637ffab6` 179 M (`tableaux.md` § contexte).
**Temps machine de la copie UE** (journaux `Saved\Logs\portage`, horodatages internes en UTC, décalage de 2,00 h
vérifié sur 202 fichiers) : 265 `.log`, 509,6 min. P1 : 133 fichiers, 241,6 min ; P2 : 132 fichiers, 268,0 min. Par
type : éditeur interactif et PIE 151,9 min ; `LPDumpFunction` **129 lancements**, 103,4 min ; éditeur headless 92,6 ;
CompileAllBlueprints 17 lancements, 58,6 ; Build 50 lancements, 57,7 ; cuisson 13,6 ; UAT 9,5 ; LPTestStringCompat 4,7
(`eval_boss.py logs`, `portage_logs.csv`).
## 3. Délégation et niveaux
| Indicateur | P0 | P1 | P2 | Doc 31 avant | Doc 31 après | Commande |
|---|---:|---:|---:|---:|---:|---|
| Appels d'outils, total | 721 | 9 270 | 7 899 | 4 154 | 5 090 | `eval_sessions.py` |
| Appels d'outils / h active | 195 | 357 | **676** | 171 | 308 | idem |
| Part faite par les sous-agents | 72 % | 65 % | **57 %** | 51 % | 72 % | idem |
| Commandes shell des principales / h | 23,0 | 54,6 | **125,3** | 51 | 46 | idem |
| Appels MCP Unreal des principales | 34 | 660 | 515 | — | — | idem (1 070 `mcp__unreal*__call_tool` ; **aucun agent `lp-*` n'a d'outil MCP**) |
| Sous-agents `general-purpose` | 14 | 0 | 0 | 106 (tous génériques) | 0 | `aggregats.md` |
| Tours par sous-agent, médiane / moyenne | 18 / 21,9 | 27 / 37,7 | **16,5 / 19,6** | — / ≈ 17 | 26 / ≈ 40 | `aggregats.md` |
| Pic médian des sous-agents | 171 k | 107 k | **84 k** | — | — | idem |
| Sous-agents hors budget (niveau, BUD1) | 33 % | 26 % | **17 %** | — | — | idem ; 58 / 260 (tours 28, pic 44) |
| Part des jetons des sous-agents au pic > 150 k | 67 % | 81 % | **63 %** | — | 84 % | idem |
| Escalades (`lp-impl-max`, `opus-xhigh`, `opus-max`, `fable-top`) | 0 | 3 | 1 | 1 | 2 | U7-T6, U7-T7, OBA-T5, CAM-T5 : toutes hors budget ; `fable-top` 0 |
| Sous-agents coupés sans compte rendu (doit valoir 0) | 0 | 0 | **2** | — | — | lp-builder STE-D (10 tours), lp-gardien OBB-R11 (4 tours) |
| Seuil `maxTurns` probablement atteint | — | — | — | — | — | 19 agents, tous avec compte rendu |
| Taux d'erreur des outils | 3,3 % | 3,3 % | **1,6 %** | 3,9 % | 3,6 % | 24/720, 306/9 271, 130/7 897 |
| Refus d'autorisation | 1 | 7 | 3 | — | — | `toolDenialKind` : 6 `automode-blocked`, 5 `permission-rule` |
**Par type d'agent (fenêtre entière, `aggregats.md`)**
| Agent | Modèle usuel | Nombre | Tours méd. | Pic méd. | Jetons | Part | Hors budget |
|---|---|---:|---:|---:|---:|---:|---:|
| lp-builder | haiku | 52 | 20,5 | 77 k | 75,9 M | 9 % | 10 % |
| lp-gardien | sonnet | 48 | 11 | 61 k | 34,0 M | 4 % | **0 %** |
| lp-validator | sonnet | 42 | 19,5 | 104 k | 85,1 M | 10 % | 19 % |
| lp-cart | opus | 38 | **48** | **243 k** | **340,6 M** | **40 %** | **55 %** |
| lp-writer | sonnet | 28 | 13 | 83 k | 35,3 M | 4 % | 14 % |
| lp-inventory | sonnet | 17 | 22 | 120 k | 27,8 M | 3 % | 12 % |
| lp-impl | opus | 16 | 41 | 176 k | 106,6 M | 13 % | 56 % |
| general-purpose | divers | 14 | 18 | 173 k | 38,6 M | 5 % | 36 % |
| escalade (4) | opus | 4 | — | — | 107,7 M | 13 % | 100 % |
Par modèle : sonnet 141 agents (24 % des jetons), opus 61 (**66 %**), haiku 54 (9 %), fable 4 (1 %). Niveau lu dans la
fiche : 168 / 260 ; déduit de l'agent : 92.
## 4. Orchestration : Big Boss, file de la copie UE, journal, gardien (P2 seulement)
| Indicateur | Valeur | Commande, compte brut |
|---|---|---|
| BUILD-DEMANDE / BUILD-GO / BUILD-FIN / ATTENTE | 37 distinctes / 38 distincts (+ 7 répétitions, + 1 GO parallèle pour la copie 5.5) / 39 fermetures / 17 | `eval_boss.py all` ; `buildqueue.csv` 464 lignes (journal + transcription) |
| GO par lot | STE 25, STF 9, OBB 3, LISIB 3, U8 3, CAM 2 | idem |
| Attente DEMANDE → GO | médiane **0,4 min**, max 19,5 (LISIB-J1), n = 34 | idem |
| Occupation GO → FIN | médiane 9,4 min, max 109,8 (STE-GARDES), somme 698 min, n = 39 | idem |
| Copie UE sur P2 (1 125 min) | occupée **61,6 %** (692,5 min) ; gelée 5,6 % (62,8) ; libre 32,9 % (369,7, dont 41 min de réserve « mesure ») | idem |
| Occupation déclarée et temps machine | 692 min de GO ouverts pour **268 min** de journaux machine (rapport 2,6) | `portage_logs.csv` ; un GO couvre aussi le PIE avec l'utilisateur et l'analyse entre deux commandlets |
| GO sans FIN, FIN sans GO | 0 / 0 | idem |
| GO simultanés | 2 formels (fin constatée par Big Boss avant le GO suivant, FIN reçue 1,4 et 2,8 min plus tard) | T4 § 2.4 |
| Contre-vérifications de BUILD-FIN par Big Boss | 32 acceptations : MD5 17, processus Unreal 25, `git status` 9 ; MD5 changé : **0** | T4 § 2.7 |
| Jeton du journal | 7 demandes, 14 jetons accordés, 19 JOURNAL-LIBRE ; attente médiane 0,3 min (max 17,2) ; détention médiane 5,6 min (max 94,6) | T4 § 2.6 |
| Arbitrages, conflits, gels, FIN-LOT | CONFLIT 14, ARBITRAGE 12, GEL 9 (dont 1 gel documentaire DOCMV), DÉCLARATION 8, FIN-LOT 18 | `buildqueue.csv` |
| Incidents | processus étranger 5 ; fausse alerte 1 ; dossier parasite 1 ; verrou orphelin 1 ; refus d'autorisation 1 ; session fermée pendant un GO 1 ; plantage de l'éditeur pendant un GO 1 ; MD5 changé 0 | T4 § 2.8 (lignes source) |
| **Coût de Big Boss** | 8,04 h actives, 679 tours, **272 M jetons lus = 18 % des jetons de P2**, 287 messages sortants, 195 entrants, 27 messages humains, Bash 282, PowerShell 47 | T4 § 2.10 ; T1a |
| Gardien | 48 passages `lp-gardien`, 34,0 M jetons (0,7 M par passage), 1,4 min médiane ; 63 tickets ; verrous 82 pris, 82 rendus | T1b, T2 |
| Commits après le gardien | 47 ; 41 citent leur ticket ; 6 n'en citent aucun, tous antérieurs à 11:36 et rattachés à un ticket (ETAT3-R1/R2/R5, STC-R1, REPO-MV-R1, STD-R1) ; **commit sans ticket : 0** | T2 § 2 |
| Identités d'auteur | 2 (l'adresse courte, 28 commits addon, disparaît avant le gardien) | T2 |
| Hook `pre-commit` | non installé dans les 4 arbres (`core.hooksPath` absent) | T2 |
## 5. Charge de l'utilisateur et coordination
| Indicateur | P0 | P1 | P2 | Doc 31 avant | Doc 31 après | Commande |
|---|---:|---:|---:|---:|---:|---|
| Messages humains (entrées tapées + file) | 26 | 207 | 119 | 190 | 100 | `origin.kind == "human"` |
| Messages humains, méthode du doc 31 (« prompts ») | 27 | 190 | 117 | 190 | 100 | idem, hors file |
| **Messages humains / h active** (méthode doc 31) | 7,3 | 7,3 | **10,0** | 7,8 | 6,1 | idem |
| Messages entre sessions reçus | 2 | 148 | **423** | — | — | `origin.kind == "peer"` |
| Messages entre sessions / h active | 0,5 | 5,7 | **36,2** | — | — | idem |
| `SendMessage` émis (principales) | 4 | 183 | 509 | — | — | idem |
| Questions fermées à l'utilisateur (`AskUserQuestion`) | — | — | — | — | — | 95 dans la fenêtre (`commands_resume.txt`) |
| Messages humains par CHG | 6,5 | 4,4 | 4,25 | — | — | calcul |
| Messages entre sessions par CHG | 0,5 | 3,1 | **15,1** | — | — | calcul |
## 6. Qualité des fiches et des registres
| Indicateur | P0 | P1 | P2 | Doc 31 après | Commande |
|---|---:|---:|---:|---:|---|
| En-tête complet (prévu + utilisé + agent + skills + niveau), livrables de rôle | 0/3 | 106/111 (95,5 %) | 107/119 (89,9 %) | 77/79 (97 %, motif modèle seul) | `eval_fiches.py` |
| Ligne `Tours :` en fin de livrable | 0 % | 6,3 % | **70,6 %** | — | idem (92 lignes) |
| Section « État de reprise » | — | — | 1 / 233 livrables | — | idem |
| Lots avec VAL (17 registres modifiés) | — | — | 12 / 17 | 10 / 10 | sans VAL : CAM (audit en cours), ETAT3, OBA, STA, STD |
| Statuts au gabarit (17 registres, 200 lignes) | — | — | acceptée 96, à faire 15, envoyée 4, reçue 3 ; **hors gabarit** : « faite » 64, « en cours » 2, autre 16 | — | idem |
| `escaladée`, `reprise`, `bloquée`, `coupée` dans les statuts | — | — | **0** alors que 20 lignes de tentative `b/c/d` et 20 mentions « hors budget » | — | idem |
| Colonnes de mesure remplies (Tours / Pic / Jetons / Durée) | — | — | 40 % / **11 %** / 38 % / 41 % | — | idem |
| Tours déclarés contre tours mesurés | — | — | sous-comptés (OBB : 12 / 15 ; ici T4 : 37 déclarés contre 39 mesurés) | — | OBB-EVAL § 3 ; FicheStats |
## 7. Commandes répétées (mutualisation)
7 764 appels Bash + PowerShell examinés (principales 2 966, sous-agents 4 798). Recoupement avec `sessions.csv` exact
(34 sessions, 0 écart). Durée shell mesurée (tool_use → tool_result) : 15,7 h au total
(`eval_commandes.py`, `commands_resume.txt`).
| Famille | Appels | Principales | Fiches | Part des appels shell P0 → P1 → P2 | Outil du projet déjà disponible |
|---|---:|---:|---:|---|---|
| c. état git, diff, fins de ligne, comptes de CR | **1 794** | 827 | 180 | 8 % → 17 % → **36 %** | aucun script d'état unique |
| f. verrou, tickets, `NUMEROS.md`, `REPO-JOURNAL.md` | 1 085 | 363 | 65 | 1 059 en P2 | aucun (141 `mkdir` / `New-Item` / `Remove` de verrou) |
| d. scripts `Tools\` | 996 | 407 | 102 | — | 25 scripts. En contournement : `UnrealEditor-Cmd` / `-run=` sans `RunCommandlet.ps1` 68 appels, `RunUAT` sans `BuildDebug.ps1` 32 |
| h. Python par heredoc, `python -c` long, scripts temporaires | 684 | 311 | 75 | — | aucun (282 heredocs, dont 201 en principale ; 135 scripts écrits) |
| a. empreintes MD5 / SHA | 543 | 256 | 90 | 0 % → 4 % → **14 %** | `FileCheck.ps1` (10-09) : 60 appels, contre 538 `md5sum` / `Get-FileHash` / `sha*sum` |
| b. processus Unreal / jeu | 455 | 216 | 55 | 2 % → 5 % → 8 % | `UeState.ps1` (10-09) : 161 appels, contre 452 `Get-Process` / `tasklist` / `Get-CimInstance` |
| e. comptes de journaux (`Accessed None`, `Error:`, `Warning:`) | 272 | 83 | 43 | — | `LogStats.ps1` (09-29) : 68 appels |
| g. taille et date de dossiers de build | 252 | 128 | 50 | — | `CheckPackage.ps1` (10-10), en partie |
| i. `SendMessage` / `ListAgents` | 696 / 24 | 720 | — | — | coordination |
Scripts de `Tools\` créés pendant la fenêtre et déjà adoptés : `UeState.ps1` 161 mentions, `Build.ps1` 125,
`Engine.ps1` 60, `FileCheck.ps1` 60, `EtatDir.ps1` 50, `uasset58.py` 40, `CheckPackage.ps1` 34, `FicheStats.py` 32,
`uasset.py` 30 (T6 § 2.3).
## 8. Le lot EVAL lui-même (mesure FicheStats)
`python -I Tools/FicheStats.py --lot EVAL` : 7 fiches `lp-inventory` (6 sonnet, 1 haiku), 18,4 M jetons lus,
durée de 8 à 17 min. **6 fiches sur 7 hors budget de pic** : de 163 k à 315 k, contre 150 k au budget N1. En tours,
toutes sont dans le budget : de 17 à 39 sur 40. Cause : chaque fiche lit des transcriptions de plusieurs Mo, et mes
fiches demandaient trop d'indicateurs à la fois (consigne). Synthèse faite par l'orchestrateur (N2), sans N3+ :
aucune escalade.
## 9. Recompte de l'orchestrateur (sk-recount)
| Fiche | Recompté | Résultat |
|---|---|---|
| T1a | sommes des sessions = P0 + P1 + P2 pour 12 grandeurs (contrôle du script) ; borne P2 relue dans `tableaux.md` | conforme ; 2 points ouverts : la session `e3d15049` du dossier 4-27 est exclue (hors périmètre de la fiche) ; les 9 sessions sans message humain restent comptées (sessions latérales) |
| T1b | `subagents.csv` : 260 lignes ; P0 15 / P1 121 / P2 124 ; modèles 141 / 61 / 54 / 4 | conforme ; motif de fiche élargi accepté |
| T2 | `commits.csv` 141 lignes (132 distinctes) ; `git rev-list --count` jeu 90, addon 40 | conforme |
| T3 | `chg.csv` 79, `err.csv` 45 ; `grep -c "^| ERR-"` = 88 | conforme ; CHG-316 mal découpé dans le CSV (cellule contenant `|`) |
| T4 | `buildqueue.csv` 464 lignes, mots-clés recomptés ; occupé + gelé + libre = 1 125 min | conforme ; 2 GO simultanés formels acceptés comme tels |
| T5 | `fiches.csv` 414 lignes ; P0 15 / P1 153 / P2 246 | conforme ; registre STE exclu de la fenêtre (mtime 05:30:05) |
| T6 | familles et totaux relus dans `commands_resume.txt` ; 2 966 appels shell des principales = `sessions.csv` | conforme |
Tours : sans objet (fiche de l'orchestrateur)