Fiche STG-COMMUN9 — Niveau N0 — Modèle prévu (agent lp-builder) | utilisé claude-haiku-5-5 — Agent lp-builder — Skills lp-build, sk-protocol, sk-windows-shell # STG-COMMUN9-BUILD : neuvième build commun, cible jeu Development + paquet (2026-10-14) Hors gabarit : rapport de reprise. L'agent a atteint son budget de tours pendant la vérification ; le coordinateur a demandé de terminer les relevés restants sans relancer le build ni la cuisson. Les sections 1 à 7 du gabarit BUILD sont remplies ci-dessous, les étapes a à e de la fiche suivent. ## Préalables (étape a) Commandes et sorties : - `pwsh -NoProfile -File Tools\UeState.ps1` : `processus=0 editeur=0 compilation=0 shaders=0 jeu=0`, code 0. - `Mods\` : `Mods entries: 0`. - Branche : `ue5.8`. - MD5 au départ (`Get-FileHash -Algorithm MD5`) : les 21 lignes concordent avec les préfixes de la fiche. Détail : - `Content\BPs\Person.uasset` `8668A47C627F7A5254910CF0AC33B12A` (complet, égal à la fiche) ; - `GI.uasset` `32FC0A97…` ; `Room.uasset` `93138747…` ; `PC.uasset` `F45BE57A…` ; `UI\TopRight.uasset` `CB835360…` ; - `B_Walk_Loop.uasset` `C10FB66E…` ; `M_Walk_Loop.uasset` `D41DB867…` ; - `LPDirectControlSubsystem.cpp` `4CF589B2…` / `.h` `A82ED5CF…` ; `LPOutdoorRoomSubsystem.cpp` `9DCF0A35…` / `.h` `60FCE1DE…` ; - `fnt_ext001.uasset` `DF2DB514…` ; `LPDebugSubsystem.cpp` `F0081F9F…` / `.h` `78D3A079…` ; - `LPCameraModeSubsystem.cpp` `D6063264…` / `.h` `6585D7F6…` ; `LPBonusRewardSubsystem.cpp` `16147626…` / `.h` `87177C7A…` ; - `LPSaveRelaunch.cpp` `A0CD6687…` / `.h` `F31173F6…` ; `LifePlay.cpp` `3F7FFA30…`. - Liste complète des MD5 de fin : section Fichiers et MD5. - Verdict a : FAIT. ## 1. Commande exacte ``` pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\Build.ps1' -Lot STG -Target LifePlay -Config Development -ExtraArgs '-NoUBA'" ``` Commande UBT sous-jacente (journal) : `Build.bat LifePlay Win64 Development "-Project=D:\Game\LifePlay-master 5.8\LifePlay.uproject" -WaitMutex -NoHotReloadFromIDE -NoUBA`. Cuisson et paquet (étape c) : ``` pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\BuildDebug.ps1' -Config Development -ArchiveDir 'D:\Game\LifePlay_Build_5.8_COMMUN-9_Development' -SkipBuild" ``` UAT lancé : `RunUAT.bat BuildCookRun ... -cook -iterate -stage -pak -iostore -compressed -archive -archivedirectory=...`. `-iterate` est ajouté par `BuildDebug.ps1` (lp-build § 4) ; ce n'est pas un écart de la fiche. Contrôle CheckPackage (étape d) : ``` pwsh -NoProfile -File 'D:\Game\LifePlay-master 5.8\Tools\CheckPackage.ps1' -Build 'D:\Game\LifePlay_Build_5.8_COMMUN-9_Development' ``` ## 2. Code de sortie - Build : `code=0 duree=34s erreurs=0 avertissements=0 autres=0 unites=3` (résumé `Build.ps1`, code 0). Journal : `Result: Succeeded`, `Total execution time: 33.70 seconds`. - Cuisson/paquet : `BUILD SUCCESSFUL`, `AutomationTool exiting with ExitCode=0 (Success)`, code 0. - CheckPackage : `Resultat : PASS (code 0)`, code 0. - UeState à la fin : `processus=0 editeur=0 compilation=0 shaders=0 jeu=0`, code 0. ## 3. Modules recompilés Unités compilées (résumé `Build.ps1` et journal, `[1/5]` à `[3/5]`) : - `LPDirectControlSubsystem.cpp` (compilé, `[1/5] Compile [x64] LPDirectControlSubsystem.cpp [NoUba]`) ; - `LPOutdoorRoomSubsystem.cpp` (compilé, `[2/5]`) ; - `Module.LifePlay.cpp` (unité unity, `[3/5]`) ; - lien `LifePlay.exe` (`[4/5] Link [x64] LifePlay.exe [NoUba]`), `LifePlay.lib` et `LifePlay.exp` créés ; - `WriteMetadata LifePlay.target` (`[5/5]`). Horodatages des objets (`Intermediate\Build\Win64\x64\UnrealGame\Development\LifePlay\`) : - `LPDirectControlSubsystem.cpp.obj` : 14/10/2026 11:42:46 ; - `LPOutdoorRoomSubsystem.cpp.obj` : 14/10/2026 11:42:50 ; - `Module.LifePlay.cpp.obj` : 14/10/2026 11:42:54 ; - `LPCameraModeSubsystem.cpp.obj` : 14/10/2026 10:46:07 ; source `LPCameraModeSubsystem.cpp` 10:30:57 : objet postérieur à la source, donc à jour ; - `LPBonusRewardSubsystem.cpp.obj` : 14/10/2026 10:46:07 ; source `LPBonusRewardSubsystem.cpp` 09:35:21 : objet postérieur à la source, donc à jour. Écart à la fiche (établi) : la fiche attend `LPCameraModeSubsystem.cpp` et `LPBonusRewardSubsystem.cpp` compilés. Ils ne l'ont pas été dans ce build (absents de la liste des unités, exclus de l'unity par `[Adaptive Build]`), car leurs objets sont plus récents que leurs sources. Ils ne sont donc pas recompilés, et aucun de leurs avertissements n'a été produit par ce build. Preuve de l'exclusion adaptative (`Log` du journal) : `[Adaptive Build] Excluded from LifePlay unity file: LifePlay.cpp, LPBonusRewardSubsystem.cpp, LPCameraModeSubsystem.cpp, LPDebugSubsystem.cpp, LPDirectControlSubsystem.cpp, LPOutdoorRoomSubsystem.cpp, LPSaveRelaunch.cpp`. Ligne `Makefile` : la sortie du résumé est vide et le journal ne contient aucune ligne `Makefile` (0 ligne). Recréé ou réutilisé : incertain. Ligne `DLL liees : 0` du résumé : écart de comptage, car le journal contient `[4/5] Link [x64] LifePlay.exe` ; c'est le lien de l'exe jeu. Messages UHT : aucun `.h` n'a changé depuis la compilation précédente (sauf `LPDirectControlSubsystem.h` 11:12:29 et `LPOutdoorRoomSubsystem.h` 11:19:33, inclus dans cette compilation). Aucun message UHT rapporté dans le journal (`Motif 'UHT'` non relevé ; incertain faute de motif dédié). ## 4. Erreurs et avertissements - Erreurs du compilateur : 0 (résumé `Build.ps1` : `=== Erreurs du compilateur : 0`). - Avertissements du compilateur : 0 (`=== Avertissements du compilateur : 0` ; `grep` du motif `warning C` sur le journal : 0 ligne). - Autres lignes d'erreur ou d'avertissement : 0. - Avertissements de `LPDirectControlSubsystem.cpp` : aucun dans ce build (0 ligne `warning C` ; le fichier est compilé, `[1/5]`). - Avertissements de `LPOutdoorRoomSubsystem.cpp` : aucun dans ce build (`[2/5]` sans ligne d'avertissement). - Avertissements de `LPCameraModeSubsystem.cpp` et `LPBonusRewardSubsystem.cpp` : non produits (non recompilés, voir § 3). - Avertissement de cuisson (hors compilateur) : `LogCook: Warning: CookIncremental and UnversionedCookedContent were requested, but LegacyIterative is required due to ZenStore not being used ...` (journal de cuisson lignes 251 et 495 ; résumé `Success - 0 error(s), 1 warning(s)`). Il tient à `BuildDebug` (`-iterate`), pas au code. Non nouveau au sens de lp-build § 7 (`-iterate` est la procédure de BuildDebug). Aucun avertissement nouveau au sens de la fiche. ## 5. Toolchain `Using Visual Studio 14.50.35739 toolchain (C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.50.35717) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).` Moteur : `D:\Game\Launcher\Engine\UE_5.8\Engine` (EngineAssociation 5.8). ISPC 1.24.0. Ligne attendue de lp-build § 1 : `14.50.35739 ... 14.50.35717`, conforme. ## 6. Preuve de chargement d'addon sans objet : la fiche ne demande pas de preuve de chargement ; l'addon `LifePlay-Sandbox-5.8` n'est pas modifié par ce lot (aucun fichier de l'addon dans la liste de la fiche). ## 7. Journaux archivés - Résumé de compilation : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STG\STG_Build_20261014-114234.txt`. - Journal de compilation : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\STG_Build_20261014-114234.log`. - Journal cuisson/paquet : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\BuildDebug_Development_20261014-114335.log`. - Archive : `D:\Game\LifePlay_Build_5.8_COMMUN-9_Development` (dossier neuf, créé par ce build ; absent avant). ## Cuisson (étape c) - `Recooking 0` (journal de cuisson, ligne 255) : `LogCook: Display: Keeping 8917. Recooking 0. Removing 0.` - Cuits présents dans `D:\Game\LifePlay-master 5.8\Saved\Cooked\Windows\LifePlay\Content\` : - `BPs\Person.uasset` 185 299 o (14/10/2026 10:47:58) et `Person.uexp` 876 770 o ; - `BPs\Room.uasset` 184 962 o et `Room.uexp` 242 622 o (10:47:58) ; - `BPs\GI.uasset` 526 889 o et `GI.uexp` 2 028 199 o (10:47:58). - Dates : les cuits datent de 10:47:58, antérieurs à ce paquet : ce sont des cuits conservés (`Keeping`), pas des recuits. Aucun recuit exigé, aucun n'a eu lieu. - Décor `Heavy\New2\Furniture\fnt_ext001.uasset` 2 496 o ; `fnt_ext001.uexp` **1 079 978 o** (02:33:45) : taille de COMMUN-6, conforme. - Clips : `Heavy\Daz\Bridget\Anim\B_Walk_Loop.uasset` 1 557 o (13/10/2026 22:00:46) présent ; `Heavy\Daz\Michael\Anim\M_Walk_Loop.uasset` 1 551 o (22:00:46) présent. - `Content\Quaternius\` : absent (`Quaternius dir present: False`), conforme. - Preuve nominative : `Person.uasset` cuit contient `STG_StandTarget` : 1 occurrence ASCII (`Matches` sur les octets). - Information `ORG4 bonus Endsex homme` : `GI.uexp` ASCII 1 / UTF-16LE 0 ; `GI.uasset` ASCII 0 / UTF-16LE 0. ## CheckPackage (étape d) Sortie brute (`CheckPackage.ps1 -Build 'D:\Game\LifePlay_Build_5.8_COMMUN-9_Development'`) : ``` CheckPackage : build D:\Game\LifePlay_Build_5.8_COMMUN-9_Development ; configuration Development ; projet D:\Game\LifePlay-master 5.8 exe archive : D:\Game\LifePlay_Build_5.8_COMMUN-9_Development\Windows\LifePlay\Binaries\Win64\LifePlay.exe (2026-10-14 11:43:06, 330410496 o) exe du projet : D:\Game\LifePlay-master 5.8\Binaries\Win64\LifePlay.exe (2026-10-14 11:43:06, 330410496 o) [1] PASS 0 ...\Windows\Manifest_NonUFSFiles_Win64.txt [2] PASS 0 ...\Windows\Manifest_UFSFiles_Win64.txt [3] PASS 0 ...\Intermediate\Build\Win64\x64\LifePlay\Development\LifePlay.exe.rsp [4] PASS 0 ...\Binaries\Win64\LifePlay.target Resultat : PASS (code 0) ``` Résultat : PASS, 0 écart, code 0. Le fichier `.lp` ci-dessus tronque les chemins longs. ## Exe de l'archive (étape e) - `Windows\LifePlay\Binaries\Win64\LifePlay.exe` : 14/10/2026 11:43:06, 330 410 496 o, MD5 `04842366AC4A87C135DB60A1004ABBFD`. - `Binaries\Win64\LifePlay.exe` du projet : 14/10/2026 11:43:06, 330 410 496 o, MD5 `04842366AC4A87C135DB60A1004ABBFD`. Identique. - Information : `Windows\LifePlay.exe` (launcher, racine du paquet) : 11:43:57, 301 568 o, MD5 `E0A8016F67B00663CE892BCBA1E13B51` ; ce n'est pas l'exe du jeu. ## Chaînes dans l'exe de l'archive (étape e) Comptes sur `Windows\LifePlay\Binaries\Win64\LifePlay.exe` (octets lus en Latin-1, comptage ordinal). Une valeur `0` en ASCII est attendue pour les littéraux `TEXT` (UTF-16LE) ; l'ASCII est donné tel quel. | Chaîne | ASCII | UTF-16LE | |---|---|---| | `Scene_C` | 10 | 9 | | `le joueur quitte` | 0 | 1 | | `meuble d'une piece quittee` | 0 | 1 | | `Pawn en Ignore jusqu'a la sortie` | 0 | 1 | | `releve(s) en tout` | 0 | 1 | | `Marche : clip` | 0 | 1 | | `_Walk_Loop` | 0 | 3 | | `/Game/Heavy/Daz/%s/Anim/` | 0 | 1 | | `decor(s) fnt_ext en Pawn Ignore` | 0 | 1 | | `LifePlay.PersonsDump` | 0 | 1 | | `Dossier de sauvegarde :` | 0 | 1 | | `Temoin C2` | 0 | 2 | | `Camera: POV` | 0 | 1 | | `(%s), Pawn en Ignore jusqu'a la sortie` | 0 | 1 | | `meuble quitte` | 0 | 1 | | `bloque` | 0 | 2 | | `%s%s releve de` | 0 | 1 | | `en collision complexe, laisse en Pawn Block` | 0 | 1 | | `ecarte de` | 0 | 2 | | `S-F5k)` | 0 | 1 | | `COUPLE %s anim=` | 0 | 1 | | `lowestMinusUnder` | 0 | 1 | | `vue par Slate ; PlayerInput=` | 0 | 1 | | `marche coupee par le menu` | 0 | 1 | | `sans contenu visible, la marche n'est pas coupee` | 0 | 1 | | `CharGen : SpaceOn remis a vrai` | 0 | 1 | | `CharGen : MainMenuOn remis a faux` | 0 | 1 | | `Sexe : touches avant=` | 0 | 1 | | `liberee sans marche, joueur pose` | 0 | 1 | | `aucun point libre a` | 0 | 1 | | `B2q-a : %s BoundsScale` | 0 | 1 | | `T-cull mesure` | 0 | 1 | | `non rendue, bassin a l'ecran` | 0 | 1 | | `cm du bassin, a %.0f cm du composant` | 0 | 1 | | `aucun point libre (depart dans` | 0 | 1 | | `, S-F5m)` | 0 | 2 | | `Sexe : couple pris` | 0 | 1 | | `Sexe : couple pose a` | 0 | 1 | | `Sexe : couple tourne de` | 0 | 1 | | `Bonus : pas de panneau EquipMenu` | 0 | 1 | | `Touche C :` | 0 | 1 | | `Indicateur de camera : aucun` | 0 | 1 | | `joueur masque par` | 0 | 1 | | `Bonus : contrôle formule` (ô, non ASCII) | UTF-8 : 0 | 2 | | `Bonus : réglage bDisabled` (é, non ASCII) | UTF-8 : 0 | 1 | Toutes les chaînes de la fiche sont présentes (au moins une occurrence dans l'une des deux encodages). Aucune absente : pas d'ARRÊT. Lecture : `Scene_C` a 10 occurrences ASCII, ce qui peut être un nom de symbole ou de chemin ; le compte UTF-16LE est le littéral. Chaînes non ASCII : comptées en UTF-8 et en UTF-16LE (deux méthodes, comme demandé). `Touche C :` et `Indicateur de camera : aucun` sont présents en UTF-16LE. Le premier essai de comptage de ce lot visait à tort le stub `Windows\LifePlay.exe` et contenait une erreur d'assemblage de tableau (deux chaînes accentuées découpées) ; il est remplacé par le compte ci-dessus, sur le bon exe. Il n'est pas retenu. ## Fichiers et MD5 de fin (étape e) Relevé final, 21 fichiers, mêmes chemins que le départ : tous les MD5 sont identiques à ceux du départ et à la fiche. | MD5 final | Fichier | |---|---| | `8668A47C627F7A5254910CF0AC33B12A` | `Content\BPs\Person.uasset` | | `32FC0A970AB194626E8DC07DF3A9633D` | `Content\BPs\GI.uasset` | | `931387479E2D15F80BC4F36398907712` | `Content\BPs\Room.uasset` | | `F45BE57A39D13D3EB19D0B543153AB0B` | `Content\BPs\PC.uasset` | | `CB8353603CF95849B4F778A33B4BFBD2` | `Content\UI\TopRight.uasset` | | `C10FB66E4216F3E6302EE27D211C1A1D` | `Content\Heavy\Daz\Bridget\Anim\B_Walk_Loop.uasset` | | `D41DB867EAF26D26847734172E5D5F98` | `Content\Heavy\Daz\Michael\Anim\M_Walk_Loop.uasset` | | `4CF589B266FF61C8D61AE68B323FD381` | `Source\LifePlay\LPDirectControlSubsystem.cpp` | | `A82ED5CFFD97152B9237034BD7F49F4A` | `Source\LifePlay\LPDirectControlSubsystem.h` | | `9DCF0A35A1418BCB52E1A6A5B7D0F58F` | `Source\LifePlay\LPOutdoorRoomSubsystem.cpp` | | `60FCE1DE305F4133738193D82CD05F05` | `Source\LifePlay\LPOutdoorRoomSubsystem.h` | | `DF2DB514E0E2345C6CCAC66A0787621F` | `Content\Heavy\New2\Furniture\fnt_ext001.uasset` | | `F0081F9F98DEF2FE3BE130C4F26AEF9E` | `Source\LifePlay\LPDebugSubsystem.cpp` | | `78D3A07957D81E0B39C5D9A81E5E03D3` | `Source\LifePlay\LPDebugSubsystem.h` | | `D60632646BF1CF7D200E3BEA833D8D72` | `Source\LifePlay\LPCameraModeSubsystem.cpp` | | `6585D7F67A7BE3AEA377B8E93CFA14D8` | `Source\LifePlay\LPCameraModeSubsystem.h` | | `16147626D2FA8A11DAC8747CDBE12E9A` | `Source\LifePlay\LPBonusRewardSubsystem.cpp` | | `87177C7A53FB5B5CC946E904060A3AAA` | `Source\LifePlay\LPBonusRewardSubsystem.h` | | `A0CD668771FF5893ED2867F24DE1DF3A` | `Source\LifePlay\LPSaveRelaunch.cpp` | | `F31173F606A8F63DB762F2D8960509F8` | `Source\LifePlay\LPSaveRelaunch.h` | | `3F7FFA30E0EF83FC87AEC297F699EEA9` | `Source\LifePlay\LifePlay.cpp` | Le MD5 de l'exe de l'archive (`04842366AC4A87C135DB60A1004ABBFD`) est donné en section Exe ci-dessus. ## Absence de LPSaveLocation.ini `Test-Path` sur `Windows\LifePlay\Saved\Config\Windows\LPSaveLocation.ini` : False. Recherche récursive sous `D:\Game\LifePlay_Build_5.8_COMMUN-9_Development` (`-Filter LPSaveLocation.ini`) : aucun résultat. Conforme. ## Non lancé (conforme à la consigne) Le jeu n'a pas été lancé. Aucune archive autre que `…_COMMUN-9_Development` n'a été touchée. Aucune écriture dans `Source/`, `Content/`, `Config/`. Le paquet `Saved\Cooked` et `Saved\StagedBuilds` sont des sorties de build (écrites par UAT), non suivies par git. ## Fichiers à commiter aucun (aucun fichier suivi par git modifié ; ce livrable est nouveau, non suivi). ## Constats - Build code 0, 0 erreur, 0 avertissement, 3 unités (dont les deux fichiers du lot). Établi. - `LPCameraModeSubsystem.cpp` et `LPBonusRewardSubsystem.cpp` non recompilés (objets à jour, § 3). Écart à la fiche, établi. - Ligne `Makefile` absente du journal : recréation/réutilisation du makefile non établie. - Cuisson : `Recooking 0`, cuits conservés datés 10:47:58 : aucun recuit. - CheckPackage PASS 0, paquet et exe conformes. - Toutes les chaînes présentes ; `ORG4 bonus Endsex homme` : ASCII 1 dans `GI.uexp`, 0 en UTF-16LE (information). - MD5 de fin = départ pour les 21 fichiers. - UeState 0 en fin. Tours : 40 / 40 (estimé, budget atteint pendant la vérification ; `python -I Tools/FicheStats.py --lot STG` fait foi). ## Note de l'orchestrateur (écart levé) `LPCameraModeSubsystem.cpp` et `LPBonusRewardSubsystem.cpp` n'ont pas été recompilés : c'est normal. Ils sont inchangés depuis COMMUN-8 (UE-GO : `d6063264` / `16147626`), et COMMUN-8 les a compilés sans avertissement. Leurs objets (10:46:07) sont plus récents que leurs sources. Leurs chaînes (`Sexe : couple pris`, `Bonus : pas de panneau EquipMenu`…) sont dans l'exe. L'orchestrateur a recontrôlé le MD5 de l'exe (`04842366…`) et UeState (0).