LifePlay-Revival/Docs/Migration/etat/OUT1/OUT1-IMPL.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

9.8 KiB

Fiche OUT1-T1 — Niveau N3 — Modèle prévu non précisé (session mère) | utilisé claude-opus-5-5

OUT1 — trois outils pour remplacer les scripts improvisés (IMPL + essais)

Date : 2026-10-09. Copie : D:\Game\LifePlay-master 5.8 (branche ue5.8) ; addon : checkout actif D:\Game\LifePlay-Sandbox (lot/DC3-atelier, lu par les deux jeux via la jonction .claude\skills) et worktree D:\Game\LifePlay-Sandbox-5.8 (ue5.8).

Statut : clos, commité, rien poussé. Entrées au journal du jeu 5.8 : CHG-264 (ces outils) et CHG-265 (Tools/uasset.py, même lot OUT1, autre session). CHG-263 a été pris par STM, CHG-267 par EDIT1 (qui a intégré le passage lp-validate d'OUT1).

Dépôt Branche Commit Contenu
jeu D:\Game\LifePlay-master 5.8 ue5.8 866e869 Tools/UeState.ps1, Tools/FileCheck.ps1 (nouveaux), LogStats.ps1, Build.ps1, RunCommandlet.ps1, EtatDir.ps1 (règle OUT\d*), ligne CHG-264, plage du README
jeu D:\Game\LifePlay-master 5.8 ue5.8 8c6149e Tools/uasset.py, ligne CHG-265 (session uasset.py)
addon D:\Game\LifePlay-Sandbox lot/DC3-atelier a69c43b skills lp-build, lp-commandlets
addon D:\Game\LifePlay-Sandbox lot/DC3-atelier 496ff2c skill lp-validate (FileCheck), commité par EDIT1
addon D:\Game\LifePlay-Sandbox-5.8 ue5.8 8422fd6 skills lp-build, lp-commandlets (même contenu)
addon D:\Game\LifePlay-Sandbox-5.8 ue5.8 aa0c1e5 skill lp-validate (FileCheck), commité par EDIT1 ; pin du jeu 5.8 → aa0c1e5 au doc 21 (jeu f6df36b, EDIT1)

git diff lot/DC3-atelier ue5.8 -- Tools/claude/skills est vide après ces commits. Compte rendu de Tools/uasset.py : etat/OUT1/OUT1-UASSET.md, déposé par la session uasset.py (non écrit ici). Instantanés : D:\Game\LifePlay_Backup_5.5\OUT1 (7 entrées, jeu 5.8), OUT1-addon (3 entrées, addon 5.8), OUT1-addon55 (2 entrées, addon lot/DC3-atelier).

Emplacement des preuves (etat/ est ignoré par git dans les deux copies, rien n'y est commité) :

  • ce dossier (D:\Game\LifePlay-master 5.5\Docs\Migration\etat\OUT1\) : fiche et sorties archivées à la main (OUT1_FileCheck_U7b.txt, OUT1_LogStats_U7b.txt, OUT1_UeState.txt) ;
  • D:\Game\LifePlay-master 5.8\Docs\Migration\etat\OUT1\ : résumés automatiques écrits par Build.ps1 et RunCommandlet.ps1 dans l'etat de la copie 5.8 (OUT1_Build_20261009-161628.txt, OUT1_LPTestStringCompat_20261009-161745.txt) ; journaux complets dans …5.8\Saved\Logs\portage\.

Origine

Audit des transcriptions du 2026-10-09 : « Unreal tourne-t-il ? » 474 appels / 95 agents ; fins de ligne 475 / 92 ; MD5 197 / 46 ; compter un motif dans un .log 475 / 60 ; trouver le dernier journal 240 / 31.

Fichiers

Fichier Changement
Tools/UeState.ps1 nouveau (107 lignes). Familles Editeur (UnrealEditor, UnrealEditor-Cmd), Compilation (UnrealBuildTool, dotnet avec UnrealBuildTool dans la ligne de commande, cl.exe), Shaders (ShaderCompileWorker), Jeu (LifePlay*.exe) ; PID, départ, colonne Copie (dossier LifePlay* lu dans la ligne de commande ou le chemin de l'exe), ligne de commande (-Brief la masque). Codes 0 rien / 1 quelque chose / 2 délai -WaitExit -TimeoutSeconds N dépassé.
Tools/FileCheck.ps1 nouveau (164 lignes). Fins (CRLF, LF, mixte, aucune, vide, binaire), comptes CRLF / LF seuls / CR seuls, BOM, MD5 ; -Lot lit le manifeste de Snapshot.ps1 et compare à la copie sauvegardée (Contenu identique / modifié / nouveau / absent ; alertes FINS, BOM, MIXTE) ; -OnlyChanged, -Recurse, -ProjectRoot (addon). Codes 0 / 1 alerte / 2 introuvable. Compatible PowerShell 5.1 (pas de MD5.HashData ni Encoding.Latin1).
Tools/LogStats.ps1 78 → 141 lignes : -Latest <Lot>[_<Commandlet>] (dernier Saved\Logs\portage\<préfixe>_*.log selon l'horodatage du nom), -Pattern (une ou plusieurs regex, compte + -Max extraits avec -Context lignes, ligne trouvée marquée >), -Tail N, -Stats, -LogDir. Première ligne Journal : <chemin complet>. Comportement d'origine inchangé sans ces options.
Tools/Build.ps1 contrôle de l'éditeur par UeState.ps1 -Kind Editeur (au lieu de Get-Process), code 3 conservé ; ligne finale journal : <chemin>.
Tools/RunCommandlet.ps1 ligne finale journal : <chemin>.
Tools/EtatDir.ps1 règle OUT\d* ajoutée au groupe à plat (`PROP
addon lp-validate/SKILL.md § 1 Fins de ligne : FileCheck.ps1 remplace le python -c ; mise en garde grep -c $'\r'. Édité par-dessus la modification EDIT1 déjà présente (conservée).
addon lp-build/SKILL.md UeState (contrôle, liste, -WaitExit) ; LogStats -Latest <lot>_Build -Pattern ….
addon lp-commandlets/SKILL.md ligne journal :, LogStats -Latest <Lot>_<Commandlet>, UeState avant un commandlet qui sauvegarde.

Tous ces fichiers sont en LF sans BOM, comme avant (FileCheck.ps1 -Lot OUT1 et -Lot OUT1-addon : 0 alerte).

Preuves (établi : sortie réelle, fichiers de ce dossier)

  • OUT1_FileCheck_U7b.txt : FileCheck.ps1 -Lot U7b → 56 fichiers, tous binaires ; 28 *_pose.uasset modifiés, 28 *_anim.uasset identiques ; 0 alerte, code 0.
  • OUT1_LogStats_U7b.txt : -Latest U7b_CompileAllBlueprints → U7b_CompileAllBlueprints_20261009-140525.log (3 journaux candidats) ; : Error: 2 lignes (LogHyperAIStudioAutomation), : Warning: 0, Failure - 1 error(s), 0 warning(s) ; -Latest U7b -Tail 5 ; -Latest OUT1_LPTestStringCompat → 3120 cas … 0 … 60.
  • OUT1_UeState.txt : éditeur headless réel d'une autre session (STM-T4c, PID 30000) listé avec copie LifePlay-master 5.8 et ligne de commande, code 1.
  • D:\Game\LifePlay-master 5.8\Docs\Migration\etat\OUT1\OUT1_LPTestStringCompat_20261009-161745.txt (résumé automatique) : RunCommandlet.ps1 code 0, 16 s, ligne journal : affichée.
  • Essais au scratchpad (sortie dans la conversation, non archivée) :
    • FileCheck sur un faux lot (Snapshot puis modifications) → FINS (CRLF → LF ; LF → mixte), BOM (BOM retiré), nouveau fichier nouveau, fichier inchangé identique ; code 1 ; fichier mixte sans lot + fichier absent → code 2.
    • Faux UnrealEditor.exe (copie de ping.exe) : UeState code 1 ; Build.ps1 -Lot OUT1 → liste + code 3, rien lancé ; -WaitExit -TimeoutSeconds 3 → code 2 ; -TimeoutSeconds 60 → code 0 après 9 s.
    • Faux cl.exe, dotnet.exe dans un dossier UnrealBuildTool, ShaderCompileWorker.exe, LifePlay-Win64-Shipping.exe → tous listés ; un dotnet.exe sans UnrealBuildTool est ignoré.

Écarts et incidents

  • Incident de test : le premier faux éditeur (ping avec un argument en trop) s'est arrêté avant le contrôle ; Build.ps1 -Lot OUT1 a donc lancé UBT : « Target is up to date », 0 action, 2,56 s, rien recompilé (Saved\Logs\portage\OUT1_Build_20261009-161628.log, résumé …5.8\Docs\Migration\etat\OUT1\OUT1_Build_20261009-161628.txt). Le second essai vérifiait d'abord le code 1 d'UeState avant d'appeler Build.ps1.
  • Édition par script (règle EDIT1) : les deux nouveaux fichiers, écrits par Write, ont été convertis en CRLF puis remis en LF par [IO.File]::WriteAllText (j'avais d'abord cru les outils en CRLF, voir constat suivant) ; deux remplacements d'API dans FileCheck.ps1 faits par .Replace(). Toutes les autres modifications sont passées par Edit.
  • Constat : grep -c $'\r$' / grep -c $'\r' sous Git Bash (GNU grep 3.0) compte aussi les lignes LF (fichier a\nb\n sans CR → 2). Tools/*.ps1 : 11 en LF, 3 en CRLF (BuildDebug, CollectDebugArtifacts, SummarizeDebugCsv).
  • Tools/EtatDir.ps1 : pendant les essais, le lot OUT1 était hors table (avertissement de Resolve-LPEtatDir). Règle OUT\d* à plat ajoutée au moment du commit (866e869) : etat\OUT1\, sans avertissement. Les autres lots ont été vérifiés à blanc et ne changent pas.
  • Les skills chargés par les sessions passent par la jonction .claude\skills → D:\Game\LifePlay-Sandbox (branche lot/DC3-atelier). D'abord édités dans LifePlay-Sandbox-5.8 seulement, ils ont été reportés et commités dans les deux checkouts (voir le tableau en tête).

Estimé / incertain

  • Estimé : UeState détecte UBT lancé par Build.bat (dotnet + UnrealBuildTool.dll, ligne vue dans le journal de l'incident) — non observé pendant un vrai build.
  • Incertain : lignes de commande de processus d'un autre utilisateur ou élevés (affichées « illisible »).

Retour arrière

Le texte de CHG-264 a été écrit avant les commits. Depuis : jeu git revert 866e869 ; addon git revert a69c43b (lot/DC3-atelier) et git revert 8422fd6 (ue5.8). Pour lp-validate, le changement d'OUT1 est dans les commits EDIT1 496ff2c / aa0c1e5 : le retirer à la main, ou revenir sur ces commits en accord avec EDIT1.

INT

Commits demandés par l'utilisateur, relayés par la session « Commençons U7 » ; rien n'est poussé.

  • 866e869 (jeu 5.8) : les 2 nouveaux outils, 4 scripts modifiés dont Tools/EtatDir.ps1 (règle OUT\d*), la ligne CHG-264 et la plage du README (CHG-266 à cette date, mise à jour depuis par d'autres lots).
  • a69c43b / 8422fd6 (addon, deux branches) : lp-build, lp-commandlets ; 496ff2c / aa0c1e5 : lp-validate (EDIT1).
  • 8c6149e (jeu 5.8) : Tools/uasset.py, CHG-265, par la session uasset.py ; compte rendu dans OUT1-UASSET.md. Le passage LPTestStringCompat n'a pas été relancé après le commit : un éditeur interactif était ouvert (PID 32492). Le RunCommandlet.ps1 commité est celui du passage de 16:17:45 (dernière modification à 16:14:51) : 3120 / 0 / 60.

Passage de main : session mère local_03589c9b-7874-4332-b821-d45228d827df. Lot clos.