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 deD:\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_214chevauche le bureau_220». Le seul blocage du joueur sur_214est en session 1 (commun4_session1:1516, 20.06.33). Le contrôle sonne en session 2 (6 lignesPlayerCharacter, 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 surfnt_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:UIOnlysont tolérées) ; 0 sur les 21 autres contrôles (-Mesuresrejoué : 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
flottenisous_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:lignede 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ôlecouple_flottequi 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 :
Grepdes écritures (Set-Content,Out-File,Add-Content,WriteAllText,New-Item,Remove-Item,Copy-Item…) dansTools\EssaiJournal.ps1: 2 occurrences en écriture,:467($Sortie) et:472($Csv) ; lecture:170(ReadAllLines). Journaux inchangés (MD5 17 / 17). - LF :
FileCheck.ps1Fins LF, CRLF 0, CR 0, alertes 0,fichiers=2 LF=2(MD5E50366F8A012F09C0F1674548DE534C3,2B14634E8C1F0CC34FDDAD77F9AF69AD). - PubCheck (9 fichiers : 2 outils + 7 de
R3\, chemins absolus, appelé depuispwsh -Commanden 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) dansR3\: 0. CheminsD:\Game\…du projet : 594 lignes dans 6 fichiers (convention du dossieretat\, 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
flotteconstant de C3 s2 à C9) et décider siflottereste 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.csvet.md— Fiche AMEL1-V1d — 2026-10-14. Commande : voir § 3 V1. Environnement : copie 5.8, branche ue5.8, PowerShell 7 ; journaux deD:\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.