LifePlay-Revival/Docs/Migration/etat/ST/STE/STE-ORG4a-VAL.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

85 lines
7.8 KiB
Markdown

Fiche STE-ORG4a-v — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-validator — Skills lp-validate, sk-recount, sk-protocol
# STE-ORG4a-VAL : validation statique V5 d'O4a, garde `PersonCumming` dans `AfterCumSpeed` (2026-10-14)
## 1. Fiches amont relues
- `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE\fiches\STE-ORG4a-v.md` (cette fiche), `STE-ORG4-SPEC.md` § 2.2 (l. 77-100), `STE-ORG4a-IMPL.md` (seule IMPL amont d'O4a ; en entier, dont § 5 « Points à confirmer »).
- Dump d'avant : `dumps\GI__EventGraph_P2.txt` (en-tête 6 249 nœuds).
## 2. Points à confirmer des IMPL
| Id | Point (IMPL § 5) | Verdict |
|---|---|---|
| C1 | MD5 GI = `bd0a2256b875a3ac875630e4b85d92d7` | PASS (3.a, 3.d) |
| C2 | Dump : en-tête `(6256 noeuds)` | PASS (3.b) |
| C3 | Dump : `AfterCumSpeed.then` → Branche seule ; Condition ← IsValid(PersonCumming) ; `then` → SetRate existant (`Rate` ← `CallFunction_1002`) ; `else` → SetRate à 0.25 ; les deux SetRate → `UpdateOeDisplayOnly` | PASS (3.b) |
| C4 | CompileAllBlueprints éditeur fermé : 0 erreur, 0 avertissement nouveau sur GI | PASS (3.c) : 0 `Error:` sur `/Game/`, 55 avertissements = référence ; l'avertissement par GI n'a pas été isolé nœud par nœud (voir § 6) |
| C5 | V6 (build empaqueté + `LogStats`) | reporté (V6) |
## 3. Critères rejoués (commande, sortie brute, verdict)
**a. Entrée** : `md5sum` des 7 assets + `Tools\UeState.ps1`
```
bd0a2256b875a3ac875630e4b85d92d7 *Content/BPs/GI.uasset
c5ab724101fa898457293d64059d21a9 *Content/BPs/Room.uasset
f45be57a39d13d3eb19d0b543153ab0b *Content/BPs/PC.uasset
8668a47c627f7a5254910cf0ac33b12a *Content/BPs/Person.uasset
a8705f7fbe1fde1daba0464bfc9ff9b5 *Content/UI/SexAction.uasset
cb8353603cf95849b4f778a33b4bfbd2 *Content/UI/TopRight.uasset
df2db514e0e2345c6ccac66a0787621f *Content/Heavy/New2/Furniture/fnt_ext001.uasset
processus=0 editeur=0 compilation=0 shaders=0 jeu=0 (code=0)
```
Identiques aux MD5 de la fiche (rubrique 3). **PASS**.
**b. Dump** : `RunCommandlet.ps1 -Lot STE-ORG4aV -Commandlet LPDumpFunction -Args '-BP=GI -Fn=EventGraph -Pins -Exec' -EtatDir …\ST\STE`
```
code=0 duree=66s erreurs=0 avertissements=30259
journal : D:\Game\LifePlay-master 5.8\Saved\Logs\portage\STE-ORG4aV_LPDumpFunction_20261014-090538.log
résumé : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE\STE-ORG4aV_LPDumpFunction_20261014-090538.txt
journal l. 1931 : LogLPDump: Warning: === GI :: EventGraph (6256 noeuds) ===
```
Les « avertissements » sont le canal d'affichage du dump (30 259 lignes `LogLPDump: Warning`), pas des avertissements de compilation. Lignes du premier listing (journal) :
- l. 12833-12835 : `K2Node_CustomEvent_702 'AfterCumSpeed'` ; `OutputDelegate (vide)` ; `then -> K2Node_IfThenElse_221.execute` (seule cible, coupure absente).
- l. 12836-12839 : `VariableSet_9760` : `execute -> IfThenElse_221.then` (seule) ; `then -> CallFunction_960.execute` ; `Rate -> CallFunction_1002.ReturnValue`.
- l. 29604 : `CallFunction_960 UpdateOeDisplayOnly` : `execute -> VariableSet_9760.then, VariableSet_397.then`.
- l. 29986 : `VariableGet_720 PersonCumming -> VariableGet_721.self, VariableGet_722.self, CallFunction_723.Object` (3 cibles).
- l. 32144-32147 : `CallFunction_723 KismetSystemLibrary::IsValid()` : `Object -> VariableGet_720.PersonCumming` ; `ReturnValue -> IfThenElse_221.Condition`.
- l. 32148-32152 : `IfThenElse_221` : `execute -> CustomEvent_702.then` ; `Condition -> CallFunction_723.ReturnValue` ; `then -> VariableSet_9760.execute` ; `else -> VariableSet_397.execute`.
- l. 32153-32157 : `VariableSet_397 'Rate'` : `execute -> IfThenElse_221.else` ; `then -> CallFunction_960.execute` ; `Rate = '0.25'`.
Décompte conforme à la SPEC § 2.2 : 3 nœuds (723, 221, 397), coupure absente, 6 liens (720→723 ; 702→221 ; 723→221.Condition ; 221.then→9760 ; 221.else→397 ; 397.then→960), 1 valeur (0.25).
Diff des listes de nœuds avec P2 (script du bloc-notes de session, `scratchpad\cmp.ps1`, noms de nœuds en tête de bloc, indentation 2) :
```
noeuds nouveau=6256 P2=6262
=> K2Node_CallFunction_715 => K2Node_IfThenElse_219 => K2Node_CallFunction_720 => K2Node_IfThenElse_220 (G16, 4)
=> K2Node_CallFunction_723 => K2Node_IfThenElse_221 => K2Node_VariableSet_397 (O4a, 3)
<= 13 noms de P2 seuls (K2Node_Event_0, CallFunction_88, …)
```
Les 13 « P2 seul » sont un artefact : le fichier P2 contient le listing deux fois pour ses premiers nœuds (Grep `^ K2Node_(Event_0|CallFunction_88) ` dans P2 = 4 occurrences pour 2 noms, soit un doublon chacun), donc `P2 = 6262` pour 6 249 nœuds. Après neutralisation, ajouts exacts = 4 (G16) + 3 (O4a), aucun retrait : 6 249 + 4 + 3 = 6 256. **PASS**.
**c. CompileAllBlueprints** : `RunCommandlet.ps1 -Lot STE-ORG4aV -Commandlet CompileAllBlueprints -EtatDir …\ST\STE`
```
code=3 duree=222s erreurs=25 avertissements=55
journal : D:\Game\LifePlay-master 5.8\Saved\Logs\portage\STE-ORG4aV_CompileAllBlueprints_20261014-090738.log
```
Recomptes par Grep sur le journal : `Error:` = 25 ; `Error:.*(/Game/|BPs/GI)` = 0 ; `a réussi` = 420 ; l. 2021 : `[0068,55] La compilation de GI a réussi ! [en 4 427 ms] (/Game/BPs/GI.GI)`. Les 25 lignes `Error:` portent toutes sur `CC_Shaders` (`/Engine/CC_Shaders/…` ou `Engine\Content\CC_Shaders\…\CR_FaceExpRig.uasset`, lues l. 3016-3072 et dans le résumé unique l. 3314-). Référence de la fiche : 25 lignes, 55 avertissements, 420 `a réussi`, 0 sur `/Game/` : identique. Le code 3 est celui de la référence (la fiche cite « 3 erreurs » ; le résumé du journal dit `With 17 error(s), 34 warning(s)` en comptes uniques, l. 3349). **PASS**.
**d. Fin** : MD5 des 7 assets relus après les deux commandlets : identiques à l'entrée (même sortie qu'en a.) ; `UeState.ps1` : `processus=0 editeur=0 compilation=0 shaders=0 jeu=0` (code 0) ; `ls -R Saved/Autosaves | grep -i GI_Auto` : aucune ligne (code grep 1). **PASS**.
## 4. Diff lu en entier
Sans objet au sens de `git diff <lot>-avant` : l'asset `GI.uasset` est binaire et la validation est statique par dump. Relu en entier : le listing du dump pour les 7 nœuds touchés (§ 3.b) et la comparaison complète des listes de nœuds avec P2 (7 ajouts, 0 retrait). Fichiers modifiés par cette VAL : aucun asset ; sorties de commandlets sous `Saved\Logs\portage\` et deux résumés `.txt` sous `etat\ST\STE\` (§ 7), plus ce livrable. Aucun fichier modifié par script dans les assets.
## 5. Verdict
**PASS** sur V5 (O4a) : 3 nœuds, 0 coupure résiduelle, 6 liens, 1 valeur conformes à la SPEC § 2.2 ; 6 256 nœuds ; compilation de GI réussie ; 0 `Error:` sur `/Game/` ; MD5 inchangés ; UeState 0. V6 (jeu) : reportée.
## 6. Points à confirmer par l'utilisateur
- [ ] V6 : build empaqueté + `LogStats` : plus d'`Accessed None` sur `PersonCumming` dans `AfterCumSpeed` ; `Rate` inchangé avec jouisseur, `0.25` sans jouisseur (estimé SPEC § 2.2, non mesuré ici).
- [ ] Non mesuré : l'absence d'avertissement nouveau propre à GI n'est établie que par le compte global (55 = référence), pas par un différentiel nœud par nœud.
Tours : 15 / 25
## Constats
- Le dump P2 contient en double ses premiers nœuds (résumé du journal collé au listing) : un diff de noms bruts de P2 compte 6 262 ; filtrer les doublons avant de comparer.
- Un `pwsh -Command "..."` en guillemets doubles sous Git Bash voit ses `$var` développés par Bash : utiliser un fichier `.ps1` du scratchpad.
- Fichiers écrits hors livrable : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE\STE-ORG4aV_LPDumpFunction_20261014-090538.txt`, `…\STE-ORG4aV_CompileAllBlueprints_20261014-090738.txt` ; journaux sous `Saved\Logs\portage\`.
## 7. Fichiers à commiter
A `Docs/Migration/etat/ST/STE/STE-ORG4a-VAL.md` ; A `Docs/Migration/etat/ST/STE/STE-ORG4aV_LPDumpFunction_20261014-090538.txt` ; A `Docs/Migration/etat/ST/STE/STE-ORG4aV_CompileAllBlueprints_20261014-090738.txt`.