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

8.4 KiB
Raw Blame History

Fiche STE-H3e-A2 — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-validator — Skills lp-validate, sk-recount, sk-protocol

STE-H3d-VALJEU : preuve en jeu de STE-H3d, critères 3 et 4 de la SPEC § 7 (2026-10-13)

Hors gabarit : VAL de jeu sur journal ; sections 1 à 6 du gabarit VAL, lecture seule, aucun diff à lire.

Journaux : H3e-J = D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE\STE-H3e-J\LifePlay.log (MD5 relu 3133fd1eae1d63ca768724deceba7c77, 2 564 693 o : conforme à la fiche) ; J6 = D:\Game\LifePlay_Build_5.8_STE-J6_Development\Windows\LifePlay\Saved\Logs\LifePlay.log (1 520 570 o). Outil : Grep (ripgrep), mode count ou content.

1. Fiches amont relues

STE-H3e-A2.md (fiche), STE-H3d-SPEC.md (§ 1.1, 1.2, 4, 7, Décisions), STE-H3d-VAL.md : non relu en entier (la fiche en reprend le résultat « critères 1-2 PASS, 3-5 reportés ici » ; incertain). Aucune IMPL relue (hors fiche).

2. Points à confirmer des IMPL amont

Point Statut
STE-H3d-VAL critère 3 (journal de jeu) traité ici : FAIL partiel (E1), voir § 3
STE-H3d-VAL critère 4 (LogStats) traité ici : sans famille propre à G13 (réserves E2), voir § 3
STE-H3d-VAL critère 5 (animal de compagnie) reporté : non mesurable, aucune scène avec compagnon dans H3e-J

3. Critères rejoués (commande → sortie brute → verdict)

# Commande (Grep) H3e-J J6 Attendu Verdict
3a count Person_24_.*of length 0 2 (l. 16827, 16841) 6 ≤ 1 FAIL (E1)
3a' lignes F2 suivies d'une pile isCreatureType 0 (les 2 piles ont GI_C.isSameAs <--- en tête, l. 16829 et 16843) 5 0 PASS
3b multiligne of length 0[^\n]*\r?\n[^\n]*called by[^\n]*\r?\n[^\n]*property Actor in not an UClass « No matches found » (0) 5 0 PASS ; motif non adapté : la pile Script call stack s'intercale, mais le contrôle plus fort 3c/3d couvre ce cas
3c count isCreatureType:64X « No matches found » (0) 5 0 PASS
3d content `isCreatureType property Actor` « No matches found » (0) — 0
3e count CHECKING: .*pet/(horse/)?meet_new_person 6 (l. 3676, 3892, 4684, 8060, 13101, 13428) 5 ≥ 1 PASS (dénominateur 6)
3f count index SPAWN 62 — > 0 PASS
3g count hours by [1-9] 18 — ≥ 1 PASS
3h count \[AI\] \d+ moves to 18 — ≥ 1 PASS
3i count property Per in 0 0 0 PASS
3j count CallFunc_Array_Get_Item_41 0 — 0 PASS
3k count `fatal Unhandled Critical Assertion` 13
3l information : count LogScript: Warning: Accessed None 13 9 ≈ 4 information, écart E2

Correction sur 3j/3k : la commande 3k a rendu 13 pour H3e-J ; le motif fatal|Unhandled|Critical|Assertion est insensible à la casse ? Non : Grep est sensible à la casse. Cette ligne est un compte d'une autre requête que j'ai lancée dans l'ordre des sorties ; je la recopie telle que reçue : l'appel fatal|... a rendu « No matches found » (0) et l'appel LogScript: Warning: Accessed None a rendu 13. L'ordre des sorties du lot parallèle est : 62 (SPAWN), 18, 18, 0 (property Per), 0 (Get_Item_41), 0 (fatal…), 13 (Accessed None). Donc 3k = 0 → PASS ; 3l = 13. (Le tableau ci-dessus place par erreur 13 en 3k ; E3 annule cette ligne.)

Cause des 2 lignes de 3a (lues, l. 16824-16851)

Chaque F2 suit un clic carte [StreetMap_Static] 310 ACtualLEftMouse + HideCursorDuringCapture Changed, True -> False (l. 16825-16826 et 16839-16840), 208 ms et 133 ms avant la F2 ; pile : GI_C.isSameAs ← CallFunctionReturnBool ← CheckEachCondition ← CheckConditionsOther ← CheckConditionsWho ← Action_C.ExecuteUbergraph_Action ← Action_C.CheckInteractionWho. C'est la famille « silencieuse » de la SPEC § 1.2 (J6:8892, clic carte), désormais attribuée par pile à la commande isSameAs de CallFunctionReturnBool (autre commande que isCreatureType, non traitée par G13), évaluée par CheckConditionsWho. Établi : pile lue. Aucun Accessed None associé (voir 3l : aucun à ces horodatages).

Critère 4 — LogStats

Commande : & .\Tools\LogStats.ps1 -Compare <H3e-J>,<J6> (depuis D:\Game\LifePlay-master 5.8, via powershell -NoProfile -Command; l'appel -File échoue sur $PSScriptRoot vide, message : Split-Path : Impossible de lier l'argument au paramètre « Path »… ligne 36). Sortie brute (A = H3e-J, B = J6) :

Lignes 17074 9937 | Personnages 62 36 | ActeursDistincts 6 6 | AccessedNone 16 12 | AccessedNoneMaillage 8 4
NoneMaillageParPerso 0,13 0,11 | NoSkeletalMesh 6966 3343 | IndexHorsBornes 145 76 | LoadTxtOK 0 0 | LoadTxtEchec 1 3
LogClassError 0 0 | FailedToLoad 0 0 | Fatal 0 0 | Erreurs 8 5 | Avertissements 7528 3721 | LogLifePlay 389 341
LogLPAnimMeasure 0 0 | TraceModding 15 18 ; Fichiers enumeres qui different : aucun

-Compare ne rend que des mesures, pas de familles. Familles relevées par Grep (Error: et Accessed None, deux journaux) :

  • Erreurs : mêmes 2 familles dans les deux journaux (LogPlayerController: Error: InputMode:UIOnly… ×8 vs ×5 ; Error: r.MorphTarget.Mode is read only! ×1 vs ×1) : aucune nouvelle.
  • Accessed None (13 vs 9) : communes (CharGen:PopulateGenitalSlidersDaz, CityMenu, SavePreset, getFirstDick) ; propres à H3e-J : K2Node_CustomEvent_Person ×2 + assign variable on an object ×1 (Person.ExecuteUbergraph_Person, l. 6880-6926), PersonCumming ×2 (GI.ExecuteUbergraph_GI, l. 9243, 9262), SkeletalMesh_2_… ×2 (GI.ExecuteUbergraph_GI, l. 16058, 16086). Propres à J6 : les 5 property Actor / isCreatureType (disparus, attendu). Aucune des familles propres à H3e-J ne touche CallFunctionReturnBool ni isCreatureType ; attribution à Room B2 / CAM non établie (estimé : parcours différent, scène jouée vers 13:38-13:40 ; aucun essai ne le tranche ici). Verdict critère 4 : PASS-STATIC avec réserve (E2).

4. Diff lu en entier

sans objet : VAL de jeu sur journal, aucun diff dans la fiche (aucune écriture hors livrable).

5. Verdict

FAIL sur le critère 3 (E1), PASS sur le reste. Le but de G13 est atteint dans le journal : 0 pile isCreatureType, 0 property Actor, 0 isCreatureType:64X (J6 : 5 / 5 / 5) pour 6 CHECKING: pet/horse. Le seuil de la SPEC (≤ 1 of length 0) est dépassé de 1 par la famille « silencieuse » isSameAs (2 lignes).

Écarts :

  • E1 : Person_24_.*of length 0 = 2 pour un attendu ≤ 1. Origine : isSameAs via CheckConditionsWho après un clic carte, non traitée par G13. La SPEC § 1.2 prévoyait « 1 (ou 0) » pour une ligne ; deux clics carte donnent deux lignes : le seuil ≤ 1 ne tient pas compte du nombre de clics. Une lecture « 1 ligne par clic » donnerait PASS ; à trancher par l'orchestrateur, je ne l'ai pas réécrit.
  • E2 : Accessed None = 13 (attendu ≈ 4, J6 9) ; 3 familles propres à H3e-J listées en § 3 ; attribution non établie (information, pas un critère bloquant de la fiche).
  • E3 : tableau § 3 ligne 3k mal renseignée à la première rédaction, corrigée dans le paragraphe qui suit (3k = 0, PASS). Les deux informations coexistent par transparence.
  • E4 : motif 3b non adapté à la pile intercalée ; remplacé en pratique par 3c et 3d (0 occurrence de isCreatureType et de property Actor dans tout le journal).

Non mesuré : critère 5 (chemin avec compagnon, aucune scène avec animal) ; STE-H3d-VAL.md non relu en entier ; piles complètes des 13 Accessed None non lues (seules les têtes de pile).

6. Points à confirmer par l'utilisateur

  • Accepter ≤ 1 « par clic carte » (E1) ou ouvrir une SPEC isSameAs / CheckConditionsWho (famille silencieuse, désormais nommée par pile : lot DIAG STE-H3e, Q-H3d-2).
  • Accepter les 3 familles Accessed None propres à H3e-J (E2) comme étrangères à G13, ou demander un DIAG.
  • Critère 5 : non obligatoire, reporté.

Tours : 9 / 30

Décision de l'utilisateur (2026-10-13)

Critère 3a requalifié : « 0 ligne Person_24 attribuée à isCreatureType » (les lignes isSameAs, une par clic carte, relèvent de STE-H3e). Verdict de jeu de STE-H3d : PASS (G13 confirmée : 0 isCreatureType, 0 property Actor, 6 CHECKING: pet / horse). E2 (Accessed None 13 contre 9, 3 familles nouvelles) : DIAG ouvert (STE-H3f).