26 KiB
Fiche EVAL-T6 — Niveau N1 — Modèle prévu sonnet | utilisé Sonnet 5.5 (claude-sonnet-5-5) — Agent lp-inventory — Skills sk-protocol, sk-recount, sk-windows-shell (+ lp-paths préchargé)
EVAL-T6-INV : commandes et contrôles répétés dans les transcriptions, usage et création de Tools\* (2026-10-11)
Fenêtre : 2026-10-08 05:30 → 2026-10-11 05:30 (UTC+2) ; P0 → 2026-10-08 13:30, P1 → 2026-10-10 10:45:20, P2 → fin. Session b339a92a et ses sous-agents exclus. Les chemins personnels et le contenu des commandes ne sont pas repris : seuls les motifs normalisés sont cités.
1. Commandes exactes
Commande unique, rejouable (PowerShell ou Git Bash, ≈ 16 s, code de sortie 0, stderr vide) :
python -I -X utf8 "D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL\scripts\eval_commandes.py"
Le script lit %USERPROFILE%\.claude\projects\D--Game-LifePlay-master-5-8\ et ...\D--Game-LifePlay-master-5-5\ (*.jsonl et <session>\subagents\agent-*.jsonl + .meta.json), lit data\sessions.csv et data\subagents.csv (lecture seule), liste Tools\ (premier niveau, 25 fichiers) et lance, par fichier : git -C "D:\Game\LifePlay-master 5.8" log --diff-filter=A --format="%h|%ad|%s" --date=iso -- Tools/<f> (lecture seule). Il écrit data\commands.csv, data\commands_prefixes.csv, data\commands_tools.csv, data\commands_resume.txt (noms neufs, aucun écrasement). Sortie complète : data\commands_resume.txt.
Méthode : un appel = un bloc tool_use (identifiant dédoublonné sur l'ensemble des fichiers), horodaté à la ligne de transcription, retenu si dans la fenêtre. Durée = horodatage du tool_result (même tool_use_id) moins celui du tool_use. Acteur = principale ou agentType du .meta.json. Fiche d'un sous-agent = colonne fiche de subagents.csv, à défaut le premier identifiant LOT-Tn de la description du .meta.json. Une famille compte au plus une fois par appel. Regex insensibles à la casse (sauf f.VERROU), appliquées au champ command de Bash et PowerShell (« shell »), sauf mention.
Regex par famille (GIT = \bgit(\s+(-C|-c|--git-dir|--work-tree)(=|\s+)("[^"]*"|'[^']*'|\S+))*\s+) :
- (a)
Get-FileHash;\bmd5sum\b;\bsha(1|224|256|384|512)sum\b;certutil(\.exe)?\s+[^\n]*-hashfile; info :hashlib\.(md5|sha\d*). - (b)
(Get-CimInstance|Get-WmiObject)[\s\S]{0,200}?Win32_Process;Get-Process\b[^\n]*(unreal|lifeplay);\btasklist\b; info :\bStop-Process\b|\btaskkill\b. - (c)
GIT status\b;GIT diff\b[^\n|;&]*--(stat|numstat|name-status)\b;GIT log\b;GIT show\b[^\n|;&]*--name-status;GIT ls-files\b[^\n|;&]*--eol; comptes de CR :tr\s+-d\s+\S*\\r|\$'\\r|\[char\]\s*13|\bb['"]\\r['"]|\.count\(\s*b?['"]\\r|r\b|0x0d\b|grep\s+-c\S*\s+\S*\r`. - (d) un motif par fichier de
Tools\:(?<![\w.\-])<nom exact>(?![\w])(correspondance sur le nom, quel que soit le dossier) ;UnrealEditor-Cmd|-run=\w+sansRunCommandlet\.ps1dans la même commande ;\bRunUAT\b|\bBuildCookRun\bsansBuildDebug\.ps1. - (e) shell et outil Grep (champs pattern + path + glob) ; motif
Accessed\s+None,LogBlueprint,LogScript,\bError:,\bWarning:ET contexte\.log\b|[\\/]Logs[\\/]|Saved[\\/]Logs; variante « avec compte » : contexte journal + (grep\s+-[a-z]*c|Measure-Object|\.Count\b|-Count\b|\bwc\s+-l|output_mode.{0,4}count) + un des cinq motifs. - (f) tous outils texte (shell ; Read / Edit / Write :
file_path; Grep : pattern + path ; Glob) :VERROU(casse exacte),NUMEROS\.md,REPO-JOURNAL\.md, infoetat[\\/]+REPO\b; shell seul :(\bmkdir\b|New-Item|\bmd\b|Remove-Item|\brmdir\b)[^\n]*verrou. - (g)
(Get-ChildItem|\bgci\b|\bdir\b|\bls\b)[\s\S]*?-Recurse[\s\S]*?Measure-Object[\s\S]*?-Sum;(^|[\s;|&])du\s+-[a-zA-Z]*[sh]; info :LifePlay_Build\w*proche deMeasure-Object|LastWriteTime|du |ls -l. - (h)
\b(python3?|py)(\.exe)?\b[^\n|;]*?\s-\s*<<(heredoc) ;\|\s*(python3?|py)(\.exe)?\b[^\n|]*\s-(\s|$)(here-string redirigée) ;python … -c "ou'avec commande > 200 caractères ; outil Write vers.py|.ps1|.sh|.bat|.cmdhorsTools\; « lancé après écriture » : commande shell contenant le chemin complet d'un script écrit plus tôt dans la même transcription. - (i) outils
ListAgentsetSendMessage(par nom d'outil, pas Bash). - Préfixes : première commande de la commande, après retrait des
cd …, des affectationsVAR=…/$x = …, des options-…; deux premiers mots en minuscules ; chemin →<chemin>(ou nom du script si extensionps1|py|sh|bat|cmd|exe|js), chaîne entre guillemets →<chaîne>, variable →<var>.
Recoupements (deuxième méthode, sk-recount) : script indépendant (parcours os.walk, fenêtre comparée en UTC sur chaîne, sous-chaînes sans regex) conservé dans le bac à sable de la session, non versionné ; sorties au § 3. Comptes de commands_tools.csv relus par python -I -X utf8 -c (somme des appels 1 185 ; 14 scripts à 34 appels ou moins ; 5 à 2 appels ou moins).
2. Comptes bruts
2.1 Population examinée
| Élément | Valeur |
|---|---|
Fichiers principaux lus (hors b339a92a) / sous-agents |
39 / 361 |
tool_use bruts / identifiants en double ignorés / dans la fenêtre |
25 807 / 1 365 / 17 890 (principale 6 897, sous-agents 10 993) |
| Bash + PowerShell examinés | 7 764 (Bash 6 946, PowerShell 818 ; principale 2 966, sous-agents 4 798 ; P0 395, P1 4 611, P2 2 758) |
| Durée mesurée des appels shell | n = 7 763, moyenne 7,3 s, médiane 1,6 s, somme 15,7 h |
Sous-agents absents de subagents.csv |
101 fichiers ; fiche reprise de la description : 44 ; 35 agents / 1 838 appels de la fenêtre sans fiche (lp-cart 1 223, lp-builder 347, lp-validator 152, lp-inventory 60, lp-impl 54, lp-writer 1) |
Recoupement : sessions.csv donne Bash+PowerShell = 2 966 et tous outils = 6 897 pour les principales (34 sessions, 0 écart par session) ; mesure ici 2 966 et 6 897. Sous-agents : subagents.csv somme de appels_outils = 11 007 ; mesure ici 10 993 (écart 14, 0,13 %).
2.2 Familles (hors scripts Tools\, voir 2.3)
Colonnes : total | principale | sous-agents | P0 / P1 / P2 | sessions-agents distincts | fiches distinctes | durée moyenne / médiane (s) | coût brut = appels × moyenne (h). Les lignes en gras sont l'union des appels de la famille (un appel multi-motifs compté une fois).
| Famille / motif | Total | Princ. | Sous-ag. | P0 / P1 / P2 | Unités | Fiches | Durée moy / méd | Coût (h) |
|---|---|---|---|---|---|---|---|---|
| a. empreintes (union) | 543 | 256 | 287 | 0 / 164 / 379 | 138 | 90 | 5,6 / 2,3 | 0,85 |
| a.md5sum | 314 | 137 | 177 | 0 / 86 / 228 | 93 | 62 | 5,1 / 2,2 | 0,45 |
| a.Get-FileHash | 196 | 111 | 85 | 0 / 51 / 145 | 48 | 25 | 6,7 / 2,4 | 0,37 |
| a.sha*sum | 28 | 10 | 18 | 0 / 19 / 9 | 17 | 12 | 9,1 / 3,5 | 0,07 |
| a.certutil -hashfile | 4 | 1 | 3 | 0 / 1 / 3 | 3 | 2 | 3,7 / 3,6 | 0,00 |
| a.hashlib (info) | 12 | 4 | 8 | 0 / 11 / 1 | 8 | 6 | 1,8 / 1,5 | 0,01 |
| b. processus (union) | 455 | 216 | 239 | 9 / 222 / 224 | 75 | 55 | 10,2 / 2,1 | 1,29 |
| b.Get-CimInstance Win32_Process | 107 | 49 | 58 | 4 / 20 / 83 | 24 | 15 | 17,8 / 2,0 | 0,53 |
| b.Get-Process Unreal/LifePlay | 172 | 80 | 92 | 4 / 97 / 71 | 46 | 31 | 8,1 / 2,1 | 0,39 |
| b.tasklist | 173 | 80 | 93 | 1 / 107 / 65 | 41 | 31 | 7,4 / 2,2 | 0,36 |
| b.Stop-Process / taskkill (info) | 30 | 21 | 9 | 1 / 13 / 16 | 12 | 6 | 14,8 / 7,6 | 0,12 |
| c. état git, fins de ligne (union) | 1 794 | 827 | 967 | 33 / 778 / 983 | 248 | 180 | 3,2 / 1,9 | 1,60 |
| c.git status | 1 156 | 569 | 587 | 17 / 498 / 641 | 235 | 171 | 3,0 / 2,0 | 0,97 |
| c.git log | 610 | 357 | 253 | 15 / 289 / 306 | 176 | 121 | 3,0 / 2,0 | 0,51 |
| c.git diff --stat/--numstat/--name-status | 476 | 183 | 293 | 6 / 204 / 266 | 145 | 109 | 2,9 / 1,9 | 0,39 |
| c.comptes de CR | 248 | 84 | 164 | 5 / 127 / 116 | 86 | 67 | 3,9 / 1,7 | 0,27 |
| c.git ls-files --eol | 109 | 27 | 82 | 0 / 23 / 86 | 53 | 41 | 2,2 / 1,7 | 0,07 |
| c.git show --name-status | 70 | 27 | 43 | 0 / 0 / 70 | 36 | 28 | 3,0 / 2,4 | 0,06 |
| d. scripts, union (25 scripts de 2.3 + les deux lignes ci-dessous) | 996 | 407 | 589 | 9 / 572 / 415 | 155 | 102 | 13,3 / 2,2 | 3,68 |
| d.UnrealEditor-Cmd / -run= sans RunCommandlet.ps1 | 68 | 31 | 37 | 0 / 38 / 30 | 22 | 18 | 9,2 / 1,7 | 0,17 |
| d.RunUAT / BuildCookRun sans BuildDebug.ps1 | 32 | 9 | 23 | 3 / 20 / 9 | 20 | 14 | 17,8 / 1,6 | 0,16 |
| e. journaux, shell + Grep (union) | 272 | 83 | 189 | 1 / 160 / 111 | 72 | 43 | 2,0 / 1,5 | 0,15 |
| e.Warning: | 124 | 16 | 108 | 1 / 84 / 39 | 47 | 34 | 1,9 / 1,3 | 0,07 |
| e.Error: | 101 | 20 | 81 | 0 / 72 / 29 | 50 | 35 | 2,2 / 1,8 | 0,06 |
| e.Accessed None | 82 | 39 | 43 | 0 / 41 / 41 | 25 | 8 | 1,9 / 1,4 | 0,04 |
| e.LogBlueprint | 32 | 11 | 21 | 0 / 5 / 27 | 18 | 7 | 2,3 / 1,6 | 0,02 |
| e.LogScript | 27 | 9 | 18 | 0 / 13 / 14 | 9 | 4 | 2,0 / 2,0 | 0,01 |
| e.avec compte (sous-ensemble) | 126 | 53 | 73 | 1 / 76 / 49 | 40 | 27 | 2,7 / 1,9 | 0,09 |
| f. verrou, tickets, tous outils (union) | 1 085 | 363 | 722 | 0 / 26 / 1 059 | 78 | 65 | 2,2 / 1,6 | 0,68 |
| f.dossier etat/REPO (info) | 1 045 | 339 | 706 | 0 / 21 / 1 024 | 77 | 65 | 2,2 / 1,6 | 0,65 |
| f.VERROU | 323 | 116 | 207 | 0 / 12 / 311 | 68 | 56 | 2,0 / 1,7 | 0,18 |
| f.NUMEROS.md | 292 | 130 | 162 | 0 / 6 / 286 | 51 | 40 | 2,2 / 1,8 | 0,18 |
| f.REPO-JOURNAL.md | 285 | 28 | 257 | 0 / 2 / 283 | 58 | 49 | 1,9 / 1,6 | 0,15 |
| f.mkdir / New-Item / Remove verrou | 141 | 70 | 71 | 0 / 4 / 137 | 49 | 37 | 2,1 / 1,8 | 0,08 |
| g. taille / date de build (union) | 252 | 128 | 124 | 8 / 145 / 99 | 74 | 50 | 8,1 / 2,4 | 0,57 |
| g.dossier de build + taille/date (info) | 203 | 114 | 89 | 1 / 114 / 88 | 53 | 33 | 6,3 / 2,2 | 0,35 |
| g.gci -Recurse … Measure-Object -Sum | 54 | 12 | 42 | 2 / 34 / 18 | 33 | 22 | 4,5 / 3,1 | 0,07 |
| g.du | 36 | 21 | 15 | 5 / 21 / 10 | 21 | 12 | 26,1 / 4,8 | 0,26 |
| h. Python, scripts temporaires (union) | 684 | 311 | 373 | 4 / 443 / 237 | 106 | 75 | 4,1 / 1,6 | 0,78 |
| h.python heredoc | 282 | 201 | 81 | 3 / 162 / 117 | 45 | 22 | 4,2 / 1,8 | 0,33 |
| h.python -c > 200 car. | 189 | 70 | 119 | 0 / 149 / 40 | 67 | 47 | 2,9 / 1,7 | 0,15 |
| h.Write de script (.py/.ps1/.sh/.bat hors Tools) | 135 | 26 | 109 | 0 / 78 / 57 | 45 | 34 | 0,3 / 0,0 | 0,01 |
| h.script lancé après écriture (même transcription) | 92 | 17 | 75 | 0 / 67 / 25 | 33 | 26 | 12,1 / 1,9 | 0,31 |
| h.here-string redirigée vers python | 1 | 1 | 0 | 1 / 0 / 0 | 1 | 0 | 2,2 / 2,2 | 0,00 |
| i. SendMessage | 696 | 696 | 0 | 4 / 183 / 509 | 28 | 0 (la principale n'a pas de fiche) | 2,6 / 1,6 | 0,51 |
| i.ListAgents | 24 | 24 | 0 | 0 / 12 / 12 | 7 | 0 | 0,5 / 0,0 | 0,00 |
Composition par outil, relevée avec le script (sonde de la session, hors dépôt) : f = shell 677 sur 1 085, outils de fichier 408 (pour le seul motif etat/REPO : Edit 237, Read 106, Write 47, Grep 11, Glob 1) ; e = shell 186 sur 272, Grep 86. Les autres familles sont du shell seul, sauf h.Write.
Acteurs dominants (extrait de commands_resume.txt, 4 premiers) : git status : principale 569, lp-gardien 185, lp-validator 129, lp-builder 85 ; git log : principale 357, lp-gardien 70, lp-validator 48, lp-cart 43 ; diff : principale 183, lp-gardien 121, lp-validator 77, lp-impl 34 ; comptes de CR : principale 84, lp-impl 51, lp-gardien 47, lp-validator 19 ; md5sum : principale 137, lp-validator 52, lp-gardien 42, lp-impl 37 ; Get-FileHash : principale 111, lp-builder 62, lp-validator 17, lp-inventory 6 ; processus (CIM) : principale 49, lp-builder 36, lp-validator 11, lp-gardien 5 ; tasklist : principale 80, lp-builder 40, lp-validator 22, lp-impl 14 ; Warning: lp-builder 42, lp-validator 32, lp-cart 18, principale 16 ; Accessed None : principale 39, lp-cart 25, lp-validator 14, lp-inventory 4 ; VERROU : lp-gardien 152, principale 116, lp-writer 53 ; REPO-JOURNAL : lp-gardien 254, principale 28 ; python heredoc : principale 201, lp-cart 31, lp-validator 22, lp-impl 9 ; python -c long : principale 70, lp-cart 37, lp-validator 26, lp-impl 18 ; script écrit puis lancé : lp-builder 23, lp-impl 23, lp-validator 20, principale 17.
Lots les plus concernés (shell, d'après la sonde sur commands.csv ; lot « - » = principale ou agent sans lot) : c : U8 105, OBB 102, ETAT2 72, STE 59 ; f : OBB 90, STE 57, STF 52, AG 49 ; a : U8 43, ETAT2 25, OBB 23, U7b 23 ; b : U7b 40, U4 27, U8 25, U5 24 ; g : OBB 30, U8 28, U7 22 ; h : U7b 40, U7 35, U1 26, U8 23.
Part des appels shell par sous-période (union de la famille ÷ appels shell de la période : P0 395, P1 4 611, P2 2 758) : c 8,4 % → 16,9 % → 35,6 % ; a 0 % → 3,6 % → 13,7 % ; b 2,3 % → 4,8 % → 8,1 %.
2.3 Scripts de Tools\ (premier niveau, 25 fichiers) : usage dans la fenêtre et création git
Appels = mention du nom dans la commande shell (exécution ou lecture), pas toujours une exécution. « Accès » = Read / Edit / Write / Grep / Glob dont le texte porte le nom. Création = git log --diff-filter=A (le plus ancien commit d'ajout) ; lot = étiquette du sujet du commit. Ordre : appels décroissants.
| Fichier | Commit | Création (+0200) | Lot (sujet) | Appels P0 / P1 / P2 | Total | Princ. / Sous-ag. | Accès | Unités | Fiches |
|---|---|---|---|---|---|---|---|---|---|
| RunCommandlet.ps1 | 9b7e971 |
2026-09-29 01:12 | L1 | 1 / 104 / 75 | 180 | 38 / 142 | 23 | 52 | 33 |
| UeState.ps1 | 866e869 | 2026-10-09 16:37 | OUT1 | 0 / 75 / 86 | 161 | 62 / 99 | 2 | 44 | 22 |
| Build.ps1 | 8e21f6b | 2026-10-08 17:39 | U3 | 0 / 100 / 25 | 125 | 47 / 78 | 17 | 51 | 32 |
| Snapshot.ps1 | 1122e17 |
2026-09-29 00:56 | L0 | 2 / 85 / 34 | 121 | 97 / 24 | 7 | 37 | 10 |
| LogStats.ps1 | 39fac16 |
2026-09-29 01:01 | L0 | 1 / 55 / 12 | 68 | 28 / 40 | 13 | 26 | 18 |
| Engine.ps1 | 26f2be7 | 2026-10-08 16:37 | U2 | 0 / 51 / 9 | 60 | 20 / 40 | 3 | 27 | 19 |
| FileCheck.ps1 | 866e869 | 2026-10-09 16:37 | OUT1 | 0 / 37 / 23 | 60 | 30 / 30 | 2 | 20 | 11 |
| BuildDebug.ps1 | b8414af |
2026-10-07 15:49 | Dbg | 1 / 35 / 21 | 57 | 23 / 34 | 10 | 26 | 11 |
| EtatDir.ps1 | 1d1d283 | 2026-10-09 15:18 | ETAT2 | 0 / 42 / 8 | 50 | 26 / 24 | 15 | 15 | 6 |
| CheckIntegrity.ps1 | 39fac16 |
2026-09-29 01:01 | L0 | 2 / 17 / 28 | 47 | 13 / 34 | 15 | 21 | 15 |
| uasset58.py | 2883b80 | 2026-10-10 13:22 | STF | 0 / 0 / 40 | 40 | 14 / 26 | 6 | 9 | 3 |
| CheckPackage.ps1 | 6eb1544 | 2026-10-10 11:36 | OBB | 0 / 0 / 34 | 34 | 8 / 26 | 13 | 13 | 10 |
| FicheStats.py | 80022ad | 2026-10-09 17:48 | TPL1 | 0 / 20 / 12 | 32 | 22 / 10 | 11 | 10 | 4 |
| ReimportCorrectif.ps1 | 9cf045e |
2026-09-29 02:09 | Tools | 0 / 28 / 4 | 32 | 5 / 27 | 13 | 14 | 11 |
| uasset.py | 8c6149e | 2026-10-09 16:38 | OUT1 | 0 / 26 / 4 | 30 | 28 / 2 | 1 | 6 | 1 |
| Restore.ps1 | 1122e17 |
2026-09-29 00:56 | L0 | 2 / 20 / 5 | 27 | 20 / 7 | 2 | 15 | 7 |
| SplitModules.ps1 | 4b8688b |
2026-10-02 20:55 | MODS14 | 0 / 4 / 20 | 24 | 6 / 18 | 8 | 8 | 5 |
| AssetHeaders.ps1 | 1122e17 |
2026-09-29 00:56 | L0 | 0 / 18 / 2 | 20 | 2 / 18 | 4 | 9 | 7 |
| BuildCollections.py | 2a1eede |
2026-10-02 14:11 | O7d | 1 / 0 / 4 | 5 | 2 / 3 | 2 | 4 | 3 |
| CollectDebugArtifacts.ps1 | b8414af |
2026-10-07 15:49 | Dbg | 0 / 3 / 0 | 3 | 0 / 3 | 0 | 1 | 1 |
| AuditScriptDeps.py | b6e5871 |
2026-10-02 01:47 | O1 | 1 / 1 / 0 | 2 | 1 / 1 | 0 | 2 | 1 |
| DiffRemplacementNoeuds.py | 5d1f9a1 |
2026-09-30 17:05 | L7a | 0 / 2 / 0 | 2 | 0 / 2 | 1 | 1 | 1 |
| FixTextureMips.py | 5f6b3fb |
2026-10-02 09:07 | O4 | 1 / 1 / 0 | 2 | 0 / 2 | 0 | 2 | 2 |
| SummarizeDebugCsv.ps1 | b8414af |
2026-10-07 15:49 | Dbg | 0 / 2 / 0 | 2 | 0 / 2 | 0 | 1 | 1 |
| AuditAssets.py | b4c4886 |
2026-10-02 00:41 | O0 | 1 / 0 / 0 | 1 | 0 / 1 | 0 | 1 | 1 |
Somme des colonnes « Total » : 1 185 mentions ; union d.* = 996 appels distincts, parce qu'une commande cite souvent plusieurs scripts. Aucun des 25 fichiers n'a 0 appel. Créés pendant la fenêtre : Engine.ps1 (10-08 16:37, U2), Build.ps1 (10-08 17:39, U3), EtatDir.ps1 (10-09 15:18), UeState.ps1 et FileCheck.ps1 (10-09 16:37, OUT1), uasset.py (10-09 16:38), FicheStats.py (10-09 17:48), CheckPackage.ps1 (10-10 11:36), uasset58.py (10-10 13:22) : neuf scripts, cités 30 à 161 fois chacun. Pour CheckPackage.ps1 et uasset58.py (appels tous en P2), la colonne ne permet pas de dire s'il y a des appels avant la création (non vérifié à la minute près).
2.4 Top 40 des préfixes normalisés (Bash + PowerShell ; 1 335 préfixes distincts pour 7 764 appels)
Colonnes : appels | sessions-agents | fiches.
| # | Préfixe | Appels | Unités | Fiches | # | Préfixe | Appels | Unités | Fiches |
|---|---|---|---|---|---|---|---|---|---|
| 1 | grep <chaîne> |
723 | 117 | 90 | 21 | get-content <chemin> |
76 | 7 | 1 |
| 2 | grep <chemin> |
374 | 75 | 51 | 22 | mkdir <var> |
75 | 47 | 39 |
| 3 | ls <chemin> |
371 | 163 | 124 | 23 | pwsh <chemin> |
75 | 38 | 34 |
| 4 | pwsh <chaîne> |
311 | 73 | 59 | 24 | mkdir <chemin> |
73 | 56 | 46 |
| 5 | python <<heredoc |
226 | 42 | 19 | 25 | pwsh <var> |
62 | 22 | 17 |
| 6 | for f | 214 | 97 | 72 | 26 | git show | 58 | 34 | 21 |
| 7 | git diff | 197 | 92 | 67 | 27 | git ls-files | 45 | 29 | 16 |
| 8 | echo <chaîne> |
196 | 72 | 63 | 28 | get-childitem <chemin> |
44 | 11 | 2 |
| 9 | cat >> | 177 | 25 | 11 | 29 | awk <chaîne> |
44 | 19 | 17 |
| 10 | git status | 154 | 67 | 42 | 30 | for r | 42 | 22 | 11 |
| 11 | cat <chemin> |
149 | 71 | 49 | 31 | for i | 39 | 19 | 16 |
| 12 | sed <chaîne> |
138 | 30 | 21 | 32 | git branch | 39 | 31 | 25 |
| 13 | cat > | 122 | 53 | 44 | 33 | find <chemin> |
37 | 23 | 13 |
| 14 | git log | 112 | 42 | 16 | 34 | python <var> |
37 | 17 | 10 |
| 15 | for v | 107 | 23 | 19 | 35 | md5sum <chemin> |
36 | 24 | 10 |
| 16 | ls | 103 | 74 | 53 | 36 | git rev-parse | 34 | 26 | 16 |
| 17 | git <chemin> |
101 | 64 | 48 | 37 | pwsh runcommandlet.ps1 | 32 | 8 | 3 |
| 18 | sed <chemin> |
91 | 45 | 29 | 38 | git <var> |
31 | 13 | 9 |
| 19 | python <chaîne> |
89 | 35 | 22 | 39 | printf <chemin> |
30 | 20 | 12 |
| 20 | ls <var> |
78 | 46 | 35 | 40 | get-content <var> |
29 | 8 | 3 |
Lecture (établi pour les comptes, interprétation estimée) : les préfixes de recherche ou de lecture grep (723 + 374), ls (371 + 103 + 78), cat <chemin> (149), sed (138 + 91) et find (37) totalisent 2 064 appels, que Grep / Glob / Read couvrent (règle sk-protocol § 7 pour les agents lp-*) ; cat > et cat >> (122 + 177 = 299) sont des écritures de fichier par le shell. git diff (197) et git status (154) par préfixe sont inférieurs aux comptes de famille (476 et 1 156) parce que le préfixe normalisé range les formes git -C <chemin> … sous git <chemin> (101) et git <var> (31).
2.5 Fichiers de données produits
data\commands.csv : 1 612 lignes de données (motif, acteur, sous-période, lot, appels, sessions-agents distincts, fiches distinctes, durée somme, nombre de durées) ; data\commands_prefixes.csv : 1 335 lignes ; data\commands_tools.csv : 25 lignes ; data\commands_resume.txt : 236 lignes. Contrôle : wc -l sur chaque fichier (en-tête compris : 1 613, 1 336, 26, 236 ; relevé en cours de travail).
3. Écarts au compte attendu de la fiche
- Critère d'acceptation : total Bash+PowerShell 7 764 ; principales recoupées exactement avec
sessions.csv(2 966 = 2 966, 34 sessions, 0 écart par session) ; sous-agents 10 993 contre 11 007 (écart 14, 0,13 %, cause non recherchée :subagents.csvpeut compter des appels hors fenêtre ou dédoublonnés autrement). Deuxième méthode indépendante : 17 890tool_useet 7 764 appels shell, identiques à la première ; sous-chaînes (sans regex) :md5sum314 (= 314),Get-FileHash196 (= 196),tasklist173 (= 173),RunCommandlet.ps1180 (= 180),FicheStats.py32 (= 32) ;Win32_Process108 (107 ici : le motif ici exigeGet-CimInstance/Get-WmiObjectavant) ;git status810 (1 156 ici : le motif ici acceptegit -C <chemin> status) ;git log442 (610, même raison) ;ls-files --eol112 (109 : ici motif ordonnéls-files … --eol) ;VERROU351 en minuscules incluses et shell seul (323 ici : casse exacte, tous outils) ;accessed none67 (82 ici : contexte.logexigé mais outil Grep ajouté) ;unrealeditor-cmd76 (68 ici : exclusion des commandes citantRunCommandlet.ps1). Écarts expliqués par les différences de motif ; aucun inexpliqué hormis les 14 appels de sous-agents. - Fiches distinctes : 35 agents (1 838 appels de la fenêtre) restent sans fiche (57 des 101 absents de
subagents.csvn'ont pas de description exploitable, une partie n'a pas d'appel dans la fenêtre) ; les colonnes « fiches » sont des minimums. Pour la principale le champ fiche n'existe pas : 0 (« sessions-agents distincts » donne la mesure). - Lot : vide (« - ») pour la principale et les 35 agents sans fiche ; les classements par lot sont partiels (c : 897 appels shell en « - » sur 1 794 au total).
- Durée : horodatage du bloc
tool_useà sontool_result; les appels parallèles se chevauchent, les attentes de permission et les appels en arrière-plan faussent. Le coût « brut » = appels × moyenne est une borne indicative de temps machine, pas de temps de modèle ni de tours ; la moyenne est tirée par quelques appels longs (RunCommandlet.ps1 : moyenne 42,6 s, médiane 5,0 s). - Première version du script corrigée avant ce livrable : le motif
UnrealEditorseul comptait 116 appels (corrigé : 68 avecUnrealEditor-Cmd|-run=) ; « script lancé après écriture » comptait 196 par nom de fichier (corrigé : 92 par chemin complet) ; le préfixe<chemin>(1 176 appels) venait d'affectationsVAR="…"non retirées (corrigé). Les chiffres de ce livrable sont ceux de la version finale, rejouable. h.Write-scriptne compte que les scripts écrits dans la fenêtre ; l'exécution d'un script écrit dans une session précédente n'apparaît pas dans « lancé après écriture ».
4. Établi / estimé / incertain
Établi (commande du § 1, recoupée au § 3) : population (17 890 / 7 764), comptes par famille et par sous-période, acteurs, unités, dates de création git, nombre d'appels par Tools\*.
Estimé : coût brut en heures (moyenne × appels ; temps machine borné, voir § 3) ; « candidats » ci-dessous (raisonnement : fréquence × répartition entre acteurs × existence d'un script voisin) ; part par sous-période (union ÷ shell de la période ; P0 est courte : 395 appels).
Incertain : si un motif répété est une redondance ou un contrôle nécessaire différent à chaque fois (essai qui trancherait : lire une dizaine de cas par famille, hors fiche) ; couverture réelle de FileCheck.ps1 / UeState.ps1 / LogStats.ps1 par rapport aux familles a, b, e (scripts non lus) ; origine des 14 appels d'écart sur les sous-agents ; fiches des 35 agents sans fiche.
Constats
Par ordre de coût brut décroissant (appels × durée moyenne, sans le temps de modèle), pour décision de l'orchestrateur :
- d. scripts : RunCommandlet.ps1 (180 appels, ≈ 2,1 h, essentiellement l'exécution d'Unreal et non du redump) ;
UnrealEditor-Cmd/-run=sans RunCommandlet.ps1 : 68 appels (31 principale, 37 sous-agents, 18 fiches) ; RunUAT / BuildCookRun sans BuildDebug.ps1 : 32 appels (lp-builder 15). - c. état git et fins de ligne : 1 794 appels, 248 sessions-agents, 180 fiches, ≈ 1,6 h machine ; la part passe de 8 % (P0) à 36 % (P2) des appels shell. Candidat : un script « état » (status + diff --name-status + ls-files --eol + comptes de CR) dans
Tools\. - b. processus : 455 appels, ≈ 1,3 h, dont 224 en P2, alors que
UeState.ps1existe depuis le 10-09 16:37 (86 appels en P2). Candidat : imposerUeState.ps1aux fiches build / validation (lp-builder : 64 appelsGet-Processdirects). - a. empreintes : 543 appels, 90 fiches, dont 538 en md5sum / Get-FileHash / sha*sum contre 60 appels de
FileCheck.ps1(créé le 10-09) ; 379 en P2. Candidat : généraliserFileCheck.ps1ou un mode « empreinte avant / après » deSnapshot.ps1(couverture à vérifier, incertain). - h. Python : 282 heredocs (201 de la principale), 189
python -clongs, 135 scripts écrits dont 92 relancés ensuite ; ≈ 0,8 h. Candidat : bibliothèque d'analyse (transcriptions, CSV) dansTools\ou un skill ; le shell Bash fait par ailleurs 2 064 appels de recherche / lecture et 299 écriturescat >(§ 2.4). - f. verrou, tickets : 1 085 appels (677 en shell), 1 059 en P2 ; 141 mkdir / New-Item / Remove sur le verrou ; NUMEROS.md 292 appels (principale 130). Candidat : script
Verrou(prendre, rendre, état) et lecture de NUMEROS.md par script. - g. taille / date de build : 252 appels (du 36, gci -Recurse 54, dossier de build 203), 128 de la principale. Candidat : option de taille dans
CheckPackage.ps1. - e. journaux : 272 appels (Warning: 124, Error: 101, Accessed None 82) ;
LogStats.ps1existe depuis le 09-29 (68 appels) ; lp-cart et lp-validator interrogent encore les journaux directement (couverture de LogStats à vérifier). - i.
SendMessage696 appels (28 sessions, tous en principale),ListAgents24 (7 sessions) : coordination entre sessions, pas un candidat d'outil. Tools\: 14 des 25 scripts ont 34 appels ou moins (5 en ont 2 ou moins) ; 9 scripts ont été créés pendant la fenêtre et sont déjà cités 30 à 161 fois.
Fichiers écrits (chemins absolus) : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL\scripts\eval_commandes.py ; D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL\data\commands.csv ; ...\data\commands_prefixes.csv ; ...\data\commands_tools.csv ; ...\data\commands_resume.txt ; ce livrable. Fichiers à commiter (le gardien décide ; .gitignore retient les .md et .csv sous etat\, le sort des .py et .txt est à confirmer) : A Docs/Migration/etat/EVAL/EVAL-T6-INV.md, A Docs/Migration/etat/EVAL/data/commands.csv, A Docs/Migration/etat/EVAL/data/commands_prefixes.csv, A Docs/Migration/etat/EVAL/data/commands_tools.csv, A Docs/Migration/etat/EVAL/scripts/eval_commandes.py, A Docs/Migration/etat/EVAL/data/commands_resume.txt. Aucune commande git qui écrit lancée.
Tours : 18 / 40