- plan 27 : decisions utilisateur U2 (dossiers _5.8, references 5.8, libelles LPStringCompat, TAA garde, ReimportCorrectif adapte), actions U3/U5 issues de U1 - synthese 28 : section 2.7 cartographie U1, contradictions C12-C14, points ouverts - 21_Sandbox_Addon.md : pin addon f0af432 consigne ici (etat/ local) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
32 KiB
28 — Synthèse de la migration UE 5.5 → 5.8 (audit UA, porte G-U, lot SK)
Fiche U0-DOC1 — Niveau N1 — Modèle prévu sonnet | utilisé sonnet — Agent lp-writer — Skills sk-protocol, lp-doc, lp-lot
Mise à jour U1-DOC — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-writer
Date : 2026-10-08. Complète le plan 27_Plan_Migration_UE58.md (décisions et lots : on n'y revient pas ici). Ce document se suffit à lui-même : il reprend les constats de l'audit UA, l'effort et les risques, les décisions de la porte G-U, l'arbre de compétences des sous-agents (lot SK) et tient le journal des lots U0 à U9.
1. Objet et statut des sources
- Les fiches de travail de l'audit UA et du lot SK vivent dans le dossier
Docs/Migration/etat/, local et hors git (décision de l'utilisateur, 2026-10-08) ; copie de sûreté :D:\Game\LifePlay_Backup_5.5\etat\. Ce document les remplace dans le dépôt ; il ne renvoie à aucune d'elles par lien. - Sources de synthèse : fiches UA-T1 à UA-T7 (jeu, plugins, mods, moteur, essai de compilation, synthèse, outils), UA-FAB, fiches SK-T1 à SK-T4. L'essai de compilation 5.8 (UA-ESSAI) fait foi sur les audits antérieurs.
- Conventions (comme les docs 25 à 27) : établi = constaté dans un fichier ou un journal, avec référence ; estimé = déduit, méthode dite ; incertain = ne se tranche que par un essai nommé. Les décisions appartiennent à l'utilisateur. Unité d'effort : 1 séance ≈ une demi-journée ≈ 3 h de travail orchestré, builds compris.
- Moteurs : 5.5.4 (projet actuel) et 5.8.3 (CL 58210709, installé le 2026-10-08) ; 4.27.2 abandonné.
2. Audit UA — constats établis par domaine
2.1 Jeu (UA-T1)
| Constat | Statut | Preuve |
|---|---|---|
Module LifePlay : 51 fichiers, 9 212 lignes, 25 UCLASS dont 16 sous-systèmes ; 17 fonctions exposées aux Blueprints |
établi | Source/LifePlay/*.h (UA-JEU § 1) |
Module LifePlayEditorTools : 69 fichiers, 7 915 lignes, 32 UCLASS (tous des commandlets) |
établi | Source/LifePlayEditorTools/ (UA-JEU § 1) |
Cibles en BuildSettingsVersion.V5 et Unreal5_5 : elles bloquent la cible éditeur sous 5.8 |
établi | Source/LifePlay.Target.cs:11-13, Source/LifePlayEditor.Target.cs:11-13 ; essai A (voir 2.5) |
40 lignes FTSTicker dans 14 sous-systèmes ; FTSTicker, FSavePackageArgs, IPluginManager::GetEnabledPlugins* inchangés en 5.8 |
établi | LPColorGradeSubsystem.cpp:76,81 ; en-têtes 5.8 (UA-MOTEUR c20) |
| 32 commandlets : 18 classés « portage 4.27 », 1 portage/optimisation, 3 diagnostics ponctuels, 10 outils actifs | établi (décompte) ; classement à confirmer par le propriétaire | en-têtes des *Commandlet.h (UA-JEU § 3) |
Content : 9 068 .uasset dont 8 270 sous Heavy (6 219,3 Mo) et 798 hors Heavy ; BPs/GI 51,9 Mo |
établi | find Content -name '*.uasset' (UA-JEU § 4) |
Rendu verrouillé : TAA (r.AntiAliasingMethod=2), sans Lumen, sans VSM, SSR ; DX12 |
établi | Config/DefaultEngine.ini (UA-JEU § 5.2) |
Empaquetage pak + IoStore, StagingDirectory codé en dur, clé bUseZenStore absente (le défaut moteur s'applique) |
établi | Config/DefaultGame.ini (UA-JEU § 5.3, UA-MOTEUR (a)) |
r.TranslucencyLightingVolumeDim renommée r.TranslucencyLightingVolume.Dim (alias déprécié, appliqué avec avertissement) |
établi | UE_5.8/Engine/Source/Runtime/Renderer/Private/TranslucentLighting.cpp:3398 |
r.PostProcessAAQuality et r.MinScreenRadiusForCSMDepth introuvables dans le code des deux moteurs (clés probablement déjà sans effet en 5.5) |
incertain | essai : lire la valeur par la console (UA-MOTEUR c11, c12) |
10 scripts codent le chemin UE_5.5 (2 côté jeu, 8 côté addon) |
établi | Tools/BuildDebug.ps1:19, Tools/RunCommandlet.ps1:20 (UA-OUTILS § 2) |
Graphes Blueprint : nœuds dépréciés par 5.6 à 5.8 sur GI, Person, UI/ModManager, UI/ModuleTick, UI/MainMenu, CharGen |
incertain | aucun .uasset ouvert en UA ; Blueprint Reader en 5.5 puis CompileAllBlueprints en 5.8 |
2.2 Plugins (UA-T2, corrigé par l'essai)
| Constat | Statut | Preuve |
|---|---|---|
LPAnimCore : 5 fichiers, 783 lignes ; ModdingExtra : 6 fichiers, 655 lignes, 12 assets y font référence |
établi | Plugins/LPAnimCore, Plugins/ModdingExtra (UA-PLUGINS § 1-2) |
UAnimSequence::GetCompressedTrackToSkeletonMapTable n'existe plus : rupture certaine |
établi | Plugins/LPAnimCore/Source/LPAnimCore/LPCoupleSimCore.cpp:127 (essai A1/A2) |
GetBoneTransform(..., double Time, ...) à LPCoupleSimCore.cpp:155 : probablement sans correction (le même appel compile) |
incertain | LPPoseMeasure.cpp:1283 compile (essai-A1.log:99-100) ; masqué par l'erreur de :127 |
StreetMap (tiers, MIT) compile : 0 erreur, 7 C4996 ; 310 assets du jeu le référencent ; amont figé depuis 2023 |
établi (compilation) ; estimé (amont) | StreetMapSceneProxy.cpp:21, StreetMapComponentDetails.cpp:36,51,157,165,173,299 ; recherche web UA-PLUGINS |
Rendu du proxy StreetMap sous le renderer 5.8 identique à 5.5 |
incertain | captures même cadrage (U5/U6), LPCheckStreetMap 280/280 |
McpAutomationBridge compile sous 5.8 (0 erreur) mais ajoute ≈ 20 min à un build complet |
établi | durée 25,5 min (A2) contre 4,9 min (B) |
Fab et Bridge sont présents dans 5.8 (l'hypothèse « absents » est infirmée) |
établi | UA-ESSAI § 4 ; le .uproject ne les marque pas Optional |
Addon : LPSandbox, LPAnimMeasure, LPModTools compilés ; 1 C4996 |
établi | essai-A1.log:81-304 ; LPHairFromStaticMeshCommandlet.cpp:430 |
2.3 Mods — contrat figé (UA-T3)
| Constat | Statut | Preuve |
|---|---|---|
Le contrat compte 17 surfaces (S1-S17) : fichiers texte (.lpmod, .lphair, données de module, GI.ModEnableds, GameSettings.sav), gestionnaire de mods, plugin Mods/<id>/, conteneur cuit, version de référence |
établi | UA-MODS § 1 ; ex. Source/LifePlay/LPModInfoSubsystem.cpp:49-72 |
| Aucune surface texte ne change de format avec le moteur ; le code lecteur est à recompiler, les Blueprints à réenregistrer | établi | UA-MODS § 2 |
| Tout conteneur cuit pour 5.5 est à recuire : cuisson sans version, le chargeur applique alors la version du moteur courant | établi | ProjectParams.cs:1989, CookCommand.Automation.cs:44-46, AsyncLoading2.cpp:6525-6528 |
| Un conteneur 5.5 monté par 5.8 : refus propre, erreur de chargement ou plantage (le TOC 5.5 serait accepté) | incertain | test T4 de U7 (IoStore.cpp:1140-1147) |
| L'avertissement de version ne couvre que les modules cochés, 2 s après le démarrage | établi | LPModInfoSubsystem.cpp:124-150 |
Versions de référence présentes : Releases/2026.10.1.5 et 2026.10.1.6 (1,3 Go chacune) ; il faut recréer 2026.10.2.0 |
établi | UA-MODS S12 ; .gitignore:46 |
| 3 mods d'assets à recuire (1 de coiffures, 2 d'animations) ; mods texte inchangés | établi | UA-MODS § 1 |
Interaction du Zen store avec -createreleaseversion / -basedonreleaseversion |
incertain | neutralisée par la décision D1 ; sinon test R1 de UA-MODS |
Une sauvegarde GameSettings.sav 5.5 est relue par 5.8 |
estimé | en-tête versionné (GameplayStatics.cpp:123-141) ; test T6 |
2.4 Moteur (UA-T4)
| Constat | Statut | Preuve |
|---|---|---|
Cible Windows minimale : Windows 10 (0xA00) ; Windows 7/8 exclus |
établi | UE_5.8/Engine/Config/Windows/Windows_SDK.json:89 |
MSVC 14.44.35207 n'est pas banni (le ban vise la version du compilateur 19.44.0-35210) ; 5.8 préfère 14.50.35717+ puis 14.44.35207+ |
établi | MicrosoftPlatformSDK.cs:1156 ; Windows_SDK.json:31-46 (correction apportée à UA-MOTEUR) |
Zen store activé par défaut en 5.8 (5.5 : False) |
établi | UE_5.8/Engine/Config/BaseGame.ini:95 |
FJsonObject : clés FStringView, Values n'est plus un TMap<FString,...> sauf UE_JSONOBJECT_LEGACY_STRING_KEYS=1 |
établi | UE_5.8/.../Json/Public/Dom/JsonObject.h:36-53,153-183 |
| Audio Windows par défaut : WASAPI (5.5 : XAudio2) | établi | UE_5.8/Engine/Config/Windows/WindowsEngine.ini |
| Substrate, Lumen, MegaLights : défauts inchangés pour un projet existant ; TAA reste disponible | établi | RenderUtils.cpp:2069 ; RendererSettings.h:194-199 (UA-MOTEUR c14-c16) |
Navigation, registre d'assets, FString::ParseIntoArray / Find : API présentes, sémantique non modifiée |
établi (code) ; incertain (corps non comparé ligne à ligne) | String.cpp.inl:479,1356-1365 ; test LPTestStringCompat en U3 |
Nouvelles clés de scalabilité de base (r.Fog.SeparateComposition, volumes hétérogènes) peuvent changer les brouillards aux niveaux 0-1 |
établi (clés) ; estimé (effet visuel) | diff de BaseScalability.ini 5.5/5.8 ; contrôle en U6 |
| Notes officielles 5.6 et 5.7 lues en entier seulement pour « Upgrade Notes » et « Platform SDK Upgrades » (reste filtré par mots-clés) | incertain | diff ciblé du code moteur en U1 |
2.5 Essai de compilation 5.8 (UA-T5) — copie jetable, aucune correction
Commande commune : Build.bat LifePlayEditor Win64 Development -Project=<copie> -WaitMutex -NoHotReload sur 5.8.3 complet ;
toolchain retenue par UBT : 14.50.35739 (VS 2026), SDK 22621, .NET 10 embarqué.
| Passage | Réglage de la copie | Résultat | Durée |
|---|---|---|---|
| A | cibles d'origine (V5) | code 6, blocage de règle de cible avant compilation, 0 erreur C++ | 9,9 s |
| A1 | bOverrideBuildEnvironment = true |
5 lignes d'erreur (2 causes), 9 C4996 ; 120 compilations lancées sur 143 | 26,5 min |
| A2 | BuildSettingsVersion.Latest |
mêmes erreurs et avertissements que A1 : le mode strict n'ajoute rien | 25,5 min |
| B | A2 sans McpAutomationBridge |
mêmes erreurs ; 7 C4996 (2 modules non atteints) | 4,9 min |
Les 2 erreurs de compilation (établies, identiques en A1, A2 et B) :
| # | Cause | Fichier:ligne | Erreurs |
|---|---|---|---|
| 1 | UAnimSequence::GetCompressedTrackToSkeletonMapTable supprimée du moteur |
Plugins/LPAnimCore/Source/LPAnimCore/LPCoupleSimCore.cpp:127 |
C2039, C2530, 2 × C2143 |
| 2 | TMap<FString,...>::Contains appelé avec le nouveau type de clé FJsonObject |
Plugins/ModdingExtra/Source/ModdingExtra/Private/LPDataCache.cpp:198 |
C2664 |
9 avertissements C4996 (établi) : 7 dans StreetMap (GetMaterialRelevance, GetDetailsView ×2, FSlateFontInfo ×3,
ImportVersion), 1 dans LPDumpAssetsCommandlet.cpp:110 (GetObjectsWithPackage(bool)), 1 dans l'addon
(LPHairFromStaticMeshCommandlet.cpp:430). Statuts : toutes les unités de compilation des 9 modules ont été compilées
(établi, essai-A1.log:81-304) ; les 23 actions non exécutées sont des éditions de liens et la cible (estimé) ; le
bilan complet des avertissements des modules non atteints reste incertain.
2.6 Outils et chaîne (UA-T7, UA-FAB)
| Constat | Statut | Preuve |
|---|---|---|
VS 2022 17.14 (D:\Game\VS2022) et VS 2026 18.10 coexistent ; MSVC 14.38.33130, 14.44.35207 et 14.50 installés |
établi | vswhere (UA-OUTILS) ; UA-SYNTHESE § 6 |
| UBT 5.5 retient 14.38 ; UBT 5.8 retient 14.50.35739 depuis VS 2026 | établi | journal UBT 5.5 du 2026-10-07 ; essai-A1.log |
| Un build 5.5 reste sur le toolset 14.38 après l'ajout de VS 2026 | incertain | build 5.5 de contrôle en U0-T2b |
| GPU RX 6600M (8 Go), pilote 26.8.1 conforme (suggéré 26.2.2) ; RAM 63,3 Go ; 8 cœurs | établi | BaseHardware.ini:85-87 (UA-OUTILS § 1) |
D: est un NVMe en boîtier USB (moteurs, projet, DDC) : latence d'E/S plus forte |
établi | UA-OUTILS § 1 |
| Zen commun : installation 5.6.6, remplacée par 5.8.13 au premier lancement de l'éditeur 5.8, puis utilisée par 5.5 | estimé | Common\Zen\Install ; test : lancer l'éditeur 5.5 après 5.8 |
| Bibliothèque Fab : 394 éléments acquis, 11 outils retenus en priorité 1 (Blueprint Reader, Blueprint Backup & Restore…) | établi | UA-FAB (lecture seule, rien installé) |
Bilan du § 2 : 48 constats étiquetés (45 lignes des tableaux 2.1 à 2.4 et 2.6, plus les 3 statuts de l'essai 2.5) : 33 établis, 3 estimés, 9 incertains, 3 mixtes (deux statuts dans la même ligne). Les passes, erreurs et avertissements de l'essai (tableaux 2.5) sont des mesures établies, non recomptées ici.
2.7 Cartographie U1 (2026-10-08, lecture seule ; hors du bilan des 48 constats ci-dessus)
Contrat des mods et moteur (U1-T1) :
| Constat | Statut | Preuve |
|---|---|---|
Contrat des mods inchangé en 5.8 : découverte Mods/, activation par défaut, montage pak ordre 0, point de montage, registre d'assets dans le paquet, -basedonreleaseversion ; risque R2 de UA-MODS écarté par le code, confirmation en build empaqueté (test T-M1, U7) |
établi (code) ; incertain (empaqueté) | lecture des sources 5.8 ; test T-M1 |
| Formats cuits : pak 11 → 12, en-tête de conteneur 4 → 5, version d'objet UE5 1013 → 1018 : recuisson obligatoire | établi | en-têtes 5.5 / 5.8 |
| Un mod cuit pour 5.8 dans le jeu 5.5 : arrêt fatal au démarrage | estimé | PakFile.cpp:300 |
bUseZenStore : False (5.5) → True (5.8) ; le projet ne le fixe pas : écriture explicite en U3 (D1) |
établi | BaseGame.ini:95 |
Correctifs de compilation (U1-T2) : ni compilés ni appliqués (statut « proposé, non compilé »).
| # | Site | Correctif retenu | Garde | Équivalence |
|---|---|---|---|---|
| R1 | LPCoupleSimCore.cpp:127 (fichier CRLF) |
GetCompressedData().Get().CompressedTrackToSkeletonMapTable (AnimSequence.h:885, AnimCompressionTypes.h:780) ; même migration chez Epic (MovieSceneSkeletalAnimationSection.cpp:722-723) |
UE_VERSION_OLDER_THAN(5, 8, 0) |
jeu cuit : établi ; éditeur : estimé |
| R2 | LPDataCache.cpp:198 |
FString(File.Key.ToView()) (SharedString.h:92-95) ; variante sans garde FString(*File.Key) |
oui (forme recommandée pour D11) | établi (mêmes caractères) |
:155 |
LPCoupleSimCore.cpp:155 |
aucun : conversion implicite double → FAnimExtractContext (constructeur non explicit, AnimationAsset.h:303) |
non | estimé ; preuve au premier build U3 |
Piste IAnimationDataModel écartée : API réservée à l'éditeur. Repli D11 (b) par macro UE_JSONOBJECT_LEGACY_STRING_KEYS
impossible avec le moteur installé (TargetRules.cs:2776-2778, DLL Json compilée avec la valeur 0) : seul le correctif de
code vaut. Autres clés FJsonObject du jeu et de l'addon : compilent, copies silencieuses sans effet (établi).
Reliquats 4.27 (U1-T3) : 32 commandlets dont 16 à retirer (15 LPFix* et LPConvertAtmosphericFog) et 2 gardés
(LPResavePackages, LPTestStringCompat) ; 3 réglages de chemin moteur (LifePlay.uproject:3, Tools/BuildDebug.ps1:19,
Tools/RunCommandlet.ps1:20) ; environ 411 mentions 4.27 dans 28 docs (établi, décompte). Décisions : plan 27, § U2.
Blueprints (U1-T4, commandlet en lecture seule LPAuditBlueprintCalls de l'addon, relevé en 5.5 puis croisé avec les
en-têtes 5.8) :
| Mesure | Valeur | Statut |
|---|---|---|
| Relevé 5.5 | 110 Blueprints (27 Blueprint, 73 Widget, 7 Anim, 3 ControlRig), 977 graphes, 46 617 nœuds, 498 membres natifs (449 fonctions, 49 propriétés), 63 classes de nœud, 0 échec | établi |
| Croisement 5.8 | 458 membres inchangés, 25 propres au projet, 15 à signature changée (931 nœuds) ; aucun redirigé ni retiré | établi |
| 15 signatures changées | surtout 11 Array_* passés en UPARAM(ref) : tolérés par AllowedMutableContainerFunctions (BaseEditor.ini:197-215, « REMOVE IN UE 5.9 ») |
établi (tolérance) ; fin en 5.9 |
| Classes de nœud dépréciées | K2Node_InputAction, K2Node_InputAxisEvent : 38 nœuds dans /Game/BPs/PC, sans effet tant que DeprecatedActionAndAxisNames est vide |
estimé |
| Nœud à corriger en 5.8 | aucun | estimé |
| Non couverts | .umap, nœuds Make/Break, AnimGraph, RigVM |
incertain (U5) |
3. Effort et risques (UA-SYNTHESE)
Marge : bornes hautes = bornes basses × 1,5 (première exécution en 5.8) + une escalade de niveau par lot ; scénario noir (échec de T4 et Blueprint cassé et écart StreetMap) : +3 à +5 séances. Méthode : UA-SYNTHESE § 7 (postes décomposés, cycles de build mesurés, durées 5.5 × facteur 5.8).
| Lot | Contenu | Séances | Niveaux | Durée machine |
|---|---|---|---|---|
| U0 Préparation | VS Installer, épinglage 5.5, build de contrôle, tag ue5.5-final, copie 5.8, décisions |
1 - 1,5 | N0, N1, N2 | copie 5-15 min |
| U1 Cartographie | diff moteur ciblé, spec des 2 correctifs, relevé Blueprint Reader | 1 - 2 | N1, N3 | — |
| U2 Retrait 4.27 | 16 commandlets, point unique du chemin moteur | 1 - 1,5 | N1, N0 | build < 1 min |
| U3 Bascule et compilation | 2 correctifs, 9 C4996, premier lancement éditeur 5.8, LPTestStringCompat |
1,5 - 3 | N3, N0, N4 | 4-8 builds de 8-12 min (estimé) |
| U4 Plugins et addon | StreetMap, Mcp, scripts de l'addon, tournée Mesure | 2 - 3,5 | N3, N1, N2 | 2-4 builds |
| U5 Contenu | resave hors Heavy, CompileAllBlueprints, LPCheckStreetMap, cuisson à froid |
2 - 4 | N1, N0, N3 | resave 0,2-3 h ; cook à froid 1-3 h (incertain) |
| U6 Comportement en jeu | build Development 5.8, A/B LogStats, VQ, audio |
2 - 3 | N1, N3 | 15-30 min |
| U7 Mods | version de référence, 3 cuissons DLC, tests T1-T7 dont T4 | 2,5 - 4 | N1, N0, N3 | 3 × 5-15 min |
| U8 Shipping et publication | build Shipping, archives, évaluation, porte de publication | 1,5 - 2,5 | N1, N2 | ≈ 10 min + cook 15-30 min |
| U9 Voie UE5 native | interrupteurs des correctifs de sémantique (différé) | 2 - 4 | N3, N1 | — |
| Total U0-U8 | 14,5 - 25 | ≈ 7 à 16 h ; actions utilisateur ≈ 6 à 10 h | ||
| avec U9 | 16,5 - 29 |
Constantes mesurées (établi) : build éditeur 5.8 complet avec Mcp 26,5 min (A1) ; build 5.5 incrémental 13 s
(AP7_Build_20261006-212651.txt:74) ; cook 5.5 à chaud 8 884 paquets en 6,0 min (AP7_Ship_20261007-023526.txt:3697) ;
CompileAllBlueprints 115 s ; LPCheckStreetMap 25 s ; resave de la liste CX-B07 86 s.
| # | Risque | P×I | Parade principale |
|---|---|---|---|
| R1 | Mod cuit pour 5.5 monté dans le jeu 5.8 (plantage possible) | 3×3 = 9 | test T4 ; garde MODULE_GAME_VERSION (D2) |
| R2 | Resave de masse (ERR-019), GI 51,9 Mo, nœuds dépréciés |
2×3 = 6 | Blueprint Backup & Restore, resave par lots hors Heavy (D10) |
| R3 | Zen store par défaut change la chaîne de cuisson | 3×2 = 6 | bUseZenStore=False avant le premier cook (D1) |
| R4 | Contrat JSON / LPDataCache altéré silencieusement |
2×3 = 6 | conversion explicite des clés (D11) + diff des caches |
| R5 | Proxy de rendu StreetMap sous 5.8 | 2×3 = 6 | LPCheckStreetMap, captures même cadrage |
| R6-R10 | Cook à froid très long (4) ; modules non mesurés (2, réduit) ; Zen server commun 5.5/5.8 (4) ; MSVC partagé (4) ; disque USB (3) | 2 à 4 | tâche de fond ; toolset épinglé par projet, jamais globalement ; Snapshot.ps1 et git avant tout resave |
| R11-R16 | Mcp bêta (2) ; pont IA expérimental (2) ; erreur résiduelle :155 (1) ; sémantique FString (3) ; sauvegardes 5.5 (2) ; rendu / audio par défaut (2) |
1 à 3 | Mcp désactivé (D4) ; LPTestStringCompat dès U3 ; test T6 ; écoute et captures en U6 |
Points de non-retour : réenregistrement des assets (U5, uniquement dans la copie 5.8, réversible par git checkout et
Snapshot.ps1) ; recuisson et republication des 3 mods (U7) ; publication V2.0 (U8, derrière une porte utilisateur
explicite) ; désinstallation de 4.27 (reportée après V2.0, D6). Tout ce qui précède U7 est jetable depuis le tag
ue5.5-final. Portes intermédiaires : G-U3 (0 erreur, LPTestStringCompat vert, éditeur 5.8 ouvert) et
G-U6 (A/B et contrôle visuel équivalents à DC4).
4. Décisions de la porte G-U (2026-10-08)
Décision : GO séquencé U0-U8, U9 différé après V2.0 (détail dans le plan 27, section « Porte G-U »). Décisions déjà verrouillées avant la porte : cible 5.8, abandon de 4.27, mods figés, règles PUB, P2 à P5, P8.
| # | Décision retenue | État |
|---|---|---|
| D1 | bUseZenStore=False explicite pour toute la migration ; Zen en lot dédié après V2.0 |
tranchée |
| D2 | Garde C++ MODULE_GAME_VERSION : décidée après le test T4 (U7) |
en attente de T4 |
| D3 | Retirer 16 commandlets de portage ; garder LPResavePackages et LPTestStringCompat |
tranchée |
| D4 | McpAutomationBridge désactivé pour V2.0 ; MCP officiel Epic évalué hors chemin critique, sur copie jetable |
tranchée |
| D5 | Référence de comportement : LifePlay_Build_5.5_DC4 et V1.5 |
tranchée |
| D6 | Désinstallation et archivage de 4.27 après la publication V2.0 | tranchée |
| D7 | Mcp désactivé « pour V2.0 » (motif : coût et bêta, non plus l'absence de version 5.8) | tranchée avec D4 |
| D8 | Blueprint Reader activé en 5.5 (Editor, non commité) avant U1 | tranchée |
| D9 | U9 après V2.0 | tranchée |
| D10 | Réenregistrement hors Heavy (798 assets) ; Heavy reste au format 5.5, converti à la volée |
tranchée |
| D11 | Correctif LPDataCache : code ou macro de compatibilité ; décision en U3 (recommandation : conversion explicite des clés) |
à prendre en U3 |
| D12 | Réglages stricts Latest et sort des 9 C4996 ; décision en U3 (recommandation : Latest et corriger les 9) |
à prendre en U3 |
| D13 | Fab et Bridge en Optional: true dans le .uproject de la copie 5.8 |
tranchée |
Préalable demandé par l'utilisateur : lot SK avant U0 (§ 5).
5. Lot SK — arbre de compétences des sous-agents
5.1 Niveaux de modèles (règle du 2026-10-08, plan 27)
Opus en effort high orchestre ; il délègue vers le bas et vers le haut. Niveau (note a-f) : N0 Haiku (0-2 : compilation, copies, inventaires) ; N1 Sonnet (3-4 : outillage spécifié, retraits mécaniques, docs, commits) ; N2 Opus high, orchestrateur (5-6 : fiches, arbitrages) ; N3 Opus xhigh (7-8 : portage d'API, diagnostic sur graphe d'appels) ; N4 Opus max (9-10 : portage transversal, échec de N3) ; N5 Fable (11-12 : enjeu maximal).
Grille de complexité : six critères de 0 à 2 (étendue, couplage, incertitude, coût d'erreur, difficulté de vérification, jugement). La fiche comporte 9 rubriques plus la rubrique 2b « agent + skills ».
5.2 Agents (option C : un agent par rôle, escalade par les agents de niveau)
| Agent | Rôle | Niveau par défaut |
|---|---|---|
lp-builder |
compile, lance commandlets et cuissons, rapporte le journal | N0 |
lp-inventory |
inventaires chiffrés, états git | N0-N1 |
lp-cart |
cartographie C++ / Blueprint, audit de sous-système | N3 |
lp-research |
recherche externe et sources moteur | N3 |
lp-spec |
spécification exécutable | N3 |
lp-impl (+ variante -max) |
C++, portage, refactor, configuration | N3 (N4) |
lp-tooling |
commandlets, Python éditeur, PowerShell | N1 |
lp-content |
chaînes de contenu, cuisson DLC des mods | N1 |
lp-validator |
validation statique, smoke, diff, preuve par l'échec | N1 |
lp-measure |
mesure A/B, préparation des tests utilisateur | N1 |
lp-debugger (+ variante -max) |
diagnostic sémantique, runtime, plantage | N3 (N4) |
lp-integrator |
commits par phase, pins, simulation de publication ; jamais de push | N1 |
lp-writer |
journal, registre, docs numérotées, fiches | N1 |
opus-xhigh, opus-max, fable-top |
agents d'escalade N3, N4, N5 (socle de méthode préchargé) | N3-N5 |
Le niveau descend par la surcharge model de l'appel ; il monte par l'agent d'escalade. Les agents d'audit et de
validation n'ont pas l'outil d'édition. Chaque agent précharge au plus 4 skills (≤ 6 000 jetons estimés).
5.3 Skills par couche (33 prévus)
| Couche | Préfixe | Emplacement | Contenu |
|---|---|---|---|
| 1 — socle de méthode (9) | sk- |
C:\Users\<compte>\.claude\skills\ (hors dépôt) |
preuve établi / estimé / incertain, interdits et arrêt, recompte, orchestration, sécurité des changements, comparabilité, shell Windows, estimation, spécification, données web |
| 2 — domaine générique (8) | ue-, git-, debug- |
idem | build C++ et UBT, cuisson et empaquetage, patron de commandlet, UMG / Slate, lecture d'un plantage, commits par phase, débogage systématique, vérification avant clôture |
| 3 — projet LifePlay (16) | lp- |
dépôt addon privé, Tools/claude/skills/, exposé par une jonction vers .claude/skills |
build, cuisson, mods, commandlets, mesure, diagnostic, git, publication, docs, lots, chemins, environnement, compatibilité UE4, chaînes de contenu, profils de validation |
Règles d'adoption : revue intégrale avant toute copie tierce, licence MIT ou Apache-2.0 seulement, révision épinglée
par SHA, SKILL.md ≤ 120 lignes, skills et agents en français, aucun contenu de jeu dans un skill, rien dans le dépôt
public (/.claude/ est ignoré, .gitignore:72). Rédaction en 4 vagues : V1 avant U0, V2 avant U4, V3 avant U7, V4 à
l'évaluation de U8 (effort total estimé 3,5 à 5 séances).
5.4 Livré en V1 (constaté par présence des fichiers)
| Livrable | État | Fiche |
|---|---|---|
Couche 1-2 (7 skills) : sk-protocol, sk-recount, sk-orchestrate, sk-change-safety, sk-windows-shell, debug-verification, ue-cpp-build (adapté d'un dépôt MIT, révision épinglée) |
établi | SK-T4-V1a, V1c |
Couche 3 (7 skills) : lp-build, lp-commandlets, lp-doc, lp-lot, lp-paths, lp-env, lp-ue-compat |
établi | SK-T4-V1b, V1c |
Agents : lp-builder, lp-inventory, lp-cart, lp-impl, lp-impl-max, lp-validator, lp-writer (+ les 3 agents de niveau existants) |
établi (fichiers présents) | C:\Users\<compte>\.claude\agents\ |
Témoin de préchargement : skill et agent sk-probe |
établi (fichiers présents) | SK-T5 |
Reste à écrire : V2 à V4 (19 skills, 6 agents de rôle dont lp-spec, lp-research, lp-tooling, lp-measure,
lp-debugger, lp-integrator, lp-content). Résultat des tests SK-T5 (préchargement par l'application de bureau,
jonction, surcharge de model sans effort) : non relevé dans les sources de cette synthèse, donc incertain.
6. Journal des lots U0 à U9
À compléter à chaque clôture de lot (une ligne par lot : date, résultat, CHG). Les lots UA, la porte G-U et le lot SK sont décrits aux § 2, 4 et 5.
| Lot | Date de clôture | Résultat | CHG |
|---|---|---|---|
| U0 Préparation | 2026-10-08 | VS 2026 en coexistence ; 5.5 épinglé CompilerVersion=14.38.33130 (compilation de contrôle code 0, éditeur démarré sans erreur) ; toolset 5.8 14.50.35717 non banni (cl.exe 14.50.35739) ; tag ue5.5-final ; copie LifePlay-master 5.8 sur ue5.8 ; P1, P6, P7 verrouillées ; VAL PASS (T2, T2b, T3, doc 28) |
CHG-249, CHG-250 |
| U1 Cartographie | 2026-10-08 | Contrat des mods inchangé (recuisson obligatoire : pak 12, conteneur 5, objet 1018) ; 2 correctifs spécifiés avec garde de version (R1 GetCompressedData(), R2 FString(File.Key.ToView())), pistes IAnimationDataModel et macro D11 (b) écartées ; 32 commandlets (16 à retirer) et 3 réglages de chemin moteur ; audit Blueprint 5.5 : 110 BP, 46 617 nœuds, 15 signatures changées (931 nœuds), aucun nœud à corriger (estimé) |
CHG-251 |
| U2 Retrait 4.27 et chemin moteur | — | — | — |
| U3 Bascule et compilation (porte G-U3) | — | — | — |
| U4 Plugins tiers et addon | — | — | — |
| U5 Contenu | — | — | — |
| U6 Comportement en jeu (porte G-U6) | — | — | — |
| U7 Mods | — | — | — |
| U8 Shipping, publication, évaluation | — | — | — |
| U9 Voie UE5 native (différé après V2.0) | — | — | — |
7. Points ouverts
Incertains à trancher par un essai :
- Nature de l'échec d'un conteneur de mod 5.5 monté dans 5.8 : test T4 (U7) ; conditionne D2.
- Durée du premier cook 5.8 à froid et réussite du resave de
GI: U5, dans la copie. - Nœuds Blueprint dépréciés 5.6-5.8 : Blueprint Reader en 5.5 (D8) puis
CompileAllBlueprintsen 5.8. - Rendu du proxy
StreetMapsous 5.8 : captures même cadrage en U5/U6. - Zen store × version de référence : neutralisé par D1, sinon test R1 de UA-MODS.
- Zen commun 5.5/5.8 : lancer l'éditeur 5.5 après le premier lancement de l'éditeur 5.8.
- Sémantique
FString:LPTestStringCompaten U3 ; ligne 155 deLPCoupleSimCore.cpp: premier build de U3. Toolset 14.38 conservé par 5.5 après l'ajout de VS 2026: tranché en U0-T2b —CompilerVersion=14.38.33130épinglé, compilation de contrôle code 0 avecD:\Game\VS2022\VC\Tools\MSVC\14.38.33130\bin\Hostx64\x64\cl.exe(établi).- Résultats des tests SK-T5 et vagues V2 à V4 du lot SK.
- Boîte englobante du couple (
LPCoupleSimCore, chemin « animations ») : aucune référence 5.5 en jeu cuit ; à relever sur le build DC4 avant G-U3. bUseZenStore=Falseà écrire explicitement dans la configuration du projet en U3 (D1) : le défaut moteur passe à True en 5.8.- Blueprints :
.umap, nœuds Make/Break, AnimGraph et RigVM non couverts par l'audit U1 ;CompileAllBlueprintsen U5.
Contradictions entre sources (la plus récente retenue) :
| # | Contradiction | Retenu |
|---|---|---|
| C1 | UA-OUTILS : UBT 5.8 retient 14.44.35207 ; UA-ESSAI : 14.50.35739 | UA-ESSAI (après l'installation de VS 2026) |
| C2 | UA-MOTEUR : 14.44.35207 banni ; UA-OUTILS : non banni (MicrosoftPlatformSDK.cs:1156) |
non banni (UA-SYNTHESE § 6) |
| C3 | UA-MOTEUR, UA-PLUGINS, UA-OUTILS : Fab / Bridge absents de 5.8 ; UA-ESSAI : présents |
présents |
| C4 | UA-PLUGINS : rupture certaine à LPCoupleSimCore.cpp:155 ; essai : à :127 |
:127 (essai) |
| C5 | UA-PLUGINS : 21 plugins moteur activés ; UA-MOTEUR : 26 | les deux justes : 26 entrées activées au .uproject, dont 5 hors moteur (LPAnimCore, LPSandbox, ModdingExtra, StreetMap, McpAutomationBridge) → 21 plugins moteur (recompté en U0) |
| C6 | UA-JEU : 18 commandlets de portage ; décision D3 : 16 retirés | 16 (2 gardés volontairement) |
| C7 | UA-SYNTHESE et UA-OUTILS : épingler ToolchainVersion ; plan 27 (P8) : c'est CompilerVersion qui choisit MSVC, ToolchainVersion ne sert qu'à Clang (VCEnvironment.cs 5.5 l. 463-485) |
plan 27, confirmé en U0-T2b (journal UBT : toolset 14.38.33130 retenu par CompilerVersion) ; en 5.8, CompilerVersion est comparé à la version du cl.exe ou au nom du dossier (MicrosoftPlatformSDK.cs:581, :1147) |
| C8 | Lot SK : 45 types de tâche annoncés, 49 recomptés ; 28 skills annoncés, 33 au catalogue ; « 12 agents de rôle », 13 lignes de rôle au tableau | recomptes (49 types, 33 skills, 13 rôles) |
| C9 | UA-MOTEUR (c8) cite LPDataCache.cpp:52,196 ; l'essai place l'erreur à :198 |
:198 (essai) |
| C10 | Plan 27 (U0) : le toolset VS 2026 14.50.35717 serait banni ; U0-T2 : le bannissement porte sur la version du cl.exe (MicrosoftPlatformSDK.cs:1156, :1416), ici 14.50.35739, hors plage 14.50.0-14.50.35722 (Windows_SDK.json:41) |
non banni ; épingle 5.8 : CompilerVersion=14.50.35717 |
| C11 | UA-OUTILS : Log.txt UBT issu d'un run 5.8, version de 14.44 « 19.44.35228 » ; U0-T2 : run 5.5, version 14.44.35228 |
U0-T2 |
| C12 | UA-PLUGINS / UA-SYNTHESE : piste IAnimationDataModel pour R1 ; U1-T2 : API réservée à l'éditeur (AnimSequenceBase.h:238-281), inutilisable dans le module Runtime |
U1-T2 : piste écartée |
| C13 | UA-SYNTHESE, lp-ue-compat : macro UE_JSONOBJECT_LEGACY_STRING_KEYS comme repli D11 (b) ; U1-T2 : impossible avec le moteur installé (TargetRules.cs:2776-2778, DLL Json compilée avec 0) |
U1-T2 : pas de repli par macro, correctif de code seul |
| C14 | UA-MODS : attendu du test T5 (mod 5.8 monté dans le jeu 5.5) = TOC « Too new » refusé (IoStore.cpp:1145-1147) ou avertissement de version ; U1-T1 : la version de TOC n'a pas changé, le pak 12 provoque un arrêt fatal au démarrage (PakFile.cpp:300, estimé) |
U1-T1 (attendu T5 corrigé) |