LifePlay-Revival/Docs/Migration/etat/AG/TRACE1/TRACE1-T4cv-VAL.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

25 KiB
Raw Blame History

Fiche TRACE1-T4cv — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 (déclaré par l'environnement) — Agent lp-validator — Skills sk-protocol, sk-recount, debug-verification, lp-validate

TRACE1-T4cv-VAL : correction T4c (TracesRacines.ps1, Traces.ps1, Corbeille.ps1) contre R1, R2, E11 et les critères 1 à 7 de la SPEC § 7 (2026-10-13)

Copie D:\Game\LifePlay-master 5.8, branche ue5.8, HEAD f32df0d (relevé 09:34). Les trois scripts sont non suivis (??). MD5 relus au départ (09:34) et à la fin (09:46), identiques entre eux et à ceux de TRACE1-T4c-IMPL.md § 1 : Traces.ps1 CDB3D82F49BA7BE08AF445B4732FB96D (22 446 o, mtime 09:17:12), Corbeille.ps1 61EF5E9C22C0A666FBCACB8B6100B9CD (20 644 o, 09:17:57), TracesRacines.ps1 191408D58D2D2E103E019E633C9078B2 (9 674 o, 09:16:28). Leurs dates sont antérieures au début de cette VAL (09:34) : rien n'a été modifié ici. Corbeille.ps1 n'a jamais été lancé avec -Envoyer (le script d'essai Invoke-Script refuse cet argument en code). Corbeille de Windows (Shell.Application.Namespace(10).Items().Count) : 2521 avant, 2521 après, relevée au début et à la fin de chaque étape (tous les relevés à 2521, dernier à 09:46:49) et autour de chacun des 22 cas d'une ligne. Fichiers existants : aucun n'a changé (empreintes MD5 avant et après de chaque chemin d'essai, § 3 ; 70 fichiers non TRACE1-T4cv-* du dossier du lot : 70 au départ, 70 à la fin, 0 différence).

1. Fiches amont relues

Fichier Relu Remarque
fiches\TRACE1-T4cv.md oui fiche de cette VAL
TRACE1-T4c-IMPL.md oui, en entier § 1 à 6 et Constats ; chiffres recomptés en § 3
TRACE1-T4v-VAL.md oui, en entier R1, R2, décision E11, critères 1 à 7 et À verser
TRACE1-T3-SPEC.md oui, en entier § 3, § 4, § 7 (critères 1 à 7)
Tools\TracesRacines.ps1 (174 l.), Tools\Corbeille.ps1 (401 l.), Tools\Traces.ps1 (428 l.) lus en entier § 4
TRACE1-T4b-essai.ps1, TRACE1-T4b-essai.txt, TRACE1-T4c-essais.ps1 (60 premières lignes) lus rejeu de T4b et fonctions d'essai
D:\Game\LifePlay_Backup_5.5\TRACE1-T4c\Tools\{Traces,Corbeille}.ps1 comparés versions d'avant T4c (MD5 de Traces.ps1 c4ce7fff…9545, égal au départ de l'IMPL)

Non relus : TRACE1-T4a-IMPL.md, TRACE1-T4b-IMPL.md, TRACE1-T1-INV.md (la fiche cite T4c, T4v, T3).

2. Points à confirmer des IMPL (TRACE1-T4c-IMPL.md § 5)

Point Résultat Preuve
R1 : 4 cas (CrashReportClient, UnrealBuildTool, EpicGamesLauncher\Saved\Logs, Zen) → REFUS hors-racines, code 2 PASS § 3 : 4 fichiers existants repris à neuf (Compat.ini, Log_GPF.json, cef3-backup-2026.10.12-16.36.15.log, Data\root_manifest), les 4 REFUS hors-racines, code 2
E11 : UnrealTrace et UnrealHeaderTool → REFUS hors-racines, code 2 PASS Server_1142.log (fichier existant, ≠ celui de l'IMPL Server_1148.log, tournant) et UnrealHeaderTool\Saved\Config\CrashReportClient\…\CrashReportClient.ini : REFUS hors-racines, code 2
R2 : 5 cas P7\T5 / P7\T6a → REFUS manifest, code 2 PASS 6 cas (les 5 plus un fichier désigné par la colonne chemin de P7\T6a\manifest.csv) : tous REFUS manifest, code 2
Témoin UnrealEngine\4.27\Saved\Logs\… admis A-BLANC, code 0 PASS UE4-backup-2026.09.07-10.16.02.log, 125 655 o : A-BLANC, code 0
TRACE1-T4b-essai.ps1 rejoué : 41 lignes identiques, ETAT IDENTIQUE=True PASS 41 lignes de TRACE1-T4b-essai.txt (de --- cas1-absent à --- etat apres) contre 41 lignes nouvelles : 0 différence (Compare-Object -CaseSensitive) ; ETAT IDENTIQUE=True ; corbeille 2521 / 2521
Chaîne -Avant 2026-09-13 puis Corbeille.ps1 -Liste : 73 A-BLANC, 0 REFUS, code 0 ; seule différence avec T4v (74) : UnrealHeaderTool.log PASS 73 / 0 / code 0, octets=60728133 ; différence avec TRACE1-T4v-avant.txt : exactement %USERPROFILE%\AppData\Local\UnrealHeaderTool\Saved\Logs\UnrealHeaderTool.log ; différence avec TRACE1-T4c-avant.txt : 0
Différence d'inventaire T4v → T4c : 14 attendues, le reste d'autres sessions, 0 « autre » PASS (chiffres recomptés, écarts de dates) § 3.2 critère 1 : T4v seul 35 = 14 attendues + 21 disparues + 0 autre ; aucune entrée nouvelle sous les 6 chemins
E1 : protéger le dossier P7\T5 en entier convient comportement PASS ; acceptation reportée (orchestrateur, § 6) P7\T5\agents\lp-cart.md et P7\T5\skills\sk-orchestrate\SKILL.md refusés manifest ; Get-LPTraceInstantanes : Entiers contient P7\T5, pas P7\T6a
E2 : règle chemin-introuvable comportement PASS ; acceptation reportée manifeste de synthèse chemin,md5 avec valeur inexistante : motif chemin-introuvable, dossier protégé en entier ; P7\T6a reste décidable (Entiers ne le contient pas)
E3 : exclusion des etat\REPO des copies PASS D:\Game\LifePlay-master 5.8\Docs\Migration\etat\REPO\NUMEROS.md : REFUS hors-racines (et suivi-git), code 2 ; 0 entrée etat\REPO dans l'inventaire
Branche dossier Corbeille.ps1:290 PASS positif : 2 dossiers Crashes\UECC-… de l'inventaire admis, code 0 ; négatif : dossier …\Backup_5.5\etat\Docs\Migration\etat\U58\U7\T4\Crashes\UECC-…_0000, ni décrit lui-même, ni sous un dossier protégé en entier, Test-LPTraceInstantane faux, 4 chemins décrits dessous : REFUS manifest (ligne 290 seule), code 2
Select-String : aucune liste de racines dans Traces.ps1 ni Corbeille.ps1 PASS § 3.1 a : 9 correspondances jugées une à une, aucune ne définit une racine
Constat : LifePlay-Sandbox-5.8\Tools\claude\agents\lp-cart.md non suivi, maintenant refusé manifest PASS (constat confirmé) git -C D:\Game\LifePlay-Sandbox-5.8 status --short -- Tools/claude/agents/lp-cart.md → ?? ; ls-files vide ; Corbeille.ps1 : REFUS manifest, code 2
E11 du § 2 de l'IMPL : %TEMP%\v.txt laissé en place constat confirmé, reporté (utilisateur) fichier présent, 7 197 o, 09:26 ; non touché par cette VAL

3. Critères rejoués

Tous les essais passent par TRACE1-T4cv-essais.ps1 -Etape <étape>, TRACE1-T4cv-essais2.ps1, TRACE1-T4cv-essais3.ps1 -Etape <étape> (sorties TRACE1-T4cv-etape-*.txt), lancés par pwsh -NoProfile -File. Aucun -Envoyer, aucun envoi, aucun déplacement.

3.1 Contrôles de la fiche § 4

# Contrôle Commande Résultat recompté Verdict
a Source unique des racines Grep des noms de racines (LifePlay-master, LifePlay_Build_, LifePlay_Backup_5.5, LOCALAPPDATA, APPDATA, Launcher\Engine, UnrealHeaderTool, CrashReportClient, UnrealBuildTool, EpicGamesLauncher, Common\Zen, UnrealTrace, LifePlay-Sandbox, U58-essai, LifePlay_Publication) dans Traces.ps1 et Corbeille.ps1 ; Select-String -SimpleMatch de 18 noms (étape Code) Traces.ps1 : 7 lignes (l. 16 texte d'aide et l. 151 motif de fichiers \CrashReportClient\ du filtre de T1 ; l. 51, 71, 72, 189 : texte et commentaire sur LifePlay_Backup_5.5 ; l. 19 filtre \etat\REPO\ de T1). Corbeille.ps1 : 2 lignes, l. 89-90, dépôts git des modules (--git-dir). Aucune de ces 9 lignes ne définit une racine. Traces.ps1:165 et Corbeille.ps1:174 appellent le même Get-LPTraceRacines ; exclusions Traces.ps1:160 / Corbeille.ps1:175 ; instantanés Traces.ps1:190 / Corbeille.ps1:184 PASS
b R1 et E11, 6 chemins à blanc Corbeille.ps1 -Liste <ligne> pour un fichier existant de chacun des 6 chemins 6 × REFUS hors-racines, CORBEILLE envoyes=0 octets=0 refuses=1 echecs=0, code 2 ; empreinte MD5 avant = après ; corbeille 2521 / 2521 ; liste MD5 avant = après. Traces.ps1 -Inventaire : 0 entrée sous chacun des 6 chemins (préfixe %USERPROFILE%\AppData\Local\… : CrashReportClient 0, UnrealBuildTool 0, EpicGamesLauncher\Saved\Logs 0, Common\Zen 0, Common\UnrealTrace 0, UnrealHeaderTool 0). Contre-épreuve : Grep insensible à la casse du motif dans l'inventaire : 1 ligne, …\Docs\Migration\etat\AG\TRACE1\TRACE1-T4c-cas-e11-unrealheadertool.txt (nom d'un fichier d'essai de T4c, pas un chemin du profil) PASS — R1 et E11 levés
c R2 à blanc 6 fichiers existants (P7\T5\agents\lp-cart.md, P7\T5\skills\sk-orchestrate\SKILL.md, original LifePlay-Sandbox-5.8\Tools\claude\agents\lp-cart.md, P7\T6a\addon58\lp-doc\gabarits.md, P7\T6a\addon55\lp-doc\gabarits.md, P7\T6a\addon58\sk-protocol\SKILL.md désigné par la colonne chemin) 6 × REFUS manifest, code 2, empreintes et corbeille inchangées. Inventaire : 0 entrée sous P7\T5 et P7\T6a. Les manifestes P7\T5, P7\T6a et TRACE1-T4c ont la même MD5 au départ et à la fin PASS — R2 levé
d etat\REPO un fichier existant de Docs\Migration\etat\REPO (voir § 2) REFUS hors-racines, code 2 ; 0 entrée de l'inventaire PASS
e Branche dossier, UECC-… de l'inventaire 2 dossiers (60 présents) A-BLANC 1 848 688 et 1 417 139 o, code 0 ; empreintes de dossier (4 fichiers) inchangées PASS
f Motifs de manifeste lecture de TracesRacines.ps1:137-155 et exécution sur 9 manifestes de synthèse TRACE1-T4cv-m-*.csv passés à Get-LPTraceInstantanes -Manifestes (en mémoire, rien dans Backup_5.5) illisible (en-tête Rel,Rel), vide (0 octet et en-tête seul), sans-colonne, chemin-invalide (caractère NUL), chemin-introuvable, chemin-absolu : motif obtenu = motif attendu, dossier protégé en entier (fichier non décrit du dossier protégé = vrai) ; 2 manifestes décidables (Rel, chemin) : aucun motif, fichier non décrit protégé = faux ; le fichier absolu de la colonne Path est protégé. Manifestes réels : 202, 8 535 chemins décrits, 1 non décidable (chemin-absolu, P7\T5), 0 illisible ; recompte par Directory.EnumerateFiles : 202, en-têtes 200 × "Rel","Existed","Size","MD5","Date", 1 × chemin,md5, 1 × Path,MD5,Existed PASS (exécuté ; les motifs non exercés par T4c le sont maintenant)
g Non-régression T4b TRACE1-T4b-essai.ps1 rejoué (étape T4b) voir § 2 : 41 / 41 lignes identiques, ETAT IDENTIQUE=True, corbeille 2521 / 2521 PASS
h Chaîne Traces.ps1 -Avant 2026-09-13 -Sortie TRACE1-T4cv-avant.txt (code 1, index absent, attendu) puis Corbeille.ps1 -Liste à blanc 73 entrées ; 73 A-BLANC, 0 REFUS, A BLANC lignes=73 octets=60728133, code 0 ; empreintes (Test-Path et MD5, 73 chemins) avant = après ; liste MD5 avant = après PASS
i Critère 6 Select-String -SimpleMatch de 19 motifs dans les 3 scripts + analyse AST (InvokeMemberExpressionAst, CommandAst) Remove-Item, Move-Item, rm , del , Delete(, Rename-Item, Copy-Item, Set-Content, Out-File, New-Item, Invoke-Expression, Start-Process, [IO.File]::Delete, [IO.Directory]::Delete : 0 ligne dans chacun des 3 scripts. Seuls appels de suppression : Corbeille.ps1:384 DeleteDirectory($cible, 'OnlyErrorDialogs', 'SendToRecycleBin') et :386 DeleteFile(…, 'SendToRecycleBin') (autres occurrences de DeleteFile : texte l. 49, 52, message l. 230). Seule écriture de Traces.ps1 : WriteAllText l. 322 (-Sortie) ; TracesRacines.ps1 : aucune. -Force : TracesRacines.ps1 l. 64, 122 ; Traces.ps1 l. 171 ; Corbeille.ps1 l. 122, 246, 285, tous sur Get-Item / Get-ChildItem PASS
j Critère 7 octets, analyse (Parser.ParseFile), pwsh -NoProfile -Command "& { . '<script>' -? }", Get-Help -Full TracesRacines.ps1 9 674 o CR=0 LF=174 ; Traces.ps1 22 446 o CR=0 LF=428 ; Corbeille.ps1 20 644 o CR=0 LF=401 ; non-ASCII=0, BOM=False, dernier octet LF (les 3) ; mêmes valeurs de style que Numero.ps1 (13 849 o, CR=0) et UeState.ps1 (6 964 o, CR=0). Erreurs d'analyse 0 (les 3) ; aide -? code 0, 70 / 77 / 90 lignes ; Get-Help rend le synopsis PASS
k Corbeille et listes Namespace(10).Items().Count ; MD5 des listes 2521 avant et après, à chaque étape et à chaque cas ; MD5 de chaque liste d'essai identique avant et après PASS

3.2 Critères 1 à 4 de la SPEC § 7 (non-régression, rejoués au-delà de la fiche)

# Critère Commande Résultat recompté Verdict
1 Inventaire Traces.ps1 -Inventaire -Sortie …\TRACE1-T4cv-inventaire.txt (111 s) TRACES entrees=3146 octets=37575665451 couvertes=0 sans-resume=3146 trop-gros=0, code 1 (index absent, attendu) ; INFO racines=64 lus=523021 retenus=3410 instantanes=43 manifestes=202. Nom du compte : 0 occurrence (profil et variable USERNAME, comptage seul). Contre T4v (3 089) : T4v seul 35 = 14 attendues + 21 disparues + 0 autre ; absents de T4v : 92 dont 90 créés ou écrits après 08:38 et 2 plus anciens (Saved\Logs\AutoSDKInfo-backup-2026.10.13-07.09.30.{json,txt}, estimé : rotation renommée après le balayage de T4v, même cas que T4v). Contre T4c (3 115) : 15 disparus, 46 nouveaux tous récents, 0 autre. La comparaison à T1 (± 2 %) n'est pas rejouée PASS (non-régression ; ± 2 % de T1 : reporté, décidé en T4v)
2 Dates Get-LPDateProduction par chargement ., 8 noms (6 de la SPEC et 2 cas limites) 8 / 8 conformes : U5_Build_20261008-170000.log 2026-10-08 17:00:00 nom ; LifePlay-backup-2026.09.30-21.23.52.log 2026-09-30 21:23:52 nom ; L7i_partie1_20260930.log 2026-09-30 nom ; STE-J6.utrace, UECC-Windows-ABCDEF_0000, nom sans date, X_20261399.log : écriture fictive 2031-02-03 ; Y_20261008-250000_20260101.log 2026-10-08 nom PASS
3 Index -Inventaire -Index TRACE1-T4a-index-temoin.csv couvertes=31 (= T4v : STE-J6 1 + L* 26 + V* 2 de portage + SessionA 2) ; 3 lignes + en-tête ; les 31 se regroupent par dossier et motif sur ces 3 lignes. Témoin à résumé vide non rejoué PASS (témoin vide : reporté)
4 Doublons Traces.ps1 -Doublons -Sortie …\TRACE1-T4cv-doublons.txt (183 s) DOUBLONS groupes=527 copies=138 octets-copies=7855386094 (= T4v) ; rôles copie 138, copie-seule 56, original 944 (= T4v) ; groupe 467 : original D:\Game\LifePlay_Build_5.5_DebugGame\Windows\TraceArchive\SessionA.utrace, copie D:\Game\LifePlay_Backup_5.5\Dbg-I4\SessionA\Profiling\SessionA.utrace ; Get-FileHash des deux : 44B6203349721CD88A804C190E573FD3 PASS
5 Refus à blanc § 3.1 b, c, d, g refus attendus, code 2, rien envoyé, état identique PASS
6 Pas de suppression hors SendToRecycleBin § 3.1 i voir i PASS
7 Fins de ligne, encodage, analyse, aide § 3.1 j voir j PASS

4. Diff lu en entier

Les trois scripts sont non suivis : le « diff » est la lecture complète (Read, 174 + 401 + 428 lignes) plus la comparaison aux versions d'avant T4c (git diff --no-index --unified=0, --numstat).

Fichier Lignes Conforme Constats
Tools\TracesRacines.ps1 174 (nouveau) oui seule définition des copies (6), builds (LifePlay_Build_* développé), sauvegarde, publication, racines (81 ce jour : copie 30, build 38, backup 1, publication 1, moteur 8, profil 3), exclusions (8) et règles des manifestes ; aucune écriture ; fonctions *-LPTrace* (8) ; seule variable posée : $LPTraceJeuRoot (= D:\Game, déduit de l'emplacement du fichier)
Tools\Corbeille.ps1 401 (avant : 443) oui numstat +32 −74 : listes de racines et lecture des manifestes (anciennes l. 79-104, 191-220) remplacées par le dot-sourcing (l. 85) et les appels l. 173-187 ; hors-racines par Test-LPTraceSousRacines (l. 268-269) ; manifest par Test-LPTraceInstantane (l. 279) ; dossier : @($Inst.Decrits) + $Entiers (l. 290). Les trois racines en trop (R1) ont disparu ; l'ensemble des contrôles et le chemin d'envoi (l. 355-401) sont inchangés
Tools\Traces.ps1 428 (avant : 474) oui numstat +26 −72 : Get-LPRacines retiré ; racines et exclusions partagées (l. 159-182) ; instantanés (l. 189-195) ; $tracesCharge lu avant le dot-sourcing (l. 101) ; if ($tracesCharge) { return } (l. 328)

Écarts de l'IMPL (§ 2 E1 à E11) jugés en « Constats ». Modifications faites par cette VAL (inventaire) : aucune sur le dépôt, sur les scripts, sur les livrables existants ni sur D:\Game\LifePlay_Backup_5.5. Fichiers créés : 54 fichiers TRACE1-T4cv-* au relevé de fin (scripts …-essais.ps1, …-essais2.ps1, …-essais3.ps1, …-attente.ps1 ; sorties …-etape-*.txt, …-inventaire.txt, …-avant.txt, …-index.txt, …-doublons.txt, …-essai-t4b.txt, …-etat-depart.txt ; listes d'une ligne …-cas-*.txt ; 9 manifestes de synthèse …-m-*.csv) et ce livrable. Rien dans %TEMP% ni ailleurs. git status --short -- Tools : ?? Tools/Corbeille.ps1, ?? Tools/PubCheck.ps1, ?? Tools/Traces.ps1, ?? Tools/TracesRacines.ps1, ?? Tools/hooks/ (identique au départ ; PubCheck.ps1 et hooks/ ne viennent pas de ce lot).

5. Verdict

PASS pour les contrôles de la fiche § 4 et pour les critères 1 à 7 de la SPEC § 7 (rejoués, voir § 3).

Global : PASS. Réserves levées :

  • R1 levée : les racines viennent d'une seule fonction (Get-LPTraceRacines) appelée par les deux scripts ; CrashReportClient, UnrealBuildTool et EpicGamesLauncher\Saved\Logs ne sont plus des racines (aucune racine liée à ces chemins, ni à UnrealHeaderTool) ; Common\Zen est refusé à blanc.
  • R2 levée : P7\T5 (manifeste Path) et P7\T6a (manifeste chemin) sont protégés ; les copies et l'original sont refusés manifest.
  • Décision E11 appliquée : Common\UnrealTrace et UnrealHeaderTool sont hors règle dans les deux scripts (2 refus à blanc ; 0 entrée d'inventaire).
  • Pas de régression : critères 1 à 7 et T4b rejoués ; corbeille 2521 avant et après.

Ce qui n'est pas prouvé : l'envoi réel (interdit ici), les refus trop-gros, lecture-seule, lien-interne, corbeille-desactivee, session-non-interactive, git-erreur, manifest-illisible sur des données réelles, Windows PowerShell 5.1, le témoin d'index à résumé vide, la comparaison à T1 (± 2 %), la durée ajoutée par la recherche des manifestes à toute profondeur (Corbeille.ps1 : 8 à 10 s par appel, mesuré ; comparaison à l'ancienne version non faite).

6. Points à confirmer par l'utilisateur

  • E1 : protéger le dossier P7\T5 en entier (effet constaté : l'original non suivi LifePlay-Sandbox-5.8\Tools\claude\agents\lp-cart.md, avant admis, est refusé manifest). Recommandation : accepter (conservateur).
  • E2 : règle chemin-introuvable pour la colonne chemin. Recommandation : accepter (rejouée sur donnée de synthèse).
  • E3 : exclusion des etat\REPO des 6 copies dans Corbeille.ps1 (vérifiée). Recommandation : accepter.
  • E9 de l'IMPL : Get-LPRacines retiré, donc TRACE1-T4v-essais.ps1 -Etape Racines ne se rejoue plus. Recommandation : accepter, la preuve de T4c (même fonction pour les deux scripts) la remplace.
  • %TEMP%\v.txt (7 197 o, 09:26, chemins de TRACE1-T4v-avant.txt) laissé par T4c : le mettre à la corbeille ou le laisser ?
  • T5 (envoi réel du fichier témoin) : GO séparé, non donné ici.
  • Windows PowerShell 5.1 jamais essayé : à faire ou sans objet (le projet utilise pwsh 7) ?

Fichiers à commiter (dépôt du jeu, ue5.8, par le gardien) : A Docs/Migration/etat/AG/TRACE1/TRACE1-T4cv-VAL.md (.gitignore:77 le laisse passer). Les autres TRACE1-T4cv-* suivent .gitignore:75 (/Docs/Migration/etat/**, vérifié par git check-ignore -v pour …-essais.ps1). Les trois scripts de Tools\ sont à commiter selon TRACE1-T4c-IMPL.md § 6.

Tours : 26 / 40

Constats

Écarts de l'IMPL (§ 2), jugement

# Écart Jugement Motif
E1 manifeste Path absolu : chemins et dossier du manifeste protégés acceptable, décision de l'orchestrateur rejoué (c) ; effet sur lp-cart.md noté en § 6
E2 chemin introuvable = non décidable acceptable, décision de l'orchestrateur rejoué (f)
E3 etat\REPO des copies exclu acceptable, décision de l'orchestrateur rejoué (d)
E4 motif hors-racines gardé (la fiche écrit hors-racine) conforme à la décision sorties des cas R1, E11, REPO
E5 manifestes cherchés à toute profondeur dans Corbeille.ps1 acceptable 202 manifestes des deux côtés (même fonction) ; recompte indépendant 202
E6 manifeste vide non décidable acceptable rejoué (f), deux cas
E7 $tracesCharge lu avant le dot-sourcing acceptable -? code 0 et chargement par . utilisé pour les dates (critère 2)
E8 fonctions d'aide en plus acceptable 8 fonctions *-LPTrace*, nommage respecté
E9 Get-LPRacines retiré acceptable, noté en § 6
E10 skills invoqués après les modifications sans effet sur le résultat oubli de méthode, signalé par l'IMPL
E11 %TEMP%\v.txt écrit hors périmètre écart de l'IMPL, constaté fichier présent, non touché ; case en § 6

Observations

  • Lignes VERDICT=KO dans TRACE1-T4cv-etape-Refus.txt (l. 77 et 82) : deux cas « bonus » informatifs (dossiers Crashes\<dossier> sous Backup_5.5 : ARCH427\LifePlay-master 4.27\Saved\Crashes\UE4CC-…_0000 et builds_supprimees\LifePlay_Build_5.5_L7cdj\…\Crashes\_0000) où mon script attendait un refus à tort : ils sont admis à blanc (code 0) parce qu'aucun manifeste ne les décrit et qu'ils sont dans la règle (Q6 de la SPEC). Ce n'est pas un défaut des scripts ; la ligne de verdict global de l'étape (« tous les cas OK ») ne compte pas ces cas bonus. Le cas bonus 3 (etat\Docs\Migration\etat\U58\U7\T4\Crashes\UECC-…) est refusé manifest, ce qui a servi à prouver la branche dossier (Corbeille.ps1:290).
  • Dérive des chiffres depuis l'IMPL (autres sessions) : racines 81 (IMPL 80) et builds 38 (IMPL 37, ls -d /d/Game/LifePlay_Build_* = 38), inventaire 3 146 (IMPL 3 115), T4v seul 35 dont 21 disparues (IMPL 33 dont 19). Même structure : 14 attendues, 0 autre.
  • Ancrage des lieux : TracesRacines.ps1 déduit D:\Game de son emplacement ($LPTraceJeuRoot), alors que les versions d'avant T4c l'écrivaient en dur. Sans effet pour les copies sous D:\Game ; un script lancé depuis une copie rangée ailleurs verrait d'autres racines (estimé, non essayé).
  • Corbeille.ps1:89-90 garde D:\Game\… en dur pour les dépôts git des modules (--git-dir) : ce ne sont pas des racines de la règle.
  • Le Grep de la contre-épreuve de 3.1 b a d'abord rendu 0 ligne (Grep est sensible à la casse, le -match de PowerShell non) ; relancé sans respecter la casse, le seul écart est le nom du fichier de T4c cité plus haut.

Note TRACE

Trace : Docs\Migration\etat\AG\TRACE1\TRACE1-T4cv-etape-*.txt — Fiche TRACE1-T4cv — 2026-10-13 09:34 à 09:48
Commande     : pwsh -NoProfile -File TRACE1-T4cv-essais.ps1 -Etape Depart|Inventaire|Refus|T4b|Chaine|Code|Fin ;
               TRACE1-T4cv-essais2.ps1 ; TRACE1-T4cv-essais3.ps1 -Etape Dates|Recents|Index|Doublons ; jamais Corbeille.ps1 -Envoyer
Environnement: copie 5.8, ue5.8, HEAD f32df0d, pwsh 7.6.6, UserInteractive=True ; machine non calme (autres sessions écrivent dans Saved et les builds)
Attendu      : R1, R2, E11 levés ; critères 1 à 7 sans régression ; corbeille 2521 avant et après ; aucun fichier existant modifié
Obtenu       : § 2 et § 3 ; corbeille 2521 à chaque relevé ; MD5 des 3 scripts, des 3 manifestes et des 70 autres fichiers du dossier inchangés
Lecture      : les comptes de l'inventaire bougent entre deux passages (3 146, 3 184 au passage -Index/-Doublons) : fichiers créés par les autres sessions ; la référence est le passage de l'étape Inventaire (3 146)

Sorties brutes (extraits)

TRACES entrees=3146 octets=37575665451 couvertes=0 sans-resume=3146 trop-gros=0      (code 1, index absent)
INFO racines=64 lus=523021 retenus=3410 instantanes=43 manifestes=202 erreurs-acces=0
T4v seul : 35 = attendues (UnrealTrace, UnrealHeaderTool) 14 + disparues (Test-Path faux) 21 + autres 0
T4c seul (absents maintenant) : 15 = disparus 15 + autres 0
T4cv seul (absents de T4c) : 46 = crees ou ecrits apres 09:05:53 : 46 ; plus anciens : 0
lignes comparees : T4b=41 maintenant=41 ; differences=0 ; identiques=True      ETAT IDENTIQUE=True
TRACES entrees=73 octets=60728133 couvertes=0 sans-resume=73 trop-gros=0
Corbeille.ps1 -Liste (a blanc) : code=0 ; lignes A-BLANC=73 ; REFUS=0      A BLANC lignes=73 octets=60728133
manifestes=202 ; decrits=8535 ; entiers=1 ; NON DECIDABLE : chemin-absolu D:\Game\LifePlay_Backup_5.5\P7\T5
TRACES entrees=3184 ... couvertes=31      DOUBLONS groupes=527 copies=138 octets-copies=7855386094
CORBEILLE AVANT items=2521 ... CORBEILLE APRES items=2521 ; identique=True      (étape Fin, 09:46:49)