11 KiB
Fiche U3-VAL — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-validator — Skills sk-protocol, sk-recount, debug-verification, lp-validate
U3-VAL — Validation du lot U3 (bascule UE 5.8 et compilation), porte G-U3
Date : 2026-10-08. Copie 5.8 D:\Game\LifePlay-master 5.8, branche ue5.8, tag U3-avant (arbre identique à HEAD 26f2be7).
Aucun fichier de dépôt modifié, rien supprimé, aucune compilation / éditeur / commandlet lancé. Seules sorties produites :
D:\Game\LifePlay-master 5.8\Docs\Migration\etat\U3-VAL_BuildLog_20261008-173243.txt et …-173335.txt (-FromLog, ignorés par git),
parse.ps1 (bloc-notes de session) et ce livrable.
Verdict : PASS (avec 4 réserves non bloquantes, § Écarts)
Porte G-U3 : (1) PASS, (2) PASS, (3) PASS-STATIC (journal de l'éditeur relu et comparaison rejouée ; l'ouverture elle-même est un acte de l'utilisateur, non rejouable).
Tableau des critères
| # | Critère | Livrable amont | Recompté | Commande (rejouable) | Verdict |
|---|---|---|---|---|---|
| a | git status 3 dépôts | 5.5 propre ; 5.8 : 12 changements ; addon : skills | 5.5 : sortie vide, branche main. 5.8 : 10 M + ?? Tools/Build.ps1 = 11 fichiers (la fiche annonce 12 : voir note 1). Addon lot/DC3-atelier : 4 M (lp-build SKILL.md et symptoms.md, lp-commandlets, lp-lot) + ?? lp-validate/ |
git -C <dépôt> status --short |
PASS (note 1) |
| b | Diff 5.8 lu en entier | — | 10 fichiers, +41 −23 (git diff --numstat U3-avant), aucun fichier ni ligne non annoncés. --cached vide |
git -C '…5.8' diff U3-avant |
PASS |
| b1 | R1 = spec U1 § 1.5 | D1 | Corps du diff git (35 lignes) = bloc D1 de la spec (l. 98-133), seules différences : contexte de fonction ajouté par git sur les en-têtes @@ et la clôture de bloc Markdown |
script python -I comparant les lignes (voir ci-dessous) |
PASS |
| b2 | R2 forme A = spec U1 § 2.4 | D2 | Idem (23 lignes) ; mêmes différences d'en-tête ; le FString(File.Key.ToView()) et l'#include sont identiques |
idem | PASS |
| b3 | Autres fichiers | spec du lot | .uproject : EngineAssociation 5.8, AdditionalPluginDirectories retiré, McpAutomationBridge Enabled:false. Target.cs ×2 : V7 / Unreal5_8. DefaultEngine.ini:133 CompilerVersion=14.50.35717 + commentaire. DefaultGame.ini:25 section [/Script/UnrealEd.ProjectPackagingSettings] → bUseZenStore=False. DefaultScalability.ini : 4 lignes, valeurs 24/32/48/64 inchangées. LifePlay.Build.cs : commentaire seul. RunCommandlet.ps1 : 3 [int] sur 2 chaînes + Write-Host (4 sommes, voir note 2) |
lecture du diff | PASS |
| c | Fins de ligne | CRLF/LF d'origine | CRLF purs (LF seul = 0) : DefaultEngine.ini 133, DefaultScalability.ini 127, .uproject 214, LPCoupleSimCore.cpp 485. LF purs (CRLF = 0) : DefaultGame.ini, LPDataCache.cpp, 2 Target.cs, Build.cs, RunCommandlet.ps1, Build.ps1. Originaux relus via git show U3-avant: : DefaultGame/Target/Build.cs/RunCommandlet LF, DefaultScalability CRLF 127. Le diff ne touche que les lignes utiles (numstat) |
commande python -c de lp-validate § 1 |
PASS |
| d | .uproject JSON |
— | json.load OK ; EngineAssociation 5.8 ; clé AdditionalPluginDirectories absente ; Mcp Enabled:false |
python -c "import json…" |
PASS |
| e | Recomptage build | 0 erreur, 8 C4996, 28 unités, chaîne 14.50.35717 | Journal complet (D:\Game\LifePlay_Backup_5.5\etat\U58\U3\U3-T2_Build_20261008-165632.txt) : 0 erreur ; 8 avertissements = 3+2+1+1+1 (5 API : FSlateFontInfo, GetDetailsView, ImportVersion, GetObjectsWithPackage, GetMaterialRelevance, mêmes fichier:ligne que U3-T2) ; autres lignes 0 ; 28 unités dont LPCoupleSimCore.cpp et LPDataCache.cpp ; DLL liées 6 (LifePlay, LifePlayEditorTools, LPAnimCore, ModdingExtra, StreetMapImporting, StreetMapRuntime) ; Using Visual Studio 14.50.35739 toolchain (…\MSVC\14.50.35717) ; l. 105-108 : Result: Succeeded, 375.09 s, EXIT_CODE=0. Aucune occurrence LPSandbox / LPModTools / LPAnimMeasure / McpAutomationBridge ; Binaries\Win64 sans DLL de l'addon, UnrealEditor.modules sans ces noms (grep rc=1) |
.\Tools\Build.ps1 -Lot U3-VAL -FromLog '<journal>' (voir écart 1 pour la copie du dossier U3) |
PASS |
| f | Recomptage test | 3120 / 0 / 60, Success - 0 error(s) |
U3_LPTestStringCompat_20261008-170951.log : l. 1715 et 1720 === 3120 cas : compat != herite(UE4) : 0 ; moteur != herite(UE4) : 60 === ; l. 1722 Success - 0 error(s), 1 warning(s) ; grep -c "Error:" = 0 ; 1758 lignes. Identique au journal U2 (14:31, 3120/0/60). Le second nombre n'a pas bougé |
`grep -n -E "cas : compat | Success - " ` |
| g | U3-T4, cmp_pie.py |
« 3 seulement en 5.8 » | Rejoué : signatures 5.8 : 47 ; 5.5 : 101 ; seulement en 5.8 : 3 (20 × LogAutomationTest: Error: Condition failed, 2 × Set Rate none:PersonCumming, 1 × Save Preset none:CallFunc_GetSkeletalMesh_ReturnValue). Journal 5.8 : 0 LogPluginManager: Error, 0 `Ensure condition failed |
Assertion failed | Fatal, LogExit: Exiting.l. 10158. 813 lignesError:dont 808 erreurs Blueprint/PIE ; hors PIE : 20 automation, 4InputMode:UIOnly, 1 r.MorphTarget.Mode is read only!` (déjà dans 4 journaux 5.5). Zen : journal 5.5 l. « Installed version … '5.8.13-202605190912…' » et éditeur 5.5 chargé (déclaration utilisateur) |
| h | Analyse PowerShell | 0 erreur | Parser::ParseFile : Build.ps1 et RunCommandlet.ps1 = 0 erreur en pwsh 7.6.6 et 5.1.26100.9549. Les deux fichiers sont ASCII purs (0 octet > 127, sans BOM : sûr en 5.1) |
`pwsh | powershell -NoProfile -File parse.ps1 ` |
| i | Cohérence des skills | — | Faits vérifiés : Tools/Engine.ps1 présent en 5.8 et absent en 5.5 (5.5 : RunCommandlet.ps1, BuildDebug.ps1 seulement ; défaut UE_5.5 l. 20) ; Unreal5_6 = Oldest, Latest = V7 / Unreal5_8 (TargetRules.cs 5.8 l. 177, 242, 249) ; avertissements V7 en erreur (:166-168) ; section WindowsTargetSettings (DefaultEngine.ini:126) ; D:\Game\VS2022 et LifePlay_Build_5.5_DC4 existent ; CHG-252 et 26f2be7 (message U2 – CHG-252) ; liste des 8 C4996 de lp-build § 7 = recomptage ; lp-validate identique au fichier de .claude\skills de la copie 5.5 ; renvois lp-build § 7 / § 8 corrects. Affirmations non vérifiées : voir écarts 3 et 4 |
lecture + grep, ls |
PASS avec réserves |
Comparaison R1/R2 (rejouable, depuis la copie 5.8) : extraire les lignes de la spec (U1-SPEC-CORRECTIFS.md l. 98-133 et 235-256),
les comparer à git diff U3-avant -- <fichier> après normalisation CRLF → égalité sauf en-têtes @@ (suffixe de fonction ajouté par git)
et clôtures Markdown. Garde de version : Misc/EngineVersionComparison.h inclus dans les 2 seuls fichiers qui utilisent
UE_VERSION_OLDER_THAN (grep : 2 fichiers, 1 include chacun).
Écarts numérotés (aucun bloquant)
- Copie du journal de build tronquée.
U3-T2_Build_20261008-165632.txtdu dossier U3 (9703 octets) s'arrête à[44/47] Link … StreetMapImporting.dll: niResult: Succeeded, niTotal execution time, niEXIT_CODE=0, ni la liaison deUnrealEditor-StreetMapRuntime.dll. L'original complet (10218 octets) n'existe que dansD:\Game\LifePlay_Backup_5.5\etat\U58\U3\. Le livrable U3-T2 dit « (copie ici) » et cite ce chemin Backup. Conséquence :-FromLogsur la copie donne « Fin : » vide et 5 DLL au lieu de 6 ; erreurs/avertissements/unités sont identiques (0 / 8 / 28). Le code 0 et les 375,09 s ne sont établis que par l'original. Reprise suggérée : recopier le journal complet dans le dossier U3 (par l'orchestrateur ; pas fait ici). RunCommandlet.ps1: le diff modifie 4 sommes (2 dans les chaînes, 2 dans leWrite-Hostfinal), le livrable T3b parle d'un champerreurs=vide (défaut) constaté avant la correction. La correction[int]est dans le diff mais n'a pas été rejouée (interdit : pas de commandlet). Statut : lecture seule, syntaxe OK en 5.1 et 7. Note :Build.ps1 -FromLogrend toujourscode de sortie : -1(documenté dans le script) ; le code d'origine se lit dans le journal.- Contradiction dans
lp-build§ 10 : «D:\Game\LifePlay_Backup_5.5\etatn'est qu'une sauvegarde : ne pas y écrire », alors que le journal de build complet de U3-T2 y a été écrit (le lot s'est lancé avantBuild.ps1). Pas une erreur de fait sur le code, mais une règle à rappeler ou un journal à rapatrier (voir écart 1). - Non vérifiables par lecture (incertain) :
lp-validate§ 4 « Zen mis à jour (5.6.6 → 5.8.x) » (seul 5.8.13 est établi par le journal 5.5 ; 5.5.7 est la version « InTree »),lp-build§ 7 «McpAutomationBridge: could not set UBT warning level …(5.5) »,lp-build§ 3 «Using Visual Studio 2022 14.38.33145 toolchain (…)» et « premier build complet 5.8 ≈ 25 min (UA-T5 : 1588 s) » (mesure d'un autre lot).
Note 1 (compte des fichiers) : la fiche annonce « copie 5.8 (12) ». Le git status en montre 11 (10 modifiés + Tools/Build.ps1 nouveau). La liste détaillée de la fiche donne :
.uproject, 2 Target.cs, DefaultEngine.ini, DefaultGame.ini, DefaultScalability.ini, R1, R2, Build.cs, RunCommandlet.ps1, Build.ps1 = 11, pas 12. Le « 12 » est un
décompte erroné de la fiche (aucun fichier manquant ni en trop : chaque fichier de la liste est présent et aucun autre n'apparaît). Note 2 : la fiche dit « 3 × [int] » ; le diff en
contient 4 (2 chaînes + 2 dans Write-Host), les 3 lignes modifiées comptent chacune 1 ou 2 sommes : 3 lignes, 4 sommes ; sans impact.
Ce qui n'a pas été rejoué
- Aucune compilation, aucun commandlet (
LPTestStringCompat,RunCommandlet.ps1), aucun éditeur : recomptés sur journaux existants (interdit par la fiche). - Ouverture de l'éditeur 5.8, PIE de 5 min et ouverture de l'éditeur 5.5 (Zen commun) : actes de l'utilisateur ; seuls leurs journaux ont été relus (PASS-STATIC).
- Contrôles en jeu de R1 (boîte du couple) et R2 (cache : 2e lancement
0 type(s) reecrit(s)) : non faits en U3 (U3-T1 : la voieFitBoxn'est pas exercée en jeu normal ; référence AgMakeout réservée à U4 avec l'addon). R1/R2 sont validés à la compilation et à la relecture seulement, pas en comportement. Le testLPTestStringCompatne les couvre pas. - Aucune comparaison à la copie 5.5 compilée (non demandée) ; copie 5.5 : seul l'état git (propre) a été vérifié.
- Documents DOC / commits : hors périmètre.
Suite : orchestrateur doit décider du rapatriement du journal complet (écart 1) puis passer à DOC et aux commits ; état : U3 validé, R1/R2 à rejouer en comportement en U4 / U6.