LifePlay-Revival/Docs/Migration/etat/EVAL2/AMEL1/AMEL1-V1d-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

13 KiB

Fiche AMEL1-V1d — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-validator — Skills sk-protocol, sk-recount, debug-verification, lp-validate

AMEL1-V1d-VAL : validation de la fiche R3, Tools\EssaiJournal.ps1 (2026-10-14)

Verdict en une ligne : outil et rejeu PASS ; affirmation I3 « 17 / 48 sans réserve » recomptée 16 / 48 (33,3 %) ; l'outil sert comme liste d'alertes par contrôle, pas comme contrôle global avant remise (15 journaux sur 17 FAIL).

1. Fiches amont relues

  • Docs\Migration\etat\EVAL2\AMEL1\R3\AMEL1-R3-IMPL.md (lue en entier, 161 lignes).
  • …\R3\AMEL1-R3-KO.csv (48 lignes, lu en entier), …\R3\AMEL1-R3-REJEU.csv (408 lignes, comparé), …\R3\AMEL1-R3-REJEU.md (exemples), …\R3\AMEL1-R3-EXEMPLE-NONVERIFIABLE.md (12 premières lignes).
  • Tools\EssaiJournal.regles.json (47 lignes, lu en entier) ; Tools\EssaiJournal.ps1 (474 lignes : lignes 440-474 lues, le reste examiné par Grep des écritures seulement, voir § 4).
  • Sources de contrôle : Docs\Migration\etat\EVAL2\data\commun.csv, Docs\Migration\etat\BOSS\COMMUN-4-BILAN.md, COMMUN-10-BILAN.md, COMMUN-11-BILAN.md, et les journaux de D:\Game\LifePlay_Backup_5.5\COMMUN-*\essais\.

2. Points à confirmer des IMPL (IMPL § 5)

# Point Résultat
1 Rejeu du § 5 redonne AMEL1-R3-REJEU.csv PASS : 408 lignes contre 408, Compare-Object sur journal / controle / compte / seuil / verdict / exemple = 0 écart ; MD5 des deux CSV 85A079CA13216D4326AD3D2EDFA06905 ; code 1
2 Codes 0 / 1 / 2 PASS pour 0 (COMMUN-5 session 2), 1 (COMMUN-9), 2 (journal absent). BLOCKED-ecriture pour l'exemple « 900 premières lignes » : la copie tronquée exige une redirection de shell interdite par la fiche V1d ; fichier exemple lu (900 lignes, 0 relevé), non rejoué
3 Journaux inchangés (MD5) PASS : MD5 des 17 journaux relevés avant et après le rejeu, identiques ; les 5 cités par l'IMPL concordent (COMMUN-2 3F2355F4…, C3 s1 27E654CC941D…, C6 s1 85C97D9F0CBC…, C9 6F95AD8F…, C13 D99EFD4B…)
4 LF de EssaiJournal.ps1, .regles.json, Matrice.ps1 PASS pour les deux premiers (FileCheck : LF 474 et 47, CR 0, alertes 0 ; CR 0 aussi dans les 7 fichiers de R3\). Saved\AMEL1-R3\Matrice.ps1 : reporté (ignoré par git, hors diff)
5 Relire les 3 réserves et les 12 « non » Réserves : § 3 V2 (F8 non retenue, Q2 et R4 maintenues). Les 12 « non » : reporté (hors périmètre V1d)
6 Seuils à décider reporté à l'orchestrateur ; éléments au § 3 V3 (seuils au bord : bloque 6 / 5 / 4, rafale 129 / 100 / 77, couple 50 / 44,5)
7 Tours (FicheStats.py) reporté (non lancé ici)
8 Écart de shell de l'IMPL (> /dev/null, copie head -n 900 … >) reporté : jugement de l'orchestrateur, le crochet n'a rien refusé selon l'IMPL ; non rejoué

3. Critères rejoués

V1 rejeu (PASS)

Commande (17 chemins construits depuis la liste de l'IMPL § 5, sorties sous Docs\Migration\etat\EVAL2\AMEL1\V1d\) : pwsh -NoProfile -File Tools\EssaiJournal.ps1 -Journal <17 chemins> -Exemples 3 -Mesures -Sortie …\V1d\V1d-REJEU.md -Csv …\V1d\V1d-REJEU.csv Sortie : code=1. Recompte : 343 PASS, 48 FAIL, 17 INFO (408). Codes 0 / 1 / 2 : C5s2 code=0, C9 code=1, absent code=2. Journaux : MD5 avant = après (17 / 17).

V2 KO : 12 « oui » tirés (graine 20261014, parmi les 17 « oui » sans réserve)

Tirage : Get-Random -Count 12 -SetSeed 20261014 sur les lignes detecte = oui. Chaque contrôle cité sonne dans V1d-REJEU.csv (verdict FAIL, même compte). Relecture à la source :

KO Journal Preuve relue Verdict
B1 C2 commun2_definitif:5630 PlayerCharacter feetZ=-189,0, pièce -115 (la ligne citée 5625 est l'en-tête du relevé, 5 lignes avant) confirmé
B2 C2 même contrôle que B1 (sous_piece 276) ; pas de ligne propre à B2 confirmé, non isolé de B1
B7 C2 :27443 CLOSE gap=-40,0, 16.50.14 ; « 7 lignes » = compte du CSV, QueryAndPhysics non sur cette ligne confirmé
D1 C3 s2 :11767 Person_C_2147481980 feetZ=-149,8, delta 35,4, 18.56.59 = heure du bilan confirmé
D6 C3 s1 469 « Marche : le joueur quitte » (Grep, compte 469) ; second défaut de D6 non couvert confirmé
HF3 C3 C3 s1 même boucle (première à 18.25.50.909, :4506) ; même signal que D6 confirmé
D8 C3 s1 :1442 « camera a 25 cm de la tete », 18.25.11.568 confirmé
K6 C6 s1 :29517 « Touche C : BuilderOn=0 SpaceOn=0 … », 05.37.28.070 = heure B2j du bilan (12 lignes SpaceOn=0) confirmé
HF1 C4 C4 s2 :1446 PlayerCharacter feetZ=-167,4, delta 59,4, 20.28.33 = « 20:28 » du bilan confirmé
O5 C8 :17622 PlayerCharacter feetZ=-179,4, delta 71,4, 09.13.54 (bilan 09:13:49, 5 s d'écart) confirmé
Q1 C10 :7442 dépassement 101 cm (marge 100), :7487 257 cm, 10.36.34-39 ; heure de Q1 non établie au bilan confirmé (début au bord de la marge, 1 cm)
P5 C9 :1727 PlayerCharacter delta=-12,6, 09.49.45 réserve : même ligne feetZ=-95,4 / floorZ=-105,1 / delta=-12,6 aux builds C3 s2, C4 s2, C5 s1, C6 s1, C7 (exemples flotte de V1d-REJEU.md l. 181, 299, 366, 475, 622) où aucun KO de flottement n'est déclaré ; le contrôle sonne sur une constante, il ne sépare pas C9 des autres

Bilan : 11 confirmés sur 12, 1 réserve (P5). Défaut de forme répété : 6 exemples sur 12 citent l'en-tête du relevé (PersonsDump periodique) et non la ligne de la personne (écart de 1 à 5 lignes).

V2 réserves

  • F8 (C4, bloque = 6) : non retenue. Le bilan dit « place du comptoir _214 chevauche le bureau _220 ». Le seul blocage du joueur sur _214 est en session 1 (commun4_session1:1516, 20.06.33). Le contrôle sonne en session 2 (6 lignes PlayerCharacter, composants _36 _37 _34 Box, commun4_session2:9156 à :15917). Session 1 compte 4 lignes (1 joueur + 3 PNJ), sous le seuil 5 : le seuil 5 sépare 6 de 4 et manque la session où F8 est très probablement. À requalifier en « non » (ou « oui, mauvaise session »).
  • Q2 (C10, rafale 129) : réserve maintenue (estimé). Lignes « Show couple : bloque par » par minute (Grep) : 10.31 = 27, 10.32 = 31, 10.33 = 245, 10.36 = 24. Le bilan date Q2 à 12:36 locale = 10.36 UTC ; la rafale de 129 est à 10.33, trois minutes avant. Seuil 100 réglé sur ce seul exemple (C11 77, C13 37).
  • R4 (C11, couple_flotte = 26) : réserve maintenue (partiel). Exemple cité commun11:3068 à 11.16.36 (call_a_hooker, root -1,3 sur Room.Box -102,2 = 100,9 cm), 14 minutes avant les faits du bilan (refus du lit 11.30.13, pose Z=150 à 11.31.18). À 11.31.21 le couple est sur fnt_bed03 : « loin du sol » vaut aussi pour un couple légitimement sur un lit ; le refus du lit n'a aucune règle.

V3 discrimination (17 journaux, source V1d-REJEU.csv)

Nombre de journaux où le contrôle sonne (FAIL) : flotte 9 ; sous_piece 8 ; enfonce 5 ; releve_tardif 5 ; chevauchement 4 ; couple_flotte 3 ; hitch_max 2 ; hors_piece 2 ; Témoin C2 2 ; bloque 1 ; rafale 1 ; « le joueur quitte » 1 ; « Touche C » 1 ; zqsd_ignore 1 ; fatal 1 ; plantage 1 ; error 1. À 0 : couple_sous, fige, hitch_nb, none_fonction, none_total, notify (INFO), repetition.

  • Contrôles sonnant sur ≥ 12 journaux : aucun (maximum 9). Pas de « bruit » au sens de la fiche ; le bruit est cumulatif : 17 contrôles différents sonnent, donc 15 journaux sur 17 sont FAIL (88 %).
  • COMMUN-13 (témoin négatif) : fatal 1, plantage 1, error 13, un seul événement (plantage GPU 14.21.45, lignes d'erreur 17611 à 17954 toutes D3D12 / RHI / fenêtre d'erreur, les 5 InputMode:UIOnly sont tolérées) ; 0 sur les 21 autres contrôles (-Mesures rejoué : couple au repos 0, flotte 0, hitch max 1351 ms). Un seul témoin, et ses seuils ont été réglés dessus (couple 50 pour 44,5).
  • Précision par type (KO « oui » reliés au contrôle, selon AMEL1-R3-KO.csv) : les contrôles d'événement (rafale, joueur quitte, Témoin C2, Touche C, hitch, zqsd, fatal) sonnent sur 1 à 2 journaux chacun et correspondent à un fait relu. Les contrôles de position (flotte, sous_piece, enfonce, releve_tardif, chevauchement, couple_flotte, hors_piece) portent 36 des 48 cellules FAIL : flotte relié à un KO sur 1 journal de 9 (et P5 en réserve), sous_piece 5 sur 8.
  • I3 recalculé : sans contrôle ≥ 12 journaux : inchangé, 17 / 48 = 35,4 %. Avec mes corrections de V2 (P5 en réserve) : 16 / 48 = 33,3 % sans réserve ; réserves Q2, R4, P5 : 19 / 48 = 39,6 % (F8 sortie). Sensibilité : sans flotte ni sous_piece (les deux sonnant sur ≥ 8 journaux) : B1, B2 et P5 n'ont plus de contrôle, 14 / 48 = 29,2 % (sous la cible 30 %). Avec les seuls contrôles d'événement (D6, HF3 C3, D8, K6, HF1 C5, HF2 C2) : 6 / 48 = 12,5 %, valeur de P3. Le gain d'I3 vient donc des contrôles de position, les moins précis, réglés sur les mêmes journaux.
  • Conclusion : utilisable comme liste d'alertes par contrôle, avec l'exemple chemin:ligne de chaque alerte relu par le builder ; pas comme contrôle global avant remise, car le verdict global ne départage pas les builds (15 FAIL / 17, dont C11 et C12 FAIL par un seul contrôle couple_flotte qui confond lit et flottement). Un verdict global exploitable demanderait de classer les contrôles (bloquants : fatal, plantage, error, hitch_max, rafale, « joueur quitte » ; informatifs : le reste) et un jeu de contrôle hors des 12 builds de calibrage.

V4 innocuité et forme (PASS)

  • Écritures du script : Grep des écritures (Set-Content, Out-File, Add-Content, WriteAllText, New-Item, Remove-Item, Copy-Item…) dans Tools\EssaiJournal.ps1 : 2 occurrences en écriture, :467 ($Sortie) et :472 ($Csv) ; lecture :170 (ReadAllLines). Journaux inchangés (MD5 17 / 17).
  • LF : FileCheck.ps1 Fins LF, CRLF 0, CR 0, alertes 0, fichiers=2 LF=2 (MD5 E50366F8A012F09C0F1674548DE534C3, 2B14634E8C1F0CC34FDDAD77F9AF69AD).
  • PubCheck (9 fichiers : 2 outils + 7 de R3\, chemins absolus, appelé depuis pwsh -Command en tableau) : PubCheck : 0 constat(s), pubcheck code=0. L'IMPL ne l'avait pas lancé.
  • Nom de compte ou profil (nom du compte, prénom, C:\Users, AppData) dans R3\ : 0. Chemins D:\Game\… du projet : 594 lignes dans 6 fichiers (convention du dossier etat\, pas de chemin machine privé).

4. Diff lu en entier

git status --short : Tools/EssaiJournal.ps1, Tools/EssaiJournal.regles.json, Docs/Migration/etat/EVAL2/AMEL1/R3/ et …/V1d/ sont non suivis (??) : pas de diff contre un tag, ces fichiers sont neufs. Lus : JSON entier (47 lignes), script lignes 440-474, AMEL1-R3-IMPL.md entier, les 7 fichiers de R3\ par comptage ; le corps du script (lignes 1-439) n'a pas été relu ligne à ligne : non vérifié au-delà du Grep des écritures.

5. Verdict

  • Rejeu, codes, journaux inchangés, innocuité, forme : PASS.
  • Exemple « non vérifiable » tronqué : BLOCKED-ecriture (non rejoué ; code 2 prouvé par le journal absent).
  • Affirmation I3 de l'IMPL (17 / 48 sans réserve, 20 / 48 avec réserves) : FAIL partiel : F8 n'est pas retenue (mauvaise session), P5 passe en réserve ; recompte 16 / 48 (33,3 %) sans réserve, 19 / 48 (39,6 %) avec Q2, R4, P5. Cible 30 % tenue de peu et sensible aux seuils (29,2 % sans les deux contrôles les plus larges).
  • Usage : alertes par contrôle oui, verdict global avant remise non.

6. Points à confirmer par l'utilisateur

  • Requalifier F8 en « non » dans AMEL1-R3-KO.csv (décision de l'orchestrateur, rien corrigé ici).
  • Requalifier P5 en réserve (contrôle flotte constant de C3 s2 à C9) et décider si flotte reste suivi (delta -12,6 à -9,3 stable sur 7 builds).
  • Seuils : accepter ou non les seuils réglés sur les 12 mêmes builds ; exiger un jeu de contrôle (builds C14 et suivantes) avant de citer I3.
  • Usage retenu : alertes par contrôle avec exemples relus ; classement bloquant / informatif des 24 contrôles avant tout verdict global.
  • Citations des relevés : viser la ligne de la personne et non l'en-tête PersonsDump.
  • Témoin en jeu : sans objet (outil, aucun comportement de jeu modifié).

Tours : 27 / 40

Constats

  • Trace : Docs\Migration\etat\EVAL2\AMEL1\V1d\V1d-REJEU.csv et .md — Fiche AMEL1-V1d — 2026-10-14. Commande : voir § 3 V1. Environnement : copie 5.8, branche ue5.8, PowerShell 7 ; journaux de D:\Game\LifePlay_Backup_5.5. Attendu (écrit avant) : mêmes 408 lignes que R3, code 1. Obtenu : identique. Lecture : le code 1 vaut dès qu'un contrôle sonne.
  • Fichiers écrits : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL2\AMEL1\AMEL1-V1d-VAL.md, …\AMEL1\V1d\V1d-REJEU.md, …\AMEL1\V1d\V1d-REJEU.csv. Fichiers à commiter : A les trois.