- plan 27 : P1 (reference DC4 + V1.5), P6 (4.27 archive apres V2.0), P7 (McpAutomationBridge desactive) verrouillees - plan 27 / synthese 28 : resultat U0 (tag ue5.5-final, copie D:\Game\LifePlay-master 5.8, VAL PASS) - Tools/VS2026/LifePlay-UE58.vsconfig : composants VS Installer de VS 2026 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
293 lines
26 KiB
Markdown
293 lines
26 KiB
Markdown
# 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
|
||
|
||
Date : 2026-10-08. Complète le plan [27_Plan_Migration_UE58.md](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.
|
||
|
||
## 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 | — | — | — |
|
||
| 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.
|
||
|
||
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 |
|