LifePlay-Revival/Docs/Migration/etat/EVAL2/AMEL1/OUTIL1/OUTIL1-I1a-INV.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

14 KiB

Fiche OUTIL1-I1a — Niveau N1 — Modèle prévu non précisé par la fiche | utilisé claude-sonnet-5-5 — Agent lp-inventory — Skills sk-protocol, sk-recount, lp-paths

OUTIL1-I1a-INV : inventaire des 33 scripts EVAL et EVAL2 (2026-10-14)

Demande : trier les scripts dispersés sous etat\, les intégrer à Tools\, amender les skills (sous-lot OUTIL1 d'AMEL1). Cette fiche couvre etat\EVAL\scripts\ (17) et etat\EVAL2\scripts\ (16). Données détaillées : OUTIL1-I1a.csv (même dossier, 33 lignes, séparateur ;).

1. Commandes exactes

  1. Glob **/*.{py,ps1} dans ...\etat\EVAL\scripts ; idem dans ...\etat\EVAL2\scripts.
  2. ls -l --time-style=long-iso des deux dossiers scripts (dates de modification).
  3. Read (en-tête, docstring, constantes) de chacun des 33 scripts ; Read de Tools\Indicateurs.py l. 1-62, 824-1003, 1500-1553 ; Grep ^def |^# |^""" sur Tools\Indicateurs.py (liste des fonctions).
  4. Grep sys\.exit|raise SystemExit|exit\(, Grep add_argument|sys\.argv, Grep des écritures (open(... "w", write_bytes...) dans etat\**\EVAL*\scripts\*.py.
  5. Grep (output_mode: content, -o) des noms de scripts dans etat\**\*.md (dernier usage connu) ; Grep output_mode: count du même motif : 176 occurrences, 27 fichiers.
  6. git ls-files "Docs/Migration/etat/EVAL/scripts" "Docs/Migration/etat/EVAL2/scripts" | wc -l ; git check-ignore -v sur eval2_lf.py et eval_probe.py ; git status --porcelain --ignored sur les deux dossiers.
  7. Read de lp-doc\gabarits.md (gabarit INV), Grep de AMEL1-MESURE-P3.md (l. 27-112) pour les cas de non-régression.
  8. Recomptes du CSV (Grep output_mode: count, deuxième formulation) : voir § 2.

2. Comptes bruts

  • Glob EVAL : 17 chemins (EvalT2_Commits, eval_boss, eval_commandes, eval_fiches, eval_journal, eval_load, eval_probe à eval_probe8 (8), eval_sessions, eval_sessions_recount, eval_subagents). Glob EVAL2 : 16 chemins. Total 33, aucun .ps1.
  • git ls-files des deux dossiers : 0 (sortie de wc -l). git check-ignore -v : .gitignore:75:/Docs/Migration/etat/** pour les deux fichiers testés. git status --porcelain --ignored : !! Docs/Migration/etat/EVAL/scripts/ et !! Docs/Migration/etat/EVAL2/scripts/. Les 33 scripts ne sont pas sous git (seuls .md et .csv de etat\ sont suivis) : leur seule copie est sur le disque.
  • Recompte du CSV, Grep ^([^;]*;){11}[^;]*$ : 34 lignes (en-tête + 33), donc 12 colonnes partout et aucun ; dans un champ. Grep par classe (colonne 9) : a = 1, b = 11, c = 12, d = 9 ; 1 + 11 + 12 + 9 = 33.
  • Citations : 176 occurrences de noms de scripts dans 27 livrables .md ; EVAL2 rejoués par AMEL1-V1b (V1b\rejeu.md, V1b\echec.md, 17 occurrences chacun) ; AMEL1-I2-GITIGNORE.md:113-120 liste 8 scripts EVAL avec les motifs PROFIL, NOM (chemin du profil, nom de compte).

3. Écarts au compte attendu de la fiche

Compte attendu 33 (17 + 16) : conforme. Aucun .ps1. Aucun script d'EVAL\scripts ni d'EVAL2\scripts n'a été exécuté.

4. Tableau (détail dans le CSV)

Classes : (a) à intégrer à Tools\ ; (b) trace de lot à laisser ; (c) obsolète, corbeille sur accord ; (d) à fusionner dans un outil existant. Ind. = Tools\Indicateurs.py.

Script Lot Fonction Dernier usage (modif.) Doublon Tools Classe Cible
EVAL\EvalT2_Commits.py EVAL-T2 commits des 5 dépôts et tickets 2026-10-11 05:39 Ind. releve_commits (partiel), remplacé par eval2_commits b trace
EVAL\eval_boss.py EVAL-T4 file de build et arbitrages Big Boss 2026-10-14 22:03 (retouche I2) aucun b trace
EVAL\eval_commandes.py EVAL-T6 commandes répétées 2026-10-14 22:03 Ind. releve_commandes, remplacé par eval2_commandes b trace
EVAL\eval_fiches.py EVAL-T5 qualité fiches et registres 2026-10-11 05:49 Ind. releve_fiches, remplacé par eval2_fiches b trace
EVAL\eval_journal.py EVAL-T3 CHG et ERR 2026-10-11 05:47 Ind. releve_journal, remplacé par eval2_journal b trace
EVAL\eval_load.py EVAL-T4 chargeur Big Boss (sonde v1) 2026-10-14 22:03 aucun c corbeille sur accord
EVAL\eval_probe.py EVAL-T4 liste des sessions 2026-10-14 22:03 Ind. lister_principales (autre sortie) c corbeille sur accord
EVAL\eval_probe2.py EVAL-T4 forme des entrées Big Boss 2026-10-14 22:03 aucun c corbeille sur accord
EVAL\eval_probe3.py EVAL-T4 liste des messages Big Boss 2026-10-14 22:03 aucun c corbeille sur accord
EVAL\eval_probe4.py EVAL-T4 entrées sans corps peer (indices en dur) 2026-10-14 22:03 aucun c corbeille sur accord
EVAL\eval_probe5.py EVAL-T4 mentions BUILD-* 2026-10-11 05:37 aucun c corbeille sur accord
EVAL\eval_probe6.py EVAL-T4 messages sans mot-clé 2026-10-11 05:37 aucun c corbeille sur accord
EVAL\eval_probe7.py EVAL-T4 en-têtes U8/CAM/... 2026-10-11 05:37 aucun c corbeille sur accord
EVAL\eval_probe8.py EVAL-T4 messages hors origin.body 2026-10-14 22:03 aucun c corbeille sur accord
EVAL\eval_sessions.py EVAL-T1a sessions principales 2026-10-11 05:39 Ind. releve_sessions, remplacé par eval2_sessions b trace
EVAL\eval_sessions_recount.py EVAL-T1a recompte sk-recount 2026-10-11 05:41 aucun b trace
EVAL\eval_subagents.py EVAL-T1b sous-agents 2026-10-11 05:38 Ind. releve_sousagents, remplacé par eval2_subagents b trace
EVAL2\eval2_commandes.py EVAL2-T6 commandes et refus du crochet 2026-10-14 18:46 Ind. releve_commandes (agrégats) d Ind. --detail
EVAL2\eval2_commits.py EVAL2-T2 commits, tickets, reflog, verrous 2026-10-14 19:00 Ind. releve_commits (3 dépôts, I6) d Ind. --detail ou ReleveCommits.py
EVAL2\eval2_commun.py EVAL2-T4 essais communs (données saisies) 2026-10-14 18:50 Ind. releve_essais lit ses CSV b trace
EVAL2\eval2_fiches.py EVAL2-T5 fiches, registres, écarts 2026-10-14 18:57 Ind. releve_fiches d Ind. --detail
EVAL2\eval2_journal.py EVAL2-T3 CHG, ERR, décisions 2026-10-14 18:56 Ind. releve_journal d Ind. --detail
EVAL2\eval2_lf.py EVAL2-T9 normalise CR en LF (data) 2026-10-14 19:13 FileCheck.ps1 relève sans corriger a NormaliserLF.py
EVAL2\eval2_meta.py EVAL2-T1a app_meta.csv depuis un fichier tool-results 2026-10-14 18:47 Ind. lire_meta_app c corbeille sur accord
EVAL2\eval2_post.py EVAL2-T5 triage manuel des écarts (dictionnaire) 2026-10-14 18:59 Ind. i_I10b lit le CSV b trace
EVAL2\eval2_recount.py EVAL2-T1a recompte ebc15012 2026-10-14 18:51 aucun b trace
EVAL2\eval2_refus.py EVAL2-T6b classement v2, échantillon 2026-10-14 18:51 Ind. classe_v2 d Ind. --detail
EVAL2\eval2_sessions.py EVAL2-T1a sessions principales P3 2026-10-14 18:50 Ind. releve_sessions d Ind. --detail
EVAL2\eval2_sonde_meta.py EVAL2-T1a sonde du chemin Roaming 2026-10-14 18:47 Ind. lire_meta_app (MSIX) c corbeille sur accord
EVAL2\eval2_sonde_objectif.py EVAL2-T1a sonde lignes 9235 et 9343 2026-10-14 18:44 aucun c corbeille sur accord
EVAL2\eval2_subagents.py EVAL2-T1b sous-agents P3 2026-10-14 18:45 Ind. releve_sousagents, FicheStats d Ind. --detail
EVAL2\eval2_subagents_sessions.py EVAL2-T1b rattachement aux sessions 2026-10-14 18:51 Ind. lire_meta_app (le script lit Roaming) d Ind. --detail
EVAL2\eval2_val.py EVAL2-T5 verdicts des VAL 2026-10-14 18:58 Ind. verdicts_val d Ind. --detail

Totaux par classe

Classe EVAL EVAL2 Total
(a) intégrer à Tools\ 0 1 1
(b) trace de lot 8 3 11
(c) obsolète, corbeille sur accord 9 3 12
(d) fusionner dans un outil existant 0 9 9
Total 17 16 33

Ce que couvre Indicateurs.py et ce qu'il ne couvre pas

  • Établi (docstring Indicateurs.py:5-7, intitulés de relevés l. 267, 405, 589, 825, 861, 955, 985) : il a repris la logique de eval2_sessions/meta (I1, I12, G-a, G-b), eval2_subagents/_sessions (I4, I9, I13, I14), eval2_commandes/refus (I2a, I7, I10a), eval2_commits (I6), eval2_journal (I5, I11a), eval2_fiches/val/post (I8, I10b, I11b), et il lit commun.csv/builds.csv (I3, G-c, G-d).
  • Établi : il n'écrit que le fichier --sortie (Indicateurs.py:21-22, « Lecture seule partout, sauf le fichier --sortie »). Les CSV de détail des scripts (sessions.csv, commandes.csv, refus.csv, subagents.csv, tickets.csv, chg.csv, err.csv, decisions.csv, fiches*.csv, val.csv, ecarts.csv) ne sont donc plus produits par l'outil. D'où la classe (d) et la proposition d'une option --detail <dossier>.
  • Non couvert (voir colonne doublon_tools du CSV) : tickets, reflog, verrous, tags et ls-remote ; délais décision vers livraison et retard CHG ; rotation par lot, refus par motif et parallélisme ; sensibilité à la coupure et builders coupés ; dp716 ; échantillon de relecture de eval2_refus.
  • Non reproductible dans l'outil : eval2_commun.py (dictionnaire BUILDS saisi à la main, eval2_commun.py:28-50) et eval2_post.py (dictionnaire RETENU, l. 13-39) sont des tables de données de P3 ; Indicateurs.py annonce « non mesurable » hors P3 sans --builds-csv/--commun-csv (l. 30-31).

5. Propositions de normalisation (classes a et d)

Script Cible Paramètres à normaliser Code de sortie Cas de non-régression (commande, sortie attendue citée)
eval2_lf.py Tools\NormaliserLF.py --dossier, --extensions, --appliquer (à blanc par défaut), instantané Snapshot.ps1 avant écriture 0 conforme, 1 à corriger, 2 erreur EVAL2-STATS.md:187 : « 516 CR retirés sur 7 fichiers », puis recompte à 0 CR ; à rejouer sur une copie des 7 fichiers sous Saved\
eval2_commandes.py, eval2_refus.py Tools\Indicateurs.py --detail --detail, --hook, graine en paramètre, plus de runpy 0/1/2 python -I -X utf8 Tools\Indicateurs.py --debut "2026-10-11 05:30:00" --fin "2026-10-14 18:25:41" --coupure "2026-10-13 12:07:16" --sortie <tmp>.md → AMEL1-MESURE-P3.md:85-87 (I2a 36 sur 76), :101 (I7a 14), :103-104 (26 sur 5910)
eval2_commits.py Tools\Indicateurs.py --detail ou Tools\ReleveCommits.py dépôts, bornes, coupure en paramètres, GIT_TERMINAL_PROMPT=0 et délai sur ls-remote 0/1/2 même commande → AMEL1-MESURE-P3.md:98-100 (I6 12,2 ; 6 refus ; 49 commits) ; EVAL2-T2-INV.md:97 (34 + 15 + 0 = 49 ; 82 verrous pris = 82 rendus)
eval2_fiches.py, eval2_val.py Tools\Indicateurs.py --detail racine etat, bornes, sortie 0/1/2 (1 si VAL sans verdict) AMEL1-MESURE-P3.md:27 (I8a 1 sur 34), :105-107 (I8b 4 sur 69) ; EVAL2-T5-INV.md:79-80 (P3a 30 VAL, P3b 57 VAL)
eval2_journal.py Tools\Indicateurs.py --detail bornes, chemins 0/1/2 AMEL1-MESURE-P3.md:94-97 (I5a 50 sur 50, I5b 29,3 h)
eval2_sessions.py Tools\Indicateurs.py --detail fenêtre (existe), dossier, chemin MSIX par défaut 0/1/2 AMEL1-MESURE-P3.md:78-84 (I1a 20,4 % = 605,6 M / 2970 M ; I1b 36,1 %) ; EVAL2-T1a-INV.md:133 (42 sessions jetables, 61 tours)
eval2_subagents.py, eval2_subagents_sessions.py Tools\Indicateurs.py --detail coupure, racine, chemin MSIX 0/1/2 (aujourd'hui 0/1/3) AMEL1-MESURE-P3.md:91-93 (I4a 37 passages, 144,2 M), :108-110 (I9 11 sur 14) ; EVAL2-T1b-INV.md:36 (258 agents, 562,4 M, 37 sessions)

Règles communes : aucun chemin en dur (racine, etat, profil, dépôts passés en paramètres) ; sorties en LF (lineterminator="\n") ; plus de code exécuté à l'import ; code de sortie 0/1/2 ; aucun nom de compte écrit (%USERPROFILE%). Les 33 scripts n'étant pas sous git (§ 2), faire une copie sous Tools\ ou un instantané avant tout déplacement (sk-change-safety).

6. Établi / estimé / incertain

  • Établi : les 33 chemins et leurs dates de modification (ls -l) ; les entrées, sorties et paramètres lus en tête de chaque script (Read) ; l'absence des 33 scripts de git (git ls-files = 0, .gitignore:75) ; les fonctions d'Indicateurs.py citées ; les valeurs attendues citées de AMEL1-MESURE-P3.md et des INV EVAL2.
  • Estimé : « dernier usage ». Les 8 scripts EVAL modifiés le 2026-10-14 22:03 (eval_boss, eval_commandes, eval_load, eval_probe, eval_probe2, eval_probe3, eval_probe4, eval_probe8) sont exactement ceux listés par AMEL1-I2-GITIGNORE.md:113-120 (motifs PROFIL, NOM) : retouche probable de AMEL1-I2, contenu non comparé. Le rejeu des EVAL2 par AMEL1-V1b est déduit de V1b\rejeu.md, sans relire sa date.
  • Incertain : (1) corps des scripts non lus au-delà des en-têtes (50 premières lignes, sauf petits scripts lus entiers) : les sorties exactes de chaque script viennent des docstrings et des Grep d'écriture ; (2) la classe (b) des scripts EVAL repose sur leur rôle de preuve des chiffres du doc 33 (EVAL-STATS.md), à confirmer par l'utilisateur ; une fois ces chiffres reproduits par Indicateurs.py ils pourraient passer en (c) ; (3) eval2_subagents_sessions.py lit le chemin Roaming (vide sous MSIX d'après lp-paths), EVAL2-STATS.md:174 note qu'il a tourné « sous le Python d'Unreal » : lecture non vérifiée ; (4) le code de sortie des scripts sans sys.exit est 0 s'il n'y a pas d'exception (non exécutés) ; (5) rien n'a été mesuré sur les cas de non-régression : les valeurs sont citées, pas rejouées ; (6) les relevés sur les dépôts 5.5 (jeu et modules) de eval2_commits.py ne sont pas couverts par Indicateurs.py (3 dépôts).
  • Piège de forme : les CSV de EVAL2\data\ sont en CRLF ou mixtes (EVAL2-T9-VAL.md:95-96) car les scripts utilisent csv.writer sans lineterminator ; à corriger à l'intégration.

7. Fichiers à commiter

Fichiers écrits par cette fiche (suivis en texte seul, .md et .csv de etat\) :

  • A Docs/Migration/etat/EVAL2/AMEL1/OUTIL1/OUTIL1-I1a-INV.md (jeu)
  • A Docs/Migration/etat/EVAL2/AMEL1/OUTIL1/OUTIL1-I1a.csv (jeu)

Tours : 14 / 40