11 KiB
Fiche STE-ORG4c-v — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-validator — Skills lp-validate, sk-recount, sk-protocol, debug-verification
STE-ORG4c-VAL : VAL statique V5 d'O4c (bonus à Endsex pour chaque participant, GI:EventGraph) (2026-10-14)
Verdict : PASS-STATIC sur V5 (tout est rejoué par dump et par compilation de tous les Blueprints, aucune exécution en jeu). V6 reportée à COMMUN-8. MD5 des 7 assets identiques à l'entrée ; UeState 0 ; aucun GI_Auto*.
1. Fiches amont relues
STE-ORG4c-v.md(fiche, lue en entier) ;STE-ORG4c-SPEC.md§ 2.3, § 2.4 et § 7 V5 (le reste de la SPEC lu au passage, lignes 1-218 et 272-283) ;STE-ORG4c-Ic1.md(17 nœuds créés, table des noms réels) ;STE-ORG4c-IMPL.md(coupure, 26 liens, 7 valeurs, compilation stricte, enregistrement).- Dump d'avant :
Saved\Logs\portage\STE-ORG4aV_LPDumpFunction_20261014-090538.log(VAL O4a).
2. Points à confirmer des IMPL
| Point (source) | Résultat | Preuve |
|---|---|---|
IMPL § 5 : autosauvegarde GI_Auto1 déplacée, find Saved/Autosaves -name 'GI_Auto*' vide |
PASS | commande ci-dessous, aucune sortie ; Person_Auto1, Room_Auto1..4, TestStatic_Auto1 restent (déjà présents à l'entrée d'Ic2) |
IMPL § 5 : MD5 de GI 32fc0a97… et des 6 autres assets inchangés |
PASS | § 3 critère a et d |
IMPL § 5 : en-tête du dump (6273 noeuds) |
PASS | LogLPDump: Warning: === GI :: EventGraph (6273 noeuds) === (journal l. 1931) |
IMPL § 5 / Ic1 § 5 : CallFunction_737 = Conv_TextToString, CallFunction_878 = EqualEqual_StriStri avec B = Penis, CommutativeAssociativeBinaryOperator_111 = BooleanOR, PromotableOperator_0/1 = Less_DoubleDouble (90 / 100) |
PASS | journal l. 32181, 32185-32188, 32190, 32203-32210 |
| IMPL § 5 : comptes relatifs au dump P1 (ForEachLoop +1, GiveOrgasmReward 0 → 1, PrintString +2, IsMale +1, Genital +1, Conv +1, EqualEqual +1, BooleanOR +1, Sex_Orgasm 0 → 1, Sex_OrgasmCounts 0 → 0) | PASS | § 3 critère b (tableau) |
IMPL § 5 : diff indépendant DiffRemplacementNoeuds.py (7 nœuds communs modifiés) |
reporté | hors des commandes de la fiche ; remplacé ici par la lecture des liens des 3 nœuds existants touchés (§ 3 b) et l'écart exact de +17 noms de nœuds ; à rejouer si l'orchestrateur le veut |
IMPL § 5 : CompileAllBlueprints : 0 erreur |
PASS (à la référence près) | § 3 critère c : 0 Error: sur /Game/, 25 Error: = référence |
IMPL § 5 : LPTestStringCompat 3120 / 0 / 60 |
reporté | non demandé par la fiche (aucune compilation C++ dans ce lot) |
| IMPL § 5 : V6 en jeu (S1 à S6) | reporté (COMMUN-8) | build empaqueté et LogStats hors fiche |
3. Critères rejoués (commande → résultat brut)
a. Entrée. md5sum des 7 assets puis pwsh -NoProfile -File Tools/UeState.ps1 :
32fc0a970ab194626e8dc07df3a9633d *Content/BPs/GI.uasset
931387479e2d15f80bc4f36398907712 *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)
Tous égaux aux valeurs de la fiche (rubrique 3). Verdict : PASS.
b. Dump. .\Tools\RunCommandlet.ps1 -Lot STE-ORG4cV -Commandlet LPDumpFunction -Args '-BP=GI -Fn=EventGraph -Pins -Exec' -EtatDir …\ST\STE : code=0 duree=66s erreurs=0 avertissements=30349 (les « avertissements » sont le niveau de journal de LogLPDump, pas des erreurs). Journal : D:\Game\LifePlay-master 5.8\Saved\Logs\portage\STE-ORG4cV_LPDumpFunction_20261014-103731.log ; résumé .txt dans etat\ST\STE\ (non utilisé, tronqué).
- En-tête :
(6273 noeuds)= attendu. Verdict : PASS. - Les 17 nœuds, journal l. 32159-32248 (premier listing des nœuds neufs, lu en entier) :
MacroInstance_97(macro 'ForEachLoop'),CallFunction_729(KismetSystemLibrary::IsValid()),IfThenElse_222à225,VariableGet_782(IsMale),783(Genital),784(Sex_Orgasm),CallFunction_737,878,CommutativeAssociativeBinaryOperator_111,PromotableOperator_0/1,CallFunction_918/988(PrintString),CallFunction_992(Person_C::GiveOrgasmReward()). - Diff des noms de nœuds avec le dump O4a (en-têtes
Warning: K2Node_<type>_<n>uniques) : avant 6254, après 6271 (+17) ; les 17 noms : 0 occurrence dans le dump d'avant, 17 en-têtes dans le dump d'après. Les noms réels sont ceux d'Ic1§ table. Écart constant +2 entre le compte des en-têtes uniques (6271) et l'en-tête du dump (6273), identique à celui d'O4a (6254 / 6256) : cohérent. Verdict : PASS. - Coupure :
IfThenElse_875(l. 16494-16498) :execute←IfThenElse_98.then,Condition←CustomEvent_4245.ForceEnd,then→MacroInstance_97.Execseul,else→MacroInstance_18.exec(inchangé, confirmé aussi l. 20916).CallFunction_11423.execute←CallFunction_32955.then, IfThenElse_189.then, MacroInstance_97.Completed(l. 12843) : 3 sources, dontIfThenElse_875n'est plus. Seule la sortieCompletedde la boucle rejointCallFunction_11423(l. 32165).VariableGet_3498.SexPersons→GetArrayItem_1037.Array, MacroInstance_97.Array(l. 12817). Verdict : PASS. - Liens de la boucle (l. 32159-32248) :
Array Element→ 5 cibles (CallFunction_729.Object,VariableGet_782.self,783.self,784.self,CallFunction_992.self) ;LoopBody→IfThenElse_222.execute;Array Indexvide ;IfThenElse_222:Condition←CallFunction_729,then→223.execute,elsevide ;IsMale→OR.A,Genital→737.InText,737.ReturnValue→878.A,878.B = 'Penis',878.ReturnValue→OR.B,OR.ReturnValue→IfThenElse_223.Condition;223:then→224.execute,else→225.execute;Sex_Orgasm→PromotableOperator_0.A, _1.A;B = '90.0'/'100.0';224et225:Conditionreliées,thenvide,else→CallFunction_918/988;918.InString = 'ORG4 bonus Endsex homme',988.InString = 'ORG4 bonus Endsex femme',bPrintToScreen = 'false'×2,bPrintToLog = 'true';918.thenet988.then→992.execute(2 sources) ;992.thenvide. Les 4 impasses voulues (222.else,224.then,225.then,992.then) sont vides. Les 26 liens et les 7 valeurs de la SPEC § 2.3 sont tous retrouvés. Verdict : PASS. - Aucun
Cumde Person appelé :::Cum()= 1 avant, 1 après (l'appel existant). Aucune des 17 broches n'appellePerson::Cum. Verdict : PASS. - Comptes (
grep -c -F, mêmes motifs sur les deux journaux entiers) :
| Motif | avant (O4a) | après (O4c) | attendu | verdict |
|---|---|---|---|---|
macro 'ForEachLoop' |
79 | 80 | +1 | PASS |
GiveOrgasmReward |
0 | 1 | 0 → 1 | PASS |
PrintString |
82 | 84 | +2 | PASS |
variable 'IsMale' |
25 | 26 | +1 | PASS |
variable 'Genital' |
7 | 8 | +1 | PASS |
Conv_TextToString |
41 | 42 | +1 | PASS |
EqualEqual_StriStri |
42 | 43 | +1 | PASS |
BooleanOR |
27 | 28 | +1 | PASS |
variable 'Sex_Orgasm' |
0 | 1 | 0 → 1 | PASS |
Sex_OrgasmCounts |
0 | 0 | 0 → 0 | PASS |
::Cum() |
1 | 1 | aucun nouveau | PASS |
c. CompileAllBlueprints. .\Tools\RunCommandlet.ps1 -Lot STE-ORG4cV -Commandlet CompileAllBlueprints -EtatDir … : code=3 duree=201s erreurs=25 avertissements=55 (code 3 = erreurs de la référence, voir ci-dessous). Journal : …\Saved\Logs\portage\STE-ORG4cV_CompileAllBlueprints_20261014-103926.log.
| Mesure | obtenu | référence de la fiche |
|---|---|---|
lignes Error: |
25 | 25 |
Error: sur /Game/ |
0 | 0 |
Error: visant CC_Shaders / CR_FaceExpRig / RLExpStruct |
25 (regroupement par signature : tous /Engine/CC_Shaders/… ou la ligne de script associée à CR_FaceExpRig) |
toutes /Engine/CC_Shaders/… |
Warning: |
55 | 55 |
a réussi |
420 | 420 |
La compilation de GI a réussi |
oui, journal l. 2020 : [0060,76] La compilation de GI a réussi ! [en 3 978 ms] (/Game/BPs/GI.GI) |
oui |
Verdict : PASS (égal à la référence). Note : mon filtre direct sur la sous-chaîne /Engine/CC_Shaders ne trouve que 9 des 25 lignes, parce que 16 lignes portent le chemin disque Engine\Content\CC_Shaders\… ou le message de script sans chemin ; toutes se rattachent au même asset CR_FaceExpRig (regroupement par signature fait). |
d. Fin. md5sum des 7 assets (même commande qu'en a) : 7 valeurs identiques à l'entrée ; UeState.ps1 : processus=0 editeur=0 compilation=0 shaders=0 jeu=0 (code 0) ; find Saved/Autosaves -name 'GI_Auto*' : aucune sortie ; git status --short -- Content : M GI, PC, Person, Room, TopRight (comme à l'entrée d'Ic2, aucun fichier de plus). Verdict : PASS.
4. Diff lu en entier
Sans objet pour le dépôt : cette VAL ne produit aucun diff de fichier suivi ; le « diff » de V5 est le diff des noms de nœuds (§ 3 b, +17, 0 retrait) et la lecture des liens des 3 nœuds existants touchés (IfThenElse_875, CallFunction_11423, VariableGet_3498). Fichiers que j'ai écrits (sorties de commandlets et livrable) : Saved\Logs\portage\STE-ORG4cV_LPDumpFunction_20261014-103731.log, Saved\Logs\portage\STE-ORG4cV_CompileAllBlueprints_20261014-103926.log, leurs deux résumés .txt dans Docs\Migration\etat\ST\STE\, et ce livrable. Aucun fichier du jeu modifié (MD5 inchangés).
5. Verdict
PASS-STATIC sur V5 (O4c), aux réserves de portée près : non rejoués ici, le diff DiffRemplacementNoeuds.py, LPTestStringCompat, les non-régressions isSameAs 11 / GetVariable 53 / CallFunctionReturnBool 594 / Action:EventGraph 363 (SPEC § 7 V5.1 dernière puce, hors des commandes de la fiche), la partie O4a de V5 (liens d'O4a : non listés dans la fiche), et V6 (jeu). MD5 inchangés ; UeState 0.
6. Points à confirmer par l'utilisateur
- V6 en jeu (S1 à S6, marqueurs
ORG4 bonus Endsex homme/femme) : reportée à COMMUN-8. - Faut-il rejouer les non-régressions de la SPEC § 7 V5.1 (quatre dumps) et le diff
DiffRemplacementNoeuds.pyavant clôture ? Non prévus par la fiche. LPTestStringCompat: à rejouer seulement si une compilation C++ intervient avant COMMUN-8.
Tours : 13 / 25
Constats
- Le journal de l'IMPL disait que le diff des noms donne exactement 17 : confirmé, avec comptage par en-têtes uniques (6254 → 6271), non par l'en-tête du dump (6256 → 6273), qui garde l'écart de +2 déjà vu en O4a.
- La fiche annonce « 25
Error:toutes/Engine/CC_Shaders/…» : vrai en tant qu'asset (CR_FaceExpRig), mais seules 9 lignes portent le chemin/Engine/CC_Shaderstextuellement ; la formulation de la référence mériterait « liées àCC_Shaders». - Aucun refus du crochet ; aucune commande avec
>,<,tee,mkdirou heredoc.