LifePlay-Revival/Docs/Migration/etat/EVAL2/EVAL2-STATS.md

196 lines
16 KiB
Markdown
Raw Normal View History

Fiche EVAL2-T7 — Niveau N2 — Modèle prévu Opus 5.5 | utilisé claude-opus-5-5 — Agent orchestrateur (session EVAL) — Skills aucun préchargé
# EVAL2-STATS : statistiques consolidées P0 → P3 (2026-10-14)
Sources : relevés `EVAL2-T1a-INV.md` (sessions principales), `EVAL2-T1b-INV.md` (sous-agents), `EVAL2-T2-INV.md` (git,
gardien), `EVAL2-T3-INV.md` (CHG, ERR, décisions), `EVAL2-T4-INV.md` (essais communs, builds), `EVAL2-T5-INV.md` (fiches,
VAL, écarts), `EVAL2-T6-INV.md` (commandes, crochet) ; tables `data\*.csv`. P0 à P2 : doc 33 § 2 (`Docs\33_Eval_Organisation_72h.md`)
et `etat\EVAL\EVAL-STATS.md`. Chaque chiffre de P3 renvoie à son relevé ; les ratios sont calculés ici (calcul donné).
**Période P3** : 2026-10-11 05:30 → 2026-10-14 18:25:41 (commit `2f5d51b`, tag `v2026.10.2.1a`), UTC+2.
**Coupure** : 2026-10-13 12:07:16, message de l'utilisateur « fixons les objectifs. on planifie un build alpha à remettre
au clients avant la fin des crédits hebdomadaires. priorité données a CAM et STE. version 2026.10.2.1a »
(transcription Big Boss `92a3927f`, ligne 9343 ; T1a § 1). **P3a** = 54,6 h de calendrier (fin des lots U8, OUTC, MCPA,
ORGA1, PUB3, TRACE1, P7) ; **P3b** = 30,3 h (sprint COMMUN-1 à 13, puis livraison).
**Biais** : orchestrateur juge et partie (session EVAL, Opus, N2). Session EVAL et ses sous-agents exclus des mesures.
Définitions identiques à l'EVAL (scripts copiés et paramétrés, originaux intacts) ; la comparaison « à travail égal » reste
incertaine : P3b est un sprint de correction en jeu, P0 à P2 étaient de la migration et de l'outillage.
## 1. Indicateurs du doc 33 § 2, P0 → P3
| Indicateur | P0 | P1 | P2 | **P3a** | **P3b** | **P3** | Source / calcul P3 |
|---|---:|---:|---:|---:|---:|---:|---|
| Heures actives (somme des sessions) | 3,7 | 26,0 | 11,7 | 26,79 | 41,47 | **68,27** | T1a tableau |
| Heures actives (mur, principales) | — | — | — | 8,18 | 22,30 | 30,48 | T1a |
| Parallélisme moyen | — | — | 2,5 | 3,27 | 1,86 | 2,24 | T1a (somme / mur) |
| Sessions principales réelles | 4 | 21 | 12 | — | — | 25 (+ 42 jetables d'essai) | T1a |
| CHG / h active | 2,4 → 1,2 (doc 31) | 1,81 | 2,40 | 0,67 | 0,19 | **0,38** | 26 CHG (T3) / 68,27 ; P3a 18 / 26,79 ; P3b 8 / 41,47 |
| Commits / h active | — | 3,1 | 4,0 | 1,42 | 0,27 | **0,72** | 49 commits 3 dépôts (T2) / 68,27 ; P3a 38, P3b 11 |
| Erreurs d'outils (principales) | 3,9 % | 3,3 % | 1,6 % | 2,4 % | 1,6 % | **2,0 %** | T1a |
| Tours par sous-agent (moyenne) | ≈ 17 | 37,7 | 19,6 | 17,0 | 26,4 | **22,2** | 5 715 tours / 258 ; P3a 1 988 / 117 ; P3b 3 727 / 141 (T1a, T1b) |
| Sous-agents hors budget | — | 26 % | 17 % | 16 % | 29 % | **23 %** | T1b |
| Jetons lus / h active (tous) | 31,7 M | 56,2 M | 130,2 M | 48,1 M | 40,5 M | **43,5 M** | (2 407,5 + 562,7) / 68,27 ; sous-agents 562,7 M d'après T1a, 562,4 M d'après T1b (écart d'arrondi, sans effet) |
| dont principales / h | 26,0 M | 34,6 M | 108,4 M | 40,9 M | 31,7 M | **35,3 M** | 2 407,5 / 68,27 |
| Jetons par CHG | — | 31 M | 54 M | 72 M | 210 M | **114 M** | 2 970 M / 26 ; P3a 1 289 / 18 ; P3b 1 681 / 8 |
| Jetons par CHG + ERR | — | — | — | — | — | **39 M** | 2 970 / (26 + 50) |
| Contexte médian par tour (principales) | 344 k | 245 k | 323 k | 276 k | 312 k | **295 k** | T1a |
| Part des appels faite par les sous-agents | 51 % | 65 % | 57 % | 49 % | 62 % | **57 %** | 8 996 / (8 996 + 6 902) ; P3a 3 124 / 6 385 ; P3b 5 872 / 9 513 (T1a) |
| Messages de l'utilisateur / h active | 7,8 | 7,3 | 10,0 | 4,0 | 7,2 | **5,9** | 404 / 68,27 (T1a) |
| Messages entre sessions / h active | — | 5,7 | 36 | 11,6 | 11,8 | **11,7** | 798 / 68,27 (T1a) |
| Messages entre sessions / CHG | — | — | 15 | 17 | 61 | **31** | 798 / 26 |
Lecture : le débit en CHG et en commits s'effondre en P3b, mais **l'unité de livraison a changé** : un CHG par lot (règle
du doc 33) et un build commun testé en jeu toutes les 53 min (§ 2) ; les 50 ERR de P3 ont été consignés en rattrapage, tous
dans un seul commit (`3af7324`, 2026-10-14 18:22 ; T3). Les jetons par heure baissent de 3 fois par rapport à P2 (rotation
de Big Boss, file d'attente des essais en jeu) ; les jetons par CHG doublent.
## 2. Mesures propres à P3
### 2.1 Essais communs (T4)
| Mesure | Valeur | Source |
|---|---|---|
| Builds COMMUN | 13 (C1 à C13), tous code 0 ; aucun échec de build sur toute P3 (25 résumés `*_Build_*`, 20 journaux UAT) | T4 § builds |
| Durée d'un build | Build.ps1 30 à 87 s (moy. 51,6) ; BuildCookRun 68 à 198 s (moy. 127,7) | T4 |
| Cas testés | 161 : OK 121, OK partiel 8, KO 17, KO partiel 2, non concluant 1, constat 1, non testés 11 | T4 |
| Par lot (cas / KO + KO partiel) | CAM 71 / 12 ; STG 50 / 6 ; STE 11 / 0 ; non-régression 29 / 1 | T4 |
| Validations sans vérification cas par cas | 32 implicites (« pas d'autres défauts ») + 24 « en bloc » (C8, C13) = 56 / 161 (35 %) | T4 |
| Délai fin d'essai → exe suivant | médiane 53 min, moyenne 50,6, min 15, max 112 (12 intervalles) ; KO horodaté → exe suivant 15 à 61 min | T4 |
| Régressions et correctifs insuffisants | 12 lignes : 5 régressions dues à un correctif (ex. glisser à la souris perdu après B2p-G/H en C12, façade solide en C6 → abandon S-F5 en C8), 5 insuffisants, 2 récidives | T4 |
| Découvreur des défauts KO | 48 : utilisateur 39 (81 %), agent 6, mixte 3 ; défauts hors fiche : 30 (utilisateur 17, agent 12, mixte 1) | T4 (estimé d'après la nature de la ligne) |
| Agent de build hors limite | 1 : COMMUN-9, 55 tours mesurés contre 40 déclarés, non coupé | T1b § 2.6, T4 |
| Bilans | écrits 1 à 11 min après l'essai pour C2-C7, C11, C12 ; **après coup** C8 (+96 min), C9 (+48), C10 (+13), écrits ensemble à 12:55, C13 (+104) ; COMMUN-1 sans fiche ni bilan | T4 |
### 2.2 VAL et fiches (T5)
| Mesure | Valeur | Source |
|---|---|---|
| Livrables `.md` de P3 | 641 (P3a 285, P3b 356) ; en-tête complet 83,4 %, « Niveau Nx » 89,7 %, ligne Tours 68,6 % (331 livrables de rôle) | T5 |
| Statuts de registre | 246 fiches : faite 121, acceptée 60, reprise 2, relayée 1, escaladée 0 | T5 |
| VAL produites | 76 : PASS 31, PASS-STATIC 39, FAIL final 5 (6,6 %), BLOCKED 1 ; 9 (11,8 %) ont eu un FAIL à un stade | T5 |
| PASS-STATIC suivis d'un KO en jeu | 3 : S-F5m (KO P3, C9), B2p-E (KO Q1, C10), B2q-a (partiel N1, C8) ; + B2s PASS suivi du KO J5 (C6) | T5 |
| Écarts de protocole | 41 retenus : refus du crochet 20 (renvoi T6), méthode d'agent 8, instantané manquant 7 relevés (cas distincts nommés : ORG5-I2a, CAM-B2n, `.h` de DirectControl STG), instantané tardif 2, instantané déclaré sans objet 2, écriture avant gel 2 (dont STG-M1) ; redirection du gardien 0, statut sauté 0 trouvés | T5 l. 123-134, `data\ecarts.csv` |
| Essai D-P7.16 (S, C9a) | 52 fiches les portent (STE 37, CAM 12, AG 2, STG 1) ; jointure registre 16 / 52 ; aucune issue mesurable (registres STG/CAM/STE sans colonne Tours ni statut « acceptée ») | T5 |
### 2.3 Crochet `ecriture-gardien` et autres refus (T6, T1a, T1b)
| Mesure | Valeur | Source |
|---|---|---|
| Refus du crochet (sous-agents) | 82 ; 6 essais volontaires ; **76 opérationnels** (P3a 17, P3b 59 à la coupure exacte ; T6 a tourné avec la coupure provisoire 10:00 et donne 13 / 63 : les 4 refus du 2026-10-13 de 10:02 à 10:16, `data\refus.csv` l. 60-63, 2 à tort et 2 utiles, sont reclassés ici en P3a par l'orchestrateur) | T6, T9 E1 |
| Motifs (76) | `>` 49, `python -c` 10, `->` 4, `tee` 2, autres 11 | T6 |
| Classement v2 (76) | **à tort 36** (motif seulement dans un texte cité : `grep "^>"`, `awk 'NR>=…'`, `echo "a -> b"`) ; **utile 40** ; relecture de 15 lignes : accord 15 / 15 ; 18 des 40 « utile » écrivent dans un dossier temporaire (bénins) | T6 |
| Par session (à tort / utile) | STG 11 / 17 ; **CAM 12 / 5** ; STE 6 / 6 ; à la coupure exacte P3a 5 / 12, P3b 31 / 28 (T6 à 10:00 : 3 / 10 et 33 / 30) | T6 § 2.3, T9 E1 |
| Refus dus à la propre consigne de l'agent | 14 en P3 (python -c, heredoc, `tee`) + 3 dans ce lot EVAL2 (T1a, T4, T6, tous lp-inventory, tous sur un test d'interpréteur ou une lecture de JSON) | T6 |
| Agents arrêtés net par un refus | 6, tous des essais volontaires ; aucun agent de production ; 51 agents ont continué après un refus | T1b |
| Contournement | STE-ORG4c : refus utile (`mkdir` + `mv` d'un autosave GI), l'orchestrateur STE déplace le fichier lui-même, MD5 jamais relevé, VAL PASS | T6 § 3 |
| Crochet en panne | 4 appels (fichier `Tools/claude/hooks/ecriture-gardien.py` absent, incident du 2026-10-13) | T1a, T6 |
| Python en ligne (hors crochet pour les principales) | 322 heredocs Python dans les principales (335 en tout) ; 152 `python -c` de plus de 200 caractères, toutes sessions | T6 § 2.8 |
| Mode auto | 34 refus (sous-agents et principales ; Self-Modification 20) ; principales 19 | T6, T1a |
| PubCheck | 3 refus au commit des lots de l'alpha (STE, STG, CAM : noms de compte dans des livrables) | T2 ; date de création de l'outil (2026-10-13 10:20) : T6 § 2.9 |
| Erreurs de shell | 51 sur 5 910 appels : guillemets / échappement 26 (Bash, 22 en P3b), chemin 21 | T6 |
### 2.4 Git et gardien (T2)
| Mesure | Valeur |
|---|---|
| Commits | 49 (jeu 34, addon 15, modules 0) ; P3a 38, P3b 11 ; **0 sans ticket** |
| Tickets | 58 (fait 56, refusé 2) ; 9 refus de COMMIT repris : diff étranger 3, nom de compte vu par le gardien 3, PubCheck 3 |
| Verrous | 82 pris, 82 rendus, 0 orphelin ; le plus long 39 h (n° 105, OUTC-R1) |
| CHG portés | 26 (CHG-324 à 349, sans trou) ; 15 commits sans CHG (jeu 6, addon 9) |
| Délais | ticket → commit médiane 1,1 min (10 tickets horodatés) ; chaîne finale : 8 commits entre 18:20:15 et 18:25:41 |
| Release | tag annoté `v2026.10.2.1a` sur `2f5d51b` à 18:25:43 ; **ni le tag ni `ue5.8` ne sont poussés** (refs locales) |
| `--amend`, redirection | 0 en P3 |
### 2.5 Journaux et décisions (T3)
| Mesure | Valeur |
|---|---|
| CHG de P3 | 26 (P3a 18, P3b 8) ; recoupés `git log -S` 26 / 26 |
| ERR de P3 | 50 (ERR-089 à 138), **tous en rattrapage** (JOURNAUX1-2), déposés le 2026-10-14 à 18:22 |
| Trou de journal | aucun CHG ni ERR entre CHG-343 (2026-10-13 13:04) et le commit `3af7324` (2026-10-14 18:22) : ≈ 29 h, soit tout le sprint COMMUN |
| BOSS-JOURNAL sans heure | 376 lignes sur 462 ; 40 lignes JOURNAL sans heure |
| Décisions de l'utilisateur | 20 en P3 ; 2 paires décision → livraison mesurables (2,3 h et 4,7 h) ; 13 sans heure |
### 2.6 Coût et modèles (T1a, T1b)
| Mesure | P3a | P3b | P3 |
|---|---:|---:|---:|
| Jetons lus, principales | 1 094,8 M | 1 312,7 M | 2 407,5 M |
| Jetons lus, sous-agents | 194,6 M | 367,9 M | 562,4 M |
| Sous-agents | 117 | 141 | 258 |
| Part Opus des jetons des sous-agents | 31 % | 46 % | 41 % |
| `lp-mcp-bp` (Opus xhigh) | 3 | 34 | 37 passages, 144,2 M (26 % des jetons des sous-agents, 62 % des jetons Opus), tours moy. 43,6, max 82 |
| `lp-validator` (sonnet) | 21 | 56 | 77, 142,1 M (25 %), 26 % hors budget |
| `lp-cart` | 5 | 9 | 14, **79 % hors budget**, 4 sur Opus |
| `lp-builder` (haiku) | 8 | 24 | 32, 3 % hors budget |
| Escalades (cart-max, impl-max, opus-max, fable-top) | 0 | 0 | 0 (1 opus-xhigh, P7-T4b) |
| Coupés sans compte rendu | — | — | 1 (REG1-T1) |
| Sessions principales sur Opus | | | 99,5 % des tours |
Le coût monétaire n'est pas relevé : les transcriptions donnent des jetons, pas des crédits. Les jetons lus sont à 99 %
du cache (T1a), ce qui rend le coût par jeton lu très inférieur au coût par jeton écrit (non chiffré ici).
## 3. Big Boss
| Mesure | P2 (doc 33) | P3 |
|---|---:|---:|
| Heures actives | 8 h | 24,66 h = **36,1 %** de la somme des sessions |
| Jetons lus | 272 M = **18 %** de tous les jetons de P2 | 605,6 M = **20,4 %** de tous les jetons de P3 (2 970 M, même base que P2) ; 25,2 % des seuls jetons des principales |
| Tours | 679 | 1 815 (24,7 %) |
| Messages de l'utilisateur reçus | — | 293 sur 404 (**72,5 %**) |
| SendMessage | — | 388 sur 722 (53,7 %) |
| Rotation | — | 1 (`92a3927f` → `ebc15012`, 2026-10-13 12:26), contexte médian 384 k puis 268 k |
## 4. Suivi des décisions E1 à E7 (doc 33 § 6 pour E1 à E5 ; `etat\EVAL\EVAL-RAPPORT.md` § 9 l. 308-309 pour E6, E7) et des cibles du § 7
| Décision | Appliquée ? | Effet mesuré en P3 |
|---|---|---|
| E1 rotation (FIN-LOT ou 250 k) | **en partie** : Big Boss 1 rotation ; CAM 3 sessions ; STE une session vivante 79,6 h ; 13 sessions sur 25 au-dessus de 250 k de contexte médian | contexte médian 295 k (cible < 200 k : **non atteinte**) ; −9 % contre P2 |
| E2 outils copie partagée | **outils livrés** le 2026-10-12 22:37 (`CopieEtat`, `Verrou`, `GitEtat`, `Numero`) | `Verrou` 110 et `Numero` 77 appels (adoptés) ; `CopieEtat` 43 et `GitEtat` 23 appels, **tous en P3a, 0 en P3b** ; à côté : 662 `git status`, 927 calculs d'empreinte improvisés (P2 : 543 en 72 h) |
| E3 agent `lp-mcp` | **fait** (`lp-mcp` lecture, `lp-mcp-bp` écriture) | appels MCP des principales 1 080 sur 85 h (P2 : 1 070 sur 72 h) ; 37 passages `lp-mcp-bp` ; la délégation existe mais les principales gardent la moitié du MCP |
| E4 Big Boss Opus + rotation + contrôles scriptés | **en partie** (rotation 1 fois ; contrôles scriptés peu utilisés en P3b) | coût 20,4 % de tous les jetons (25,2 % des principales), 36 % des heures : **au-dessus du seuil de 15 % de la clause D-P7.8** dans les deux bases |
| E5 protocole Big Boss et règles de fiche (ORGA1) | **fait** | « Niveau Nx » 89,7 %, ligne Tours 68,6 % ; 2 reprises sur 246 fiches ; 0 escalade |
| E6 doc 33 | fait (CHG-327) | — |
| E7 commit EVAL | fait (EVAL-R1, EVAL-R2) | — |
| Cible du doc 33 § 7 | Cible | P3 | Atteinte |
|---|---|---|---|
| Contexte médian des principales | < 200 k | 295 k | non |
| Part des appels faite par les sous-agents | > 70 % | 57 % | non |
| Jetons par CHG | ≈ 30 M | 114 M (39 M par CHG + ERR) | non |
| Messages entre sessions par CHG | 15 (P2) | 31 | non (hausse) |
| Reprises de cause consigne | — | 2 reprises de registre ; 17 refus du crochet dus à la propre consigne | — |
| Clause d'arrêt D-P7.8 (doc 33 § 7) | Seuil | P3 | Verdict |
|---|---|---|---|
| Big Boss réduit à la file de compilation | coût > 15 % après E1 et E2 | 20,4 % de tous les jetons, 36 % des heures | **déclenchée** (à soumettre) |
| Demi-niveaux retirés | `lp-cart` hors budget < 30 % sur 20 fiches | 79 % sur 14 fiches | non décidable (14 < 20), tendance défavorable |
| Crochet retiré | « plus de refus légitimes que de refus utiles sur un lot » (doc 33 l. 119-120) ; lu ici « refus de commandes légitimes » = à tort | CAM 12 / 5 ; P3b 31 / 28 ; STG 11 / 17 ; STE 6 / 6 | **déclenchée sur CAM** si cette lecture est la bonne (à confirmer par l'utilisateur) |
## 5. Commandes de rejeu
Dans `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL2\scripts\`, chacune par `python -I -X utf8 <script>` :
`eval2_meta.py`, `eval2_sessions.py`, `eval2_recount.py` (T1a) ; `eval2_subagents.py --coupure "2026-10-13 12:07"`,
`eval2_subagents_sessions.py` (T1b, ce dernier sous le Python d'Unreal, voir T1b) ; `eval2_commits.py` (T2) ;
`eval2_journal.py` (T3) ; `eval2_commun.py` (T4) ; `eval2_fiches.py`, `eval2_val.py`, `eval2_post.py` (T5) ;
`eval2_commandes.py`, `eval2_refus.py` (T6).
## Incertitudes
- Sessions Big Boss et CAM vivantes pendant T1a : messages ± quelques unités au rejeu.
- Le parallélisme max (7) compte des attentes jusqu'à 10 min : surestimé.
- Découvreur des défauts : estimé d'après la nature de la ligne du bilan (T4).
- Retard des journaux : borne (≈ 29 h), pas une mesure par entrée (T3).
- Coût en crédits : non mesuré.
- Fins de ligne de `data\` (T9 V5) : `sessions.csv`, `lots.csv`, `lots_transcription.csv`, `app_meta.csv` en CRLF ;
`refus.csv` mixte (84 lignes sur 136 avec CR) ; `refus_motifs.csv` classé `-text` par git ; `tableaux.md` 1 CR (l. 63).
**Normalisés en LF** par l'orchestrateur après la VAL (`scripts\eval2_lf.py` : 516 CR retirés sur 7 fichiers ; recompte :
0 CR dans les `.md` et `data\*`).
- T6 a tourné avec la coupure provisoire 10:00 : ses répartitions P3a / P3b (refus, commandes) sont décalées de 2 h 07 ;
seules celles des refus du crochet sont corrigées ici (T9 E1). Les totaux ne changent pas.
- Un processus du premier passage de T2 (coupure provisoire) est resté bloqué sur `git ls-remote` ; MD5 des fichiers
`data\commits.csv` `678ed737…`, `tickets.csv` `2e5e1866…`, `commits-stats.txt` `6710747e…` relevés à 2026-10-14 ≈ 19:40 pour
détecter une réécriture.
Tours : sans objet (fiche de l'orchestrateur)