196 lines
26 KiB
Markdown
196 lines
26 KiB
Markdown
|
|
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+` sans `RunCommandlet\.ps1` dans la même commande ; `\bRunUAT\b|\bBuildCookRun\b` sans `BuildDebug\.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`, info `etat[\\/]+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 de `Measure-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|.cmd` hors `Tools\` ; « lancé après écriture » : commande shell contenant le chemin complet d'un script écrit plus tôt dans la même transcription.
|
|||
|
|
- (i) outils `ListAgents` et `SendMessage` (par nom d'outil, pas Bash).
|
|||
|
|
- Préfixes : première commande de la commande, après retrait des `cd …`, des affectations `VAR=…` / `$x = …`, des options `-…` ; deux premiers mots en minuscules ; chemin → `<chemin>` (ou nom du script si extension `ps1|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.csv` peut compter des appels hors fenêtre ou dédoublonnés autrement). Deuxième méthode indépendante : 17 890 `tool_use` et 7 764 appels shell, identiques à la première ; sous-chaînes (sans regex) : `md5sum` 314 (= 314), `Get-FileHash` 196 (= 196), `tasklist` 173 (= 173), `RunCommandlet.ps1` 180 (= 180), `FicheStats.py` 32 (= 32) ; `Win32_Process` 108 (107 ici : le motif ici exige `Get-CimInstance` / `Get-WmiObject` avant) ; `git status` 810 (1 156 ici : le motif ici accepte `git -C <chemin> status`) ; `git log` 442 (610, même raison) ; `ls-files --eol` 112 (109 : ici motif ordonné `ls-files … --eol`) ; `VERROU` 351 en minuscules incluses et shell seul (323 ici : casse exacte, tous outils) ; `accessed none` 67 (82 ici : contexte `.log` exigé mais outil Grep ajouté) ; `unrealeditor-cmd` 76 (68 ici : exclusion des commandes citant `RunCommandlet.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.csv` n'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` à son `tool_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 `UnrealEditor` seul comptait 116 appels (corrigé : 68 avec `UnrealEditor-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'affectations `VAR="…"` non retirées (corrigé). Les chiffres de ce livrable sont ceux de la version finale, rejouable.
|
|||
|
|
- `h.Write-script` ne 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 :
|
|||
|
|
1. **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).
|
|||
|
|
2. **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\`.
|
|||
|
|
3. **b. processus** : 455 appels, ≈ 1,3 h, dont 224 en P2, alors que `UeState.ps1` existe depuis le 10-09 16:37 (86 appels en P2). Candidat : imposer `UeState.ps1` aux fiches build / validation (lp-builder : 64 appels `Get-Process` directs).
|
|||
|
|
4. **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éraliser `FileCheck.ps1` ou un mode « empreinte avant / après » de `Snapshot.ps1` (couverture à vérifier, incertain).
|
|||
|
|
5. **h. Python** : 282 heredocs (201 de la principale), 189 `python -c` longs, 135 scripts écrits dont 92 relancés ensuite ; ≈ 0,8 h. Candidat : bibliothèque d'analyse (transcriptions, CSV) dans `Tools\` ou un skill ; le shell Bash fait par ailleurs 2 064 appels de recherche / lecture et 299 écritures `cat >` (§ 2.4).
|
|||
|
|
6. **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.
|
|||
|
|
7. **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`.
|
|||
|
|
8. **e. journaux** : 272 appels (Warning: 124, Error: 101, Accessed None 82) ; `LogStats.ps1` existe depuis le 09-29 (68 appels) ; lp-cart et lp-validator interrogent encore les journaux directement (couverture de LogStats à vérifier).
|
|||
|
|
9. **i.** `SendMessage` 696 appels (28 sessions, tous en principale), `ListAgents` 24 (7 sessions) : coordination entre sessions, pas un candidat d'outil.
|
|||
|
|
10. `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
|