LifePlay-Revival/Docs/Migration/28_Synthese_Migration_UE58.md
edujiro5972 d4d9726c38 U1 : cartographie 5.5 vers 5.8 (mods, correctifs, reliquats 4.27, releve Blueprint), pin addon f0af432 (CHG-251)
- 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>
2026-10-17 20:31:13 +02:00

32 KiB
Raw Blame History

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 :

  1. Nature de l'échec d'un conteneur de mod 5.5 monté dans 5.8 : test T4 (U7) ; conditionne D2.
  2. Durée du premier cook 5.8 à froid et réussite du resave de GI : U5, dans la copie.
  3. Nœuds Blueprint dépréciés 5.6-5.8 : Blueprint Reader en 5.5 (D8) puis CompileAllBlueprints en 5.8.
  4. Rendu du proxy StreetMap sous 5.8 : captures même cadrage en U5/U6.
  5. Zen store × version de référence : neutralisé par D1, sinon test R1 de UA-MODS.
  6. Zen commun 5.5/5.8 : lancer l'éditeur 5.5 après le premier lancement de l'éditeur 5.8.
  7. Sémantique FString : LPTestStringCompat en U3 ; ligne 155 de LPCoupleSimCore.cpp : premier build de U3.
  8. 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 avec D:\Game\VS2022\VC\Tools\MSVC\14.38.33130\bin\Hostx64\x64\cl.exe (établi).
  9. Résultats des tests SK-T5 et vagues V2 à V4 du lot SK.
  10. 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.
  11. bUseZenStore=False à écrire explicitement dans la configuration du projet en U3 (D1) : le défaut moteur passe à True en 5.8.
  12. Blueprints : .umap, nœuds Make/Break, AnimGraph et RigVM non couverts par l'audit U1 ; CompileAllBlueprints en 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é)