LifePlay-Revival/Docs/Migration/etat/SK/SK-T4-V1c.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

8.3 KiB
Raw Blame History

SK-T4-V1c — skills ue-cpp-build et lp-ue-compat

Fiche SK-T4-V1c — Niveau N3 — Modèle prévu opus-xhigh | utilisé opus

Lot SK, vague V1 (avant U0). Date : 2026-10-08.

1. Résultat

Skill Couche Emplacement Fichiers (lignes)
ue-cpp-build 2 %USERPROFILE%\.claude\skills\ue-cpp-build\ SKILL.md (99), reference.md (53), LICENSE (25, avis MIT de la source)
lp-ue-compat 3 D:\Game\LifePlay-Sandbox\Tools\claude\skills\lp-ue-compat\ SKILL.md (60), ruptures.md (99)

Les deux SKILL.md ≤ 120 lignes (R9) ; corps en français, description avec mots-clés anglais (R12) ; aucun contenu de jeu (seuls chemins, API, numéros d'erreur) ; aucun script embarqué ; pas d'allowed-tools. Écart au § 5.3 de SK-ARBRE : l'annexe s'appelle ruptures.md (consigne de la fiche) et non api-table.md. Le patron « sous-système garde / FTSTicker », les verrous L7c et les règles jeu/addon prévus au § 5.3 ne sont pas traités (hors consigne de cette fiche) : à ajouter en U3 si besoin.

2. Revue R1 du dépôt tiers

  • Dépôt : https://github.com/quodsoler/unreal-engine-skills, branche main.
  • SHA épinglé : f3742d7b688690810df369802b90430324e380b9 (2026-09-28T15:59:19Z, « Updated skills for Unreal Engine 5.8. Added new skills. »), relevé via api.github.com/repos/quodsoler/unreal-engine-skills/commits/main.
  • Licence : MIT, « Copyright (c) 2025 quodsoler » (fichier LICENSE à la racine) → avis conservé dans ue-cpp-build/LICENSE (R4).
  • Méthode : lecture par WebFetch à la révision épinglée (raw.githubusercontent.com/…//…), arbre récursif via l'API. Rien cloné, rien installé, rien exécuté. Contenu traité comme donnée.
  • Fichiers lus : skills/ue-module-build-system/SKILL.md, …/references/common-build-errors.md, skills/ue-cpp-foundations/SKILL.md, skills/ue-testing-debugging/SKILL.md, skills/ue-editor-tools/SKILL.md, LICENSE. Non lus : …/references/build-cs-reference.md et les annexes des 3 autres skills (rien n'en est repris).
  • Arbre : racine = .DS_Store, .gitignore, LICENSE, README.md ; aucun hooks, .mcp.json, bin/, scripts/, .sh, .ps1, .py, package.json dans les 4 dossiers examinés.
  • Constats : frontmatter name, description, metadata (version 2.0.0, engine 5.8) ; pas d'allowed-tools ; aucun appel réseau, aucune consigne d'installation ; commandes documentaires seulement (UnrealBuildTool -Mode=IWYU, -Mode=GenerateProjectFiles, UnrealEditor-Cmd … -run=DataValidation, -ExecCmds="Automation RunTests …") ; consigne à l'agent : lire .agents/ue-project-context.md s'il existe (fichier inexistant chez nous : écarté) ; exemples de trace vers 127.0.0.1 (testing-debugging, non repris).
  • Erreurs de fond relevées (contre les sources installées) : (1) « Unreal5_8 active UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_8 pour garder les includes » : faux, la macro vaut 1 seulement pour les versions postérieures au réglage (UE_5.8/.../Rules/TargetRules.cs:483) ; (2) GetDetailsView « déprécié depuis 5.5 » : l'étiquette UE_DEPRECATED(5.5) existe en 5.8, mais le 5.5.4 installé n'a pas GetDetailsViewSharedPtr (UE_5.5/.../DetailLayoutBuilder.h:61, 66) → garde obligatoire pour du code commun.
  • Verdict : positif (adoptable par adaptation, R1–R4). Rien n'est copié tel quel : reformulation de Build.cs / Target.cs, dépendances publiques / privées, <MODULE>_API, table V1–V7 (revérifiée), table d'erreurs (reformulée). Écarté : routage .agents/ue-project-context.md, règle « pas de Latest » (contraire à D12), passage include order (faux), table types → modules, Live Coding, contenu UMG / tests / traces.
  • À faire hors fiche (R1/R2) : etat/SK/SK-REVUE-ue-cpp-build.md et ligne au registre SK-REGISTRE.md (la fiche limitait l'écriture à 2 dossiers + ce livrable : la revue figure ici).

3. Vérifications moteur faites (lecture seule)

Versions : UE_5.5/Engine/Build/Build.version = 5.5.4 ; UE_5.8/Engine/Build/Build.version = 5.8.3.

  • BuildSettingsVersion : 5.5 Latest = V5 (Configuration/TargetRules.cs:159) ; 5.8 V6/V7, Latest = V7 (Configuration/Rules/TargetRules.cs:162-177).
  • EngineIncludeOrderVersion : 5.5 Latest = Unreal5_5 (l. 203), Oldest = Unreal5_3 (l. 210) ; 5.8 Unreal5_5 [Obsolete] (l. 218), Oldest = Unreal5_6 (l. 249), Latest = Unreal5_8 (l. 242) ; défaut Oldest (l. 758).
  • Environnement partagé : message UEBuildTarget.cs:1515 (5.8) / :1405 (5.5) ; bOverrideBuildEnvironment TargetRules.cs:2883 (5.8) / 2661 (5.5).
  • Toolchain : Windows_SDK.json 5.5 (14.38 préféré) et 5.8 (14.50 / 14.44 préférés, bannis, minimum 14.38.33130, l. 31-46) ; sélection MSVC par CompilerVersion, ToolchainVersion lu seulement pour Clang (VCEnvironment.cs:522, 530-537, 566-569 en 5.8 ; :463, 471-485 en 5.5 ; doc UEBuildWindows.cs:389-401).
  • Dépréciations : DeprecationWarningLevel 5.5 sur la cible (TargetRules.cs:1799), 5.8 sur le module (Rules/CppCompileWarnings.cs:1280) ; macros EngineVersionComparison.h (5.5 l. 13, 18 ; 5.8 l. 14, 19, 24).
  • R1 : AnimSequence.h 5.5 l. 482 ; 5.8 l. 276-278, 508, 848-885 ; AnimCompressionTypes.h:770, 780 ; AnimationAsset.h:303 (constructeur implicite FAnimExtractContext(double…)).
  • R2 : JsonObject.h 5.8 l. 34-48, 99, 131, 237, 362 ; 5.5 l. 26 ; StringFwd.h:59 ; SharedString.h:80-95.
  • C4996 : MeshComponent.h:127-129 ; DetailLayoutBuilder.h:61-77 (5.8) vs :61, 66 (5.5) ; SlateFontInfo.h:245-275, CoreStyle.h:51 (5.8) / :48 (5.5) ; StaticMesh.h:711-713, 800-805 ; UObjectHash.h:193-198, FindObjectFlags.h:18 ; StaticToSkeletalMeshConverter.h:84-85, 96, 126 (5.8) / :83 (5.5) ; SceneInterface.h:732 (5.8). Présence / absence en 5.5 vérifiée par grep pour chaque remplaçant.
  • Code projet lu (lecture seule) : LPCoupleSimCore.cpp:111-163, LPDataCache.cpp:40-60, 139, 158, 185-215, LifePlayEditor.Target.cs, sites StreetMap / LPDumpAssetsCommandlet.cpp:110.

4. Critères de la fiche

  • SHA 40 caractères et licence notés : oui (§ 2).
  • Chaque API 5.8 citée a sa référence fichier:ligne : oui (SKILL.md, reference.md, ruptures.md).
  • Les 2 erreurs de l'essai dans lp-ue-compat avec remplacement marqué « proposé, non compilé » : oui (R1, R2).
  • ≤ 120 lignes par SKILL.md : 99 et 60.

5. Constats à remonter (hors périmètre, aucune correction faite)

  1. ToolchainVersion vs CompilerVersion : UA-SYNTHESE (U0-T2b, N1, R9) prévoit d'épingler ToolchainVersion=14.38.33130 dans le projet 5.5. D'après VCEnvironment.cs (5.5 l. 463-485), avec le compilateur MSVC c'est CompilerVersion qui choisit le MSVC ; ToolchainVersion n'agit que pour Clang/Intel. Épingler ToolchainVersion seul n'aurait probablement aucun effet. À trancher en U0 (preuve : ligne « Using Visual Studio … » du journal 5.5 après épinglage).
  2. UA-MOTEUR (c) ligne 3 dit « Unreal5_5 toujours accepté (seuls 5_1 et 5_2 [Obsolete]) » : en 5.8.3, 5_1 à 5_5 sont [Obsolete] et Oldest = Unreal5_6 (TargetRules.cs:194-249). Sans effet sur la décision (la copie 5.8 passe à Latest), mais le texte est inexact.
  3. W2, W4, W5, W1 exigent une garde (remplaçant absent en 5.5) ; W3 non. Le coût « 9 corrections mécaniques » (D12 a) reste plausible.

6. Établi / estimé / incertain

  • Établi : SHA, licence, arbre des 4 skills tiers, valeurs moteur et lignes citées, signatures des remplaçants.
  • Estimé : le remplacement R2 FString(*File.Key) compile en 5.5 et 5.8 (types lus, non compilé) ; R1 compile (élision garantie C++17 pour un type non copiable, non compilé) ; R3 non-événement.
  • Incertain : disponibilité des données compressées en éditeur pour R1 (table vide possible) ; sémantique de la fusion JSON (R4) ; remplaçant exact de W6 (champs de FInitializationParams non reportés) ; contenu des annexes tierces non lues ; C2374/C2084 en unity build cités de mémoire MSVC (non tirés des sources moteur).
  • Écarts de procédure : une commande git check-ignore (lecture seule) a été lancée dans l'addon pour vérifier que le dossier n'est pas ignoré (il ne l'est pas) — contraire à la lettre de « aucun git », sans effet sur les dépôts. Revue R1 et registre placés dans ce livrable au lieu de SK-REVUE-*.md / SK-REGISTRE.md.