L0 : documentation de migration et outillage de test
Docs/Migration : architecture initiale (pipeline donnees -> GI ->
evenements/personnages), audit logiciel 5.5, plan de tests, cahier des
charges par lots bornes, journal des modifications, registre des erreurs.
Tools : CheckIntegrity (T-STAT-02..04), LogStats (compteurs normalises,
A/B 4.27/5.5). Empreinte de reference de l'arbre 4.27.
Tests : aller-retour Snapshot/Restore verifie par MD5 ; T-STAT-02, 03,
04 au vert ; T-STAT-01 : 1 package UE4 (GI.uasset), traite en L1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 23:01:52 +00:00
# 04 — Cahier des charges : migration itérative par lots bornés
> Méthode : développement itératif. Chaque lot tient dans **une session IA** (≈ 2 à 3 h), a **un
> objectif mesurable**, des **tests d'entrée et de sortie** (catalogue : `03_Plan_Migration_Tests.md`)
> et une **procédure de retour arrière**. Un lot ne commence qu'après validation du précédent.
---
## 1. Exigences
### 1.1 V1 — « compile, fonctionne, ne plante pas, journal exploitable »
| ID | Exigence | Test d'acceptation |
|---|---|---|
| EX-01 | L'éditeur `LifePlayEditor Win64 Development` compile sans erreur | T-BUILD-01 |
| EX-02 | Tous les Blueprints se chargent et se compilent | T-LOAD-01, T-LOAD-02 |
| EX-03 | Tous les packages sont au format UE5 | T-STAT-01 |
| EX-04 | Les données `Modules` sont intactes et chargées comme en 4.27 | T-STAT-02, T-RUN-01 |
| EX-05 | Une build Development empaquetée démarre, génère des personnages distincts et visibles, joue une scène, sauvegarde et recharge | T-RUN-02 à T-RUN-04 |
| EX-06 | Aucun plantage sur une session de 30 minutes | T-RUN-05 |
| EX-07 | Journal efficace : catégorie `LogLifePlay` , résumé de démarrage, erreurs répétitives plafonnées, instrumentation de portage retirée du niveau par défaut | T-LOG-01 |
| EX-08 | Toute modification est tracée et réversible | T-STAT-05 ; essai réel de `Restore.ps1` |
| EX-09 | Environnement de développement et référence 4.27 préservés | T-STAT-03, T-STAT-04 |
Hors V1, tolérés et inscrits au registre : visuel dégradé (éclairage précalculé, brouillard),
avertissements cosmétiques du moteur, dette R-03/R-07, rendu Cascade.
### 1.2 V2 et suivantes — corrections par lots soutenables
Traitement du `Registre_Erreurs.md` **par ordre de fréquence × gravité** , un lot par famille
(≤ 30 assets ou une commandlet), avec non-régression complète des tests V1.
## 2. Règles de conduite d'un lot
1. **Entrée** : tests de sortie du lot précédent au vert ; `git status` propre.
2. `git tag lot-XX-avant` .
3. `Tools\Snapshot.ps1 -Lot XX -Path <tous les fichiers visés>` (y compris hors git, ex. `Content/Heavy` ).
4. Modification. Toute commandlet de correction est d'abord lancée en `-DryRun` , rapport archivé
dans `Docs/Migration/etat/` .
5. Tests de sortie.
6. Vert → entrée `CHG` au journal, commit, `git tag lot-XX-apres` .
Rouge → `Tools\Restore.ps1 -Lot XX` (ou `git checkout lot-XX-avant -- …` ), entrée `CHG` d'annulation,
défaut inscrit au registre.
7. Un lot qui dépasse la session est **coupé** : ce qui est validé est commité, le reste redevient
un lot à part.
## 3. Lots
### L0 — Filet de sécurité et documentation ✅ (2026-09-29)
- **Objectif** : pouvoir tout annuler et savoir ce qu'on migre.
- **Livrables** : documents 01 à 04, journal, registre ; dépôt git local (tag `lot-L0-base` ) ;
`Tools/` (Snapshot, Restore, AssetHeaders, CheckIntegrity, LogStats) ; empreintes L0 ; sauvegarde
`D:\Game\LifePlay_Backup_5.5\L0` (53 fichiers).
- **Sortie** : aller-retour `Snapshot` /`Restore` vérifié par MD5 ; T-STAT-02 à 04 au vert.
2026-09-28 23:12:38 +00:00
### L1 — Base saine ✅ (2026-09-29)
- **Objectif** : repartir d'un contenu de gameplay **connu et sain** (décisions D-01, D-02) et
mesurer ce que le moteur 5.5 en dit, sans aucun correctif.
- **Périmètre réalisé** :
1. `Content/{BPs,UI,Structs,Scenes,Render,Characters}` (385 fichiers) remis **à l'identique de
4.27** (MD5 vérifiés). Tous les correctifs de contenu antérieurs sont ainsi retirés, R-03 et
R-04 compris. `Content/Heavy` (resave moteur seul, sans correctif) est conservé et sera
contrôlé en L4.
2. Correctifs isolés : catalogue et protocole de réimport dans `05_Correctifs_Isoles.md` ;
écarts de code 4.27 → 5.5 exportés dans `correctifs/P01…P06.patch` .
3. Diagnostic brut de la base : `LPCheckMeshAssignment` et `CompileAllBlueprints`
(`etat/L1_*.txt`).
- **Écarté du lot** : suppression des sections `AndroidFileServerRuntimeSettings` / `CookerSettings`
de `DefaultEngine.ini` : le plugin moteur AndroidFileServer la **recrée à chaque lancement**
(nouveau `SecurityToken` ). Traitement correct en L2 : désactiver ce plugin dans le `.uproject` .
`DefaultEditor.ini` conservé (profils de prévisualisation réécrits par l'éditeur).
- **Déplacé en L2** : purge des dossiers régénérables (`Binaries`, `Intermediate` sont
nécessaires aux commandlets tant que la reconstruction n'est pas faite).
- **Sortie** : contenu de gameplay = 4.27 (MD5) ; relevé de base archivé ; T-STAT-02 à 05.
T-STAT-01 (0 package UE4) est **reporté** au sous-lot `L4-CX-B07` (resave contrôlé).
- **Retour** : `Tools\Restore.ps1 -Lot L1` ou `git checkout lot-L1-avant -- Content` .
L0 : documentation de migration et outillage de test
Docs/Migration : architecture initiale (pipeline donnees -> GI ->
evenements/personnages), audit logiciel 5.5, plan de tests, cahier des
charges par lots bornes, journal des modifications, registre des erreurs.
Tools : CheckIntegrity (T-STAT-02..04), LogStats (compteurs normalises,
A/B 4.27/5.5). Empreinte de reference de l'arbre 4.27.
Tests : aller-retour Snapshot/Restore verifie par MD5 ; T-STAT-02, 03,
04 au vert ; T-STAT-01 : 1 package UE4 (GI.uasset), traite en L1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 23:01:52 +00:00
2026-09-28 23:25:53 +00:00
### L2 — Compilation propre ✅ (2026-09-29)
L0 : documentation de migration et outillage de test
Docs/Migration : architecture initiale (pipeline donnees -> GI ->
evenements/personnages), audit logiciel 5.5, plan de tests, cahier des
charges par lots bornes, journal des modifications, registre des erreurs.
Tools : CheckIntegrity (T-STAT-02..04), LogStats (compteurs normalises,
A/B 4.27/5.5). Empreinte de reference de l'arbre 4.27.
Tests : aller-retour Snapshot/Restore verifie par MD5 ; T-STAT-02, 03,
04 au vert ; T-STAT-01 : 1 package UE4 (GI.uasset), traite en L1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 23:01:52 +00:00
- **Objectif** : binaires reconstruits à partir de zéro, projet conforme UE5.
- **Périmètre** : `.uproject` (`TargetPlatforms: ["Windows"]`, section `Plugins` explicite :
2026-09-28 23:12:38 +00:00
`ModdingExtra` , `StreetMap` , `EnhancedInput` , `McpAutomationBridge` limité à l'éditeur,
`AndroidFileServer` désactivé puis retrait de sa section dans `DefaultEngine.ini` ) ;
retrait de `Build/WindowsNoEditor` et `Build/LinuxNoEditor` ; mise de côté (déplacement vers
`D:\Game\LifePlay_Backup_5.5\L2\_purge` , pas de suppression) de `Binaries` , `Intermediate` ,
`Plugins/*/Binaries` , `Plugins/*/Intermediate` , `Saved/Cooked` , `Saved/StagedBuilds` ;
régénération des fichiers de projet ; compilation éditeur et jeu.
L0 : documentation de migration et outillage de test
Docs/Migration : architecture initiale (pipeline donnees -> GI ->
evenements/personnages), audit logiciel 5.5, plan de tests, cahier des
charges par lots bornes, journal des modifications, registre des erreurs.
Tools : CheckIntegrity (T-STAT-02..04), LogStats (compteurs normalises,
A/B 4.27/5.5). Empreinte de reference de l'arbre 4.27.
Tests : aller-retour Snapshot/Restore verifie par MD5 ; T-STAT-02, 03,
04 au vert ; T-STAT-01 : 1 package UE4 (GI.uasset), traite en L1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 23:01:52 +00:00
- **Sortie** : T-BUILD-01, T-BUILD-02, T-LOAD-04.
### L3 — Journalisation efficace
- **Objectif** : un journal qui sert au diagnostic.
- **Périmètre** :
- `Source/LifePlay` : catégorie `LogLifePlay` déclarée dans le module ; résumé de démarrage
(version du jeu et du moteur, modules activés, nombre de fichiers par type, échecs `LoadTxt` ) ;
- `ModdingExtra` : `LogLPModdingTrace` ramené en `Verbose` (activable par
`-LogCmds="LogLPModdingTrace Verbose"` ) ; échec de `LoadTxt` journalisé en `Warning` une seule
fois par fichier ;
- `DefaultEngine.ini` `[Core.Log]` : niveaux par catégorie ; plafonnement des `LogScript`
répétitifs.
- **Sortie** : T-BUILD-01, T-LOG-01 ; A/B : mêmes comptes `GetAllFilesFromFolder` qu'avant.
2026-09-28 23:12:38 +00:00
### L4 — Réimport contrôlé des correctifs, chargement stable
L0 : documentation de migration et outillage de test
Docs/Migration : architecture initiale (pipeline donnees -> GI ->
evenements/personnages), audit logiciel 5.5, plan de tests, cahier des
charges par lots bornes, journal des modifications, registre des erreurs.
Tools : CheckIntegrity (T-STAT-02..04), LogStats (compteurs normalises,
A/B 4.27/5.5). Empreinte de reference de l'arbre 4.27.
Tests : aller-retour Snapshot/Restore verifie par MD5 ; T-STAT-02, 03,
04 au vert ; T-STAT-01 : 1 package UE4 (GI.uasset), traite en L1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 23:01:52 +00:00
- **Objectif** : 0 erreur de chargement et de compilation des Blueprints, cuisson à 0 erreur.
2026-09-28 23:12:38 +00:00
- **Périmètre** : un sous-lot par correctif, dans l'ordre de `05_Correctifs_Isoles.md` §2, selon
le protocole §3 (photographie avant/après, `-DryRun` , diff, compilation, A/B si gameplay) :
`L4-CX-B01` (broches AssetRegistry de `GI` , **avec A/B d'exécution** ), `L4-CX-B02`
(`EditableTextBoxStyle`), `L4-CX-B03` (mur à échelle nulle), `L4-CX-B04` (événements orphelins),
`L4-CX-B07` (resave UE5 des dossiers de gameplay) ; contrôle StreetMap (`LPCheckStreetMap` sur
4.27 **et** 5.5, comparaison des CSV).
- **Sortie** : T-LOAD-01 à T-LOAD-05, T-STAT-01.
L0 : documentation de migration et outillage de test
Docs/Migration : architecture initiale (pipeline donnees -> GI ->
evenements/personnages), audit logiciel 5.5, plan de tests, cahier des
charges par lots bornes, journal des modifications, registre des erreurs.
Tools : CheckIntegrity (T-STAT-02..04), LogStats (compteurs normalises,
A/B 4.27/5.5). Empreinte de reference de l'arbre 4.27.
Tests : aller-retour Snapshot/Restore verifie par MD5 ; T-STAT-02, 03,
04 au vert ; T-STAT-01 : 1 package UE4 (GI.uasset), traite en L1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 23:01:52 +00:00
### L5 — Données et personnages
- **Objectif** : `generatePerson()` sans argument produit des personnages distincts et habillés.
- **Périmètre** :
1. `LPDumpFunction` dans les deux versions sur `GeneratePerson` , `determinePersonVars` ,
`ChooseNPCBodyShape` , `DefaultDistributionIfNeeded` , `SpawnDummy` , `GenerateAndApplyStrings` ,
`ReturnStatIfNeeded` ; diff archivé.
2. Instrumenter l'**écriture** des variables DSL (`AddVariable`, `SetVariable` ) : piste
`Variable.uasset` / LWC.
3. Correction minimale, puis inconnues de `01_Architecture_Initiale.md` §7.
- **Sortie** : T-RUN-01 à T-RUN-03 sur build Development, A/B avec la référence 4.27.
### L6 — Session complète → **V1**
- **Objectif** : EX-01 à EX-09 au vert.
- **Périmètre** : build Development `D:\Game\LifePlay_Build_5.5_V1` ; scénario T-RUN-04 ;
session de 30 min ; tri du registre ; étiquette `v1.0` .
- **Sortie** : tous les tests V1.
### L7+ — Lots post-V1 (un par famille)
Ordre indicatif, à réviser selon le registre :
| Lot | Famille | Périmètre |
|---|---|---|
| L7a | R-03 refait correctement | `GetSkinnedAsset()` pour les proxies ; 56 nœuds, 10 Blueprints |
| L7b | Erreurs d'exécution fréquentes | `ParseIntoArray` , `getBeautyValue` , `standIdle` , `ContactMenu` |
| L7c | Configuration | clés de nativisation, rendu 5.5 explicite (GI, ombres, RHI) |
| L7d | Visuel | AtmosphericFog → SkyAtmosphere ; reconstruction de l'éclairage |
| L7e | Effets | 4 systèmes Cascade → Niagara (si nécessaire) ; NvCloth → Chaos |
| L7f | Entrées | Enhanced Input (R-07), avec test manuel des 34 commandes |
| L7g | Packaging | build Shipping ; exclusion de `McpAutomationBridge` |
## 4. Décisions
| ID | Question | Recommandation | Statut |
|---|---|---|---|
2026-09-28 23:12:38 +00:00
| D-01 | Base de reconstruction de `GI` | **Décidé (utilisateur, 2026-09-29)** : les correctifs antérieurs sont douteux (ni suivis ni testés). On repart d'une base saine — le contenu de gameplay 4.27 — et on **isole** les correctifs pour les réimporter un par un avec un contrôle renforcé (`05_Correctifs_Isoles.md`) | acquis (L1) |
| D-02 | R-03/R-04 présents sur `AI` , `Room` et 7 widgets, annulés sur `Person` et `GI` | **Décidé (utilisateur)** : tout annuler maintenant — réalisé par le retour à la base 4.27 | acquis (L1) |
L0 : documentation de migration et outillage de test
Docs/Migration : architecture initiale (pipeline donnees -> GI ->
evenements/personnages), audit logiciel 5.5, plan de tests, cahier des
charges par lots bornes, journal des modifications, registre des erreurs.
Tools : CheckIntegrity (T-STAT-02..04), LogStats (compteurs normalises,
A/B 4.27/5.5). Empreinte de reference de l'arbre 4.27.
Tests : aller-retour Snapshot/Restore verifie par MD5 ; T-STAT-02, 03,
04 au vert ; T-STAT-01 : 1 package UE4 (GI.uasset), traite en L1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 23:01:52 +00:00
| D-03 | Mesure d'exécution | builds empaquetées Development uniquement (règle §2 du document 03) | acquis |
| D-04 | Suivi de version | dépôt git local, Blueprints de gameplay inclus, `Content/Heavy` exclu (sauvegardes par lot) | acquis (L0) |