| 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) |
| `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 |
| `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` |
| 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` |
| 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 | `TMap<FString,...>::Contains` appelé avec le nouveau type de clé `FJsonObject` | `Plugins/ModdingExtra/Source/ModdingExtra/Private/LPDataCache.cpp:198` | C2664 |
| `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 |
| 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
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)
| 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 |