23 KiB
Fiche MAPDL1-E3-VAL — Niveau N1 — Modèle prévu haiku | utilisé haiku (claude-haiku-5-5, déclaré par l'environnement ; non vérifié par claude -p) — Agent lp-validator — Skills lp-validate, sk-recount, sk-protocol, debug-verification
MAPDL1-E3-VAL : validation statique de MAPDL1-E1 (2026-10-22)
Hors gabarit : aucun. Gabarit VAL de D:\Game\LifePlay-Sandbox\Tools\claude\skills\lp-doc\gabarits.md suivi (sections 1 à 6).
Lecture seule : aucun build, aucun éditeur, aucun commandlet. Tools\Build.ps1 -FromLog non lancé : il écrit un résumé dans etat\ (lot MAPDL1-E2-VAL absent de Tools\EtatDir.ps1) ; le recomptage des journaux est fait par Grep (§ 3). LPTestStringCompat non lancé (commandlet interdit par la fiche). Seul ce livrable est écrit.
Verdict global : PASS-STATIC (aucun contrôle de la fiche E1 en échec ; points de jeu reportés ; réserves au § 5 et au § 6).
Heures des relevés : 2026-10-22, dernier relevé à 16:30:47 (horloge de la session). L'arbre est vivant : d'autres lots écrivent pendant la validation (§ 7).
1. Fiches amont relues
D:\Game\LifePlay-master 5.8\Docs\Migration\etat\REL\MAPDL1\MAPDL1-E1-FICHE.md: lue en entier....\MAPDL1\MAPDL1-E1-IMPL.md: lue en entier (246 lignes, § 1 à 6 et Constats). Seule IMPL du lot à ce jour....\MAPDL1\MAPDL1-E2-BUILD.md: lue en entier (gabarit BUILD suivi : § 1 à 7 et écarts)....\MAPDL1\MAPDL1-SPEC-05-v3.md: lue en entier (§ 1 : JSON format 2 ; § 2 à 7 pour le contexte)....\MAPDL1\MAPDL1-SPEC-05.md: lue l. 1-140 (§ 1 à 6 ; § 2 : C1 à C5)....\MAPDL1\MAPDL1-SPEC-05-v2.md: Grep du texte de licence (l. 99) et de S5-5 (l. 133).- Instantané :
D:\Game\LifePlay_Backup_5.5\MAPDL1-E1\manifest.csv(lu en entier). - Non relus, hors périmètre de cette VAL :
MAPDL1-E0-INV.md,MAPDL1-L1-CART-02.md,MAPDL1-L4-CART-01.md(références de la fiche),MAPDL1-E4-TESTS.md(présent à 16:28, non lu).
2. Points à confirmer des IMPL : un par ligne
| Point (E1-IMPL § 5) | Verdict | Preuve |
|---|---|---|
V-1 alias TFunction et fonction MODDINGEXTRA_API hors classe, acceptés par UHT |
PASS (compilation) | Grep du journal éditeur Saved\Logs\portage\MAPDL1-E2_Build_20261022-161830.log : aucune ligne error ; [1/14] Compile [x64] ModdingExtraBPLibrary.cpp (l. 45). Journal jeu : [8/11] Compile [x64] ModdingExtraBPLibrary.cpp. |
V-2 édition de liens LifePlay vers ModdingExtraSetFileListFilter |
PASS (édition de liens) ; chargement à l'exécution reporté (E4) | Journal jeu l. 32 : Création de la bibliothèque ...\Binaries\Win64\LifePlay.lib ; E2-BUILD § 3 : UnrealEditor-ModdingExtra.dll liée côté éditeur. |
V-3 compilation de LPCityMapsSubsystem.cpp (API listées) |
PASS (compilation) | Journal éditeur l. 51 [6/14] Compile [x64] LPCityMapsSubsystem.cpp ; journal jeu l. 23 [2/11] ... ; aucune ligne d'erreur dans les deux (§ 3.8). |
| V-4 zéro avertissement nouveau ; pas de collision d'unity | PASS | 0 avertissement compilateur dans les deux journaux. Les 20 lignes Warning: Plugin 'HyperAIStudio' (journal éditeur l. 9-28) sont les connues de lp-build § 7. Journal éditeur l. 37 : Excluded from LifePlay unity file: ... LPCityMapsSubsystem.cpp (compilé hors unity). |
V-5 journal au premier menu (CARTES, ETAT, LISTE, MENU tri) |
reporté (E4, jeu) | Non vérifiable statiquement. Chaînes présentes : LPCityMapsSubsystem.cpp l. 414, 467, 513, 675. |
V-6 Construct relancé après retrait, pas de clignotement |
reporté (E4, jeu) | Non vérifiable statiquement (Blueprint City). Voir O2 (ticker de 0 s). |
V-7 champ StreetMapName* lisible ; City, InstalledText, CityButton trouvés |
reporté (E4, jeu) | Statique : ReadRowCity l. 161-202 (suffixe StreetMapName, repli FStrProperty) ; FindRowWidget l. 205-216. |
| V-8 Tokyo installé, gabarit « Not available », index d'essai « Download » | reporté (E4, jeu) | Voir O1 (entrées des villes servies par un pack non ajoutées). |
V-9 clic téléchargeable : pas de MoveCity, ouverture du navigateur |
reporté (E4, jeu) | Statique : ULPCityRowClick::OnClicked l. 235-241 ; OpenCityPage l. 751-768 (LaunchURL l. 767). Le blocage de MoveCity relève du Blueprint. |
| V-10 bandeau 10 s, une fois par ville, Z 1100, souris libre | reporté (E4, jeu) | Statique : BannerSeconds l. 53, BannerZOrder l. 54, BannerShown l. 794-801, HitTestInvisible l. 813. |
V-11 Content/Data/LPCityMaps.json dans le pak |
reporté (cuisson) | Statique : DefaultGame.ini ligne ajoutée (§ 3.4). |
V-12 premier ResolveCityPath avant le montage des packs |
reporté (E4, jeu) | Non vérifiable statiquement (un seul appelant Blueprint, non relu). |
V-13 dépendance de commit avec STM1 (OnCityMapResolved, ResolveCityPath) |
PASS statique ; ordre de commit reporté au gardien | Grep LPAssetRegistryHelpers.h : l. 70 static FString ResolveCityPath(...), l. 73 static FLPCityMapResolved& OnCityMapResolved(). Ces fichiers restent M (STM1). |
E-1 ticker FTSTicker de 0 s (et non OnWorldPostActorTick) |
conforme à la fiche § 2.3 ; clignotement reporté (E4) | Voir O2. |
| C-1 à C-15 (choix de l'IMPL) | revus au § 4 | C-14 est un écart mineur (espaces de fin de ligne). |
3. Critères rejoués (commande → résultat)
3.1 Périmètre (contrôle 1) : OK
Commande : git -C "D:\Game\LifePlay-master 5.8" status --short (lecture seule). Relevé à 16:2x : 168 entrées (19 M, 149 ??, 0 autre). Le même décompte passé à 16:2x était de 167 (§ 7).
Fichiers E1 présents :
M Config/DefaultGame.ini
M Plugins/ModdingExtra/Source/ModdingExtra/Private/ModdingExtraBPLibrary.cpp
M Plugins/ModdingExtra/Source/ModdingExtra/Public/ModdingExtraBPLibrary.h
M Source/LifePlay/LifePlay.Build.cs
?? Content/Data/ (contient uniquement LPCityMaps.json)
?? Source/LifePlay/LPCityMapsSubsystem.cpp
?? Source/LifePlay/LPCityMapsSubsystem.h
Tools/IndexCartes.ps1 n'apparaît pas : git check-ignore -v Tools/IndexCartes.ps1 → .gitignore:91:/Tools/ Tools/IndexCartes.ps1 (hors git, attendu).
Écart de forme, sans gravité : les trois fichiers neufs sont en ?? (non indexés) et non en A. Rien n'a été indexé ; c'est attendu avant le ticket du gardien.
Autres fichiers, listés sans jugement (lots STM1, BOSS, REL2, LOC1, AG, ST, REPO, MAPDL1 docs, commandlets LifePlayEditorTools) :
Mhors E1 (15) :Docs/Migration/etat/BOSS/BOSS-ETAT.md,BOSS/BOSS-JOURNAL.md,REL/STM1/STM1-JOURNAL-BROUILLON.md,REL/STM1/STM1-TACHES.md,REPO/FILE.md,LifePlay.uproject,Source/LifePlay/LPAssetRegistryHelpers.cppet.h,LPCityWaterMask.h,LPCityWaterSubsystem.cppet.h,Source/LifePlayEditorTools/LPBuildCityWaterCommandlet.cppet.h,LPImportCityOSMCommandlet.cpp,LifePlayEditorTools.Build.cs.??hors E1 : 146 entrées, dont 116 sousDocs/Migration/etat/(STM1, BOSS, REL2, LOC1, AG, ST, REPO, MAPDL1 docs), 29 sousSource/(STM1 et commandlets),Docs/LP-PROJET.ini.
3.2 Blueprints (contrôle 2) : OK
git -C "..." status --short -- Content/UI Content/BPs: sortie vide.Get-Item:Content\UI\City.uasset08/10/2026 20:28:38 ;CityMenu.uasset08/10/2026 20:28:38 ;Content\BPs\GI.uasset14/10/2026 10:33:14.- Balayage de
Content/UIetContent/BPs: 312 fichiers, 0 modifié après 2026-10-22 15:55.
3.3 Fichiers STM1 (contrôle 3) : OK (réserve documentaire)
Commande : Get-FileHash -Algorithm MD5 sur les 9 fichiers. Sortie (extrait) :
CC146CC6979ED4321413130DCD1B4417 LPCityWaterSubsystem.cpp
4A6C67116A76BFFB9D8D04E38A6C9AC5 LPCityWaterSubsystem.h
E5027FD7FD2B827831D52E8CE5727A36 LPCityWaterMask.h
F378333812EFD901C72F252131F28E47 LPCityNamesSubsystem.cpp
1063948323E856860350F143296D8611 LPCityNamesSubsystem.h
01CC49D85CA415B11A04D19E8EA23FBB LPCityHouses.h
B4FF95AE838F241DBBAB23C7DDAB4D5A LPCityLandmarks.h
7B44F5FA7A1CB33EA8E96C9ECC1C7BDE LPAssetRegistryHelpers.cpp
8E3B725A609CC8E5E23D2F0CEC309C1A LPAssetRegistryHelpers.h
Les 9 valeurs sont identiques à celles de MAPDL1-E1-IMPL.md § Constats 2 (9/9).
Réserve : le tableau « avant » de l'IMPL § 1 ne couvre que les 8 fichiers E1, pas les STM1. Pas de référence « avant » indépendante. Preuve indirecte : Get-Item donne des dates d'écriture 21/10/2026 entre 13:29 et 19:23, soit avant l'instantané E1 (22/10 15:56). E1 n'a donc pas écrit ces fichiers.
3.4 Config/DefaultGame.ini (contrôle 4) : OK
git diff -- Config/DefaultGame.ini : un seul ajout, après le contexte +DirectoriesToNeverCook=..., +DirectoriesToAlwaysStageAsNonUFS=(Path="Modules") :
+DirectoriesToAlwaysStageAsUFS=(Path="Data")
Hunk @@ -72,6 +72,7 @@ : 1 insertion, 0 suppression.
3.5 Diff ModdingExtra (contrôle 5) : OK, écart mineur C-14
Lu en entier, par hunks.
.h: hunk@@ -49,3 +49,8 @@, +5 hors de la classe : commentaire, aliasFModdingExtraFileListFilter(TFunction), déclarationMODDINGEXTRA_API void ModdingExtraSetFileListFilter(...). Rien d'autre..cpp, +19 −2, trois hunks :@@ -28,6 +28,15 @@:static FModdingExtraFileListFilter GLPFileListFilter;et la définition deModdingExtraSetFileListFilter(l. 31-38).@@ -154,7 +163,9 @@:const FString ExtRecu = Ext;(l. 167), placé avant la transformation deExten*.uasset(l. 178-185). La ligne vide à espaces (l. 166 d'origine) est remplacée.@@ -221,7 +232,13 @@: appelif (GLPFileListFilter) { GLPFileListFilter(RootFolderFullPath, ExtRecu, Files); }(l. 236-239), juste avantreturn true;(l. 241). La lignereturn true;avec espaces de fin est normalisée.
- Écart C-14 : deux lignes portant des espaces de fin sont modifiées. Ce n'est ni de la logique ni un crochet ; la fiche § 2.1 dit « Rien d'autre ne change ». À signaler (§ 6).
- Aucune autre modification de logique. Le plugin ne dépend toujours pas du jeu.
3.6 Fiche § 2.2 à 2.4 (contrôle 6) : OK
Lecture de LPCityMapsSubsystem.cpp (842 l.) et .h (160 l.), en entier.
| Exigence | Preuve | Verdict |
|---|---|---|
Filtre limité à Heavy/StreetMap (casse ignorée, \ → /) et extension uasset |
FilterFileList l. 494-505 : NormalizeFolder l. 145-157 ; RemoveFromStart("."), comparaison uasset |
OK |
Retire seulement les états non Installed |
l. 507-513 : RemoveAll(GetCityState(...) != Installed). Journal l. 513. |
OK |
| Installé : ni texte ni clic modifiés | DecorateRows l. 692-696 : continue si Installed. SortRows ne réécrit que l'ordre (l. 657-670). |
OK (voir O2 pour la réinsertion) |
GI.Cities non écrit |
Grep Cities (sortie) : seulement commentaires, BaseCities, ListName, variables locales Cities (l. 363-366) ; aucune écriture sur GameInstance |
OK |
Ordre de lecture : Saved puis Content/Data |
l. 306-309 (Candidates), premier fichier présent retenu l. 310-317 |
OK |
| URL non HTTPS écartées | IsHttps l. 107-110 ; filtrage l. 393-405 ; page non HTTPS vidée l. 406-410 |
OK |
| Bandeau seulement si demandé == résolu | HandleCityMapResolved l. 770-804 : Resolved.Equals(Requested) l. 789 ; chemin /Game/Heavy/StreetMap/V.V seulement l. 772-786 ; Installed exclu l. 793-795 |
OK |
Ticker et filtre retirés dans Deinitialize |
l. 264-287 : RemoveTicker l. 266-270 ; OnCityMapResolved().Remove l. 271-275 ; filtre vidé l. 276-281 (si propriétaire) |
OK |
3.7 Fins de ligne (contrôle 7) : OK
Commande : git -C "..." ls-files --eol -- Config/DefaultGame.ini <3 autres M> :
i/lf w/lf attr/-text Config/DefaultGame.ini
i/lf w/lf attr/-text Plugins/ModdingExtra/Source/ModdingExtra/Private/ModdingExtraBPLibrary.cpp
i/lf w/lf attr/-text Plugins/ModdingExtra/Source/ModdingExtra/Public/ModdingExtraBPLibrary.h
i/lf w/lf attr/-text Source/LifePlay/LifePlay.Build.cs
Fichiers neufs, Tools\FileCheck.ps1 -Path @(...) (lecture d'octets) :
LF 0 160 0 - 8D48BB187947025902FF1EC266C94256 Source\LifePlay\LPCityMapsSubsystem.h
LF 0 842 0 - 79C7BBAF4FD72DA869A7AD0849D922F9 Source\LifePlay\LPCityMapsSubsystem.cpp
LF 0 15 0 - 308B46C40A43BC4180B66E46A07018DE Content\Data\LPCityMaps.json
LF 0 194 0 - 30D9DFADB328AA71CCCE4610DEE6EDBF Tools\IndexCartes.ps1
fichiers=4 LF=4 alertes=0 introuvables=0 (exit=0)
CR = 0 et pas de BOM sur les 4 fichiers neufs. Ce sont les tailles et les MD5 de l'IMPL § 1 « après » (8/8 identiques).
3.8 JSON livré (contrôle 8) : OK
Commande : Get-Content -Raw ... | Test-Json puis lecture des champs.
Test-Json: True
format=2
base=CentralLondon,00BathCC
villes=0
licences=osm,lifeplay_ancienne
osm.titre=Map data (c) OpenStreetMap contributors, ODbL 1.0
osm.fichier=Licenses/OpenStreetMap_Geodata_License.txt
lpa.fichier=Licenses/Vinfamy_License.txt
v2 longueur=333 ; json longueur=333
identique=True
Le titre lifeplay_ancienne est comparé à MAPDL1-SPEC-05-v2.md l. 99 (texte entre « et ») : identique, sensible à la casse, 333 caractères. S5-5 (SPEC v2 l. 133) reste « à valider par l'utilisateur » (§ 6).
Compilation de la syntaxe du JSON : 0 erreur (Test-Json).
3.9 Tools\IndexCartes.ps1 (contrôle 9) : OK
Commande : [System.Management.Automation.Language.Parser]::ParseFile(...) puis compte des octets :
erreurs de syntaxe: 0
octets>127: 0 ; CR: 0 ; taille: 10734
Essai à blanc : pwsh -NoProfile -File "...\Tools\IndexCartes.ps1" -Villes Manila -Hebergeur Forgejo -Owner exemple -Repo exemple -Tag t -ABlanc ; exit=$?. Sortie (extrait) :
packs retenus : 1 ; ecartes : 0 ; archives : D:\Game\LifePlay_Publication\Mods ; hebergeur : Forgejo
"ville": "Manila", "version": "1.0.1", "jeu_min": "2026.10.2.2a", "jeu_max": "2026.12.99",
"octets": 22075120,
"sha256": "2ba28c4edfb98e7b0265be719e3a42489f0fd79b17268c6ee9f3fbe2dc08b4cf",
"urls": [ "https://forgejo.edujiro5972.fr/exemple/exemple/releases/download/t/lpm_city_manila-1.0.1-for-LifePlay-2026.10.2.2a.zip" ]
a blanc : rien n'a ete ecrit
exit=0
SHA-256 de Manila = 2BA28C4E…B4CF en minuscules (2ba28c4edfb98e7b0265be719e3a42489f0fd79b17268c6ee9f3fbe2dc08b4cf). Critère atteint.
Non relu : PRODUCTION.csv (SPEC v1 § 2 C5 le cite comme source ; la fiche § 2.7 part des archives). La valeur octets 22075120 n'est donc pas recoupée par ce fichier.
3.10 Recomptage des journaux de build (sk-recount, sans recompiler)
Grep sur les deux journaux précis (pas sur le dossier portage, qui compte 704 fichiers) :
- Éditeur
MAPDL1-E2_Build_20261022-161830.log: 33 ligneserror|warning|LPCityMapsSubsystem|ModdingExtraBPLibrary|Using Visual Studio|biblioth, dont 20Warning: Plugin 'HyperAIStudio', 0 ligneerror, 0 avertissement compilateur, 1Using Visual Studio 14.50.35739 toolchain (...MSVC\14.50.35717). - Jeu
MAPDL1-E2_Build_20261022-162140.log: 0 ligneerrorniWarning, 1 ligneUsing Visual Studioidentique,[2/11] Compile ... LPCityMapsSubsystem.cpp,[8/11] Compile ... ModdingExtraBPLibrary.cpp, création deLifePlay.lib.
Concordance avec E2-BUILD § 4 : 0 erreur et 0 avertissement nouveau, confirmé.
Note : le total « 14 » (éditeur) et « 11 » (jeu) des étapes du journal diffère des « 9 unités » du résumé E2 ; le décompte des étapes [n/N] n'est pas celui des unités. Non résolu, sans incidence sur le verdict.
3.11 Contrôles hors fiche relevés
PubCheck.ps1sur 11 fichiers (IMPL, E2, FICHE, les 4 fichiers E1, les 3 neufs,IndexCartes.ps1) :PubCheck : 0 constat(s), exit 0.- Chemins
C:\Users: aucun dans ce livrable.
4. Diff lu en entier (fichiers, compte)
| Fichier | État | Compte | Lu |
|---|---|---|---|
Plugins/.../Public/ModdingExtraBPLibrary.h |
M | +5 −0 | en entier |
Plugins/.../Private/ModdingExtraBPLibrary.cpp |
M | +19 −2 (3 hunks) | en entier |
Source/LifePlay/LifePlay.Build.cs |
M | +4 −0 (ModdingExtra, Json, commentaire) |
en entier |
Config/DefaultGame.ini |
M | +1 −0 | en entier |
Source/LifePlay/LPCityMapsSubsystem.h |
?? (neuf) | 160 l. | en entier |
Source/LifePlay/LPCityMapsSubsystem.cpp |
?? (neuf) | 842 l. | en entier |
Content/Data/LPCityMaps.json |
?? (neuf) | 15 l. | en entier |
Tools/IndexCartes.ps1 |
ignoré (hors git) | 194 l. | en entier |
Total des modifications E1 suivies : 4 fichiers, +29 −2 (IMPL : « 29 insertions, 2 deletions », cohérent avec les hunks). Total des fichiers neufs : 4 (3 dans git, 1 hors git).
Aucun Blueprint modifié (§ 3.2). Aucune modification de STM1 (§ 3.3). Aucun fichier de Mods\ touché (contrôle implicite : git status ne montre rien sous Mods/).
5. Verdict et contrôles de la fiche
| # | Contrôle (fiche § 3, lp-validate) | Verdict | Motif |
|---|---|---|---|
| 1 | Périmètre | OK | 4 M E1 et 3 neufs E1 + Tools hors git, exactement comme annoncé. |
| 2 | Aucun Blueprint modifié | OK | git status vide sous Content/UI et Content/BPs, 0 fichier écrit après 15:55 sur 312. |
| 3 | Fichiers STM1 inchangés | OK (réserve) | 9/9 MD5 identiques au relevé de l'IMPL ; référence « avant » absente du tableau IMPL § 1 ; dates 21/10 antérieures. |
| 4 | DefaultGame.ini : une ligne | OK | 1 insertion, +DirectoriesToAlwaysStageAsUFS=(Path="Data"). |
| 5 | ModdingExtra : seulement le crochet | OK, écart mineur | Crochet conforme ; C-14 : 2 lignes à espaces de fin normalisées (non logique). |
| 6 | Fiche § 2.2 à 2.4 | OK | Huit exigences vérifiées ligne à ligne (§ 3.6). |
| 7 | Fins de ligne | OK | M : i/lf w/lf ×4 ; neufs : 0 CR, pas de BOM, LF ×4. |
| 8 | JSON livré | OK | Test-Json True ; format 2 ; base ; 2 licences ; villes vide ; titre identique au v2 § 4. |
| 9 | IndexCartes.ps1 | OK | 0 erreur de syntaxe ; 0 octet > 127 ; LF ; essai code 0 ; SHA-256 Manila en minuscules. |
Verdict global : PASS-STATIC.
Recomptage (sk-recount) :
| Élément | Valeur du livrable (IMPL) | Valeur recomptée | Méthode | Verdict |
|---|---|---|---|---|
| Fichiers M E1 | 4 | 4 | git status --short, préfixe M |
confirmé |
| Fichiers neufs E1 | 3 (+ Tools) | 3 ?? + Tools ignoré |
git status, check-ignore |
confirmé (??, pas A) |
| Lignes .h / .cpp / .cs / .ini | +5 / +19 −2 / +4 / +1 | +5 / +19 −2 / +4 / +1 | lecture des hunks | confirmé |
| Lignes neufs (h, cpp, json, ps1) | 160 / 842 / 15 / 194 | 160 / 842 / 15 / 194 | FileCheck.ps1 |
confirmé |
| MD5 après, 8 fichiers E1 | 8 valeurs | 8 valeurs identiques | FileCheck.ps1 (même outil : pas un recomptage indépendant) |
confirmé |
| MD5 STM1 | 9 valeurs (IMPL Constats 2) | 9 identiques | Get-FileHash |
confirmé (après) ; avant non vérifiable |
| MD5 avant, 4 M E1 | IMPL § 1 | = manifest.csv |
lecture du manifeste | confirmé |
| Erreurs de compilation | 0 | 0 | Grep des deux journaux | confirmé |
| Avertissements nouveaux | 0 (20 connus) | 0 compilateur, 20 UBT connus | Grep | confirmé |
| Blueprints modifiés | 0 | 0 | git status, Get-ChildItem |
confirmé |
git status total |
non fourni | 168 (16:2x), 167 (16:1x) | git status --short |
écart de temps, voir § 7 |
Témoin en jeu : à créer (cas à demander à l'orchestrateur). MAPDL1-E4-TESTS.md existe (16:28, non relu) : peut être le lieu du cas.
6. Points à confirmer par l'utilisateur (cases)
- E-1 : ticker
FTSTickerde 0 s (fiche § 2.3, retenu) plutôt queOnWorldPostActorTick(SPEC v1 § 2 C3). À accepter ? - O1 : les entrées des villes servies par un pack ne sont pas ajoutées à la liste (SPEC v1 § 2 C2 dit « ajoute » ; la fiche dit seulement « retire »). À confirmer en jeu (V-8).
- C-14 : deux lignes à espaces de fin normalisées dans
ModdingExtraBPLibrary.cpp. À accepter ? - O5 : nom du paramètre d'hébergeur. SPEC v3 § 1 écrit
-Principal; la fiche et l'IMPL écrivent-Hebergeuret-Modele. Lequel garder ? Et-Miroiravec{tag}(exemple de SPEC v3 § 1) : le script ne remplace que{zip},{tag}reste littéral dans l'URL. - V-13 : ordre de commit E1 et STM1 (
LPAssetRegistryHelpers.*encore en M). Décision du gardien. - S5-5 : texte de licence des anciennes cartes (SPEC v2 § 4) validé ? Il est repris dans le JSON livré.
- Écarts E2 (hors E1, relevés par BUILD) : (a) jeu compilé sans
-NoUBA(lp-build§ 2, U6) ; (b) résumés rangés dansetat\MAPDL1-E2\au lieu deetat\REL\MAPDL1\(EtatDir.ps1ne connaît pas le lot). À trancher par l'orchestrateur.
7. Constats
- Fichiers écrits : ce livrable seul,
D:\Game\LifePlay-master 5.8\Docs\Migration\etat\REL\MAPDL1\MAPDL1-E3-VAL.md. Aucun fichier du projet modifié. Fichiers à commiter : aucun (la VAL ne commite pas). - Mesuré (établi) : toutes les sorties citées ci-dessus, relevées le 2026-10-22, dernier relevé 16:30:47.
- Arbre vivant : entre le premier et le dernier relevé,
git statuspasse de 167 à 168 entrées (??148 à 149). Entrée nouvelle non identifiée ; les fichiers modifiés depuis 16:00 (recent:Docs/.../BOSS-JOURNAL.md,Source/LifePlayEditorTools/LPBuildCityLandmarksCommandlet.cppà 16:30:18,PROD1/...,MAPDL1-E4-TESTS.mdà 16:28) relèvent d'autres lots. Aucun fichier E1 n'a bougé : MD5 après relevés en fin de validation = relevés de l'IMPL. - Estimé : cette VAL ne compte pas les fichiers modifiés par d'autres lots pendant la validation, faute de fiche dédiée.
- Non mesuré : chargement dans le jeu, cuisson, comportement du menu, bandeau, clic,
LPTestStringCompat(interdit ici),PRODUCTION.csv,MAPDL1-E0-INV.md.
Observations pour l'orchestrateur (non bloquantes, sources citées) :
- O1 (
MAPDL1-SPEC-05.md§ 2 C2, « ajoute celles des villes servies par un pack ») : la fiche et l'IMPL ne font que retirer. Risque : une ville installée par pack sans gabarit dansContent\Heavy\StreetMapn'apparaîtrait pas. E0 indique que les 280 villes ont un gabarit, donc risque faible ; V-8 en jeu tranche. - O2 (SPEC v1 C3,
OnWorldPostActorTick;lp-city§ 3, R12-14) : le code suit la fiche (FTSTicker). La réinsertionClearChildren/AddChild(l. 660-669) touche aussi les lignesInstalled: texte et clic non modifiés par le code, mais le widget est retiré puis réinséré (V-6). - O3 (SPEC v1 C1 :
Config/LPCityMaps.json; C5 :PRODUCTION.csv) : la fiche a choisiContent/Data/LPCityMaps.jsonet les archives. La fiche prime ; à noter dans la SPEC. - O4 (SPEC v1 C1 :
GetDownloadInfo,ManifestUrlfacultatif D8) : remplacés parGetDownloadBytes/GetDownloadUrls(fiche § 2.2) ;ManifestUrlnon implémenté (hors fiche). - O5 (SPEC v3 § 1) : voir § 6.
- O6 (
IndexCartes.ps1l. 183) : la sortie passe par-replace "rn", donc LF ; OK.
À verser : lp-validate § 2 — Tools\Build.ps1 -FromLog écrit un résumé dans etat\ ; pour un lot absent de Tools\EtatDir.ps1 (MAPDL1-E2-VAL), en VAL recompter par Grep sur le journal, sans lancer le script.
Tours : 9 / 25