LifePlay-Revival/Docs/Migration/etat/AG/PIPE1/PIPE1-VAL-02.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

19 KiB
Raw Blame History

Fiche PIPE1-VAL-02 — Niveau N1 — Modèle prévu haiku | utilisé claude-haiku-5-5 — lp-validator — Skills lp-validate, sk-recount, debug-verification, sk-protocol

PIPE1-VAL-02 v2 : contre-vérification de PIPE1-IMPL-02 (version 2), barème M0 à M4 dans lp-perf et OPT0-PIPELINE (2026-10-15)

Objet : contrôle V1 à V10 de Docs\Migration\etat\AG\PIPE1\PIPE1-IMPL-02.md version 2 (classe D, lecture seule). Verdict v2 : FAIL. Point ouvert unique : V1 sur l'avant de la SPEC (E4, modification sans instantané), qui ne se vérifie pas. Le relais d'acceptation de E4 par Big Boss est consigné (§ Mise à jour) mais ne lève pas le point : il doit être confirmé directement par l'utilisateur. Tous les autres contrôles sont PASS. Aucun fichier modifié ; seul fichier écrit : le présent livrable.

1. Fiches amont relues

  • PIPE1-IMPL-02.md version 2 : 166 lignes, lu en entier.
  • lp-perf\bareme.md : 115 lignes, lu en entier (grille § 3 avec règle de construction, budgets § 4, R1 à R8 § 5, exemples § 6).
  • OPT0-PIPELINE.md : 107 lignes, lu en entier.
  • lp-perf\SKILL.md (34 lignes), recettes\csvprofile.md (51), recettes\presentmon.md (50), recettes\tracy.md (23), recettes\gauntlet.md (36) : lus en entier.
  • PIPE1-SPEC-02-BAREME.md : ligne 3 relue ; 57 lignes en version 1 (inchangé en taille).
  • PIPE1-REVUE-02-MODELE.md : relu en version 1 (lignes 62 à 75 grille et règle ; 88 à 94 budgets ; 148 à 158 U1 à U6 ; 154 U4). PIPE1-REVUE-02.md relu en version 1 (224 lignes).
  • Citations vérifiées à la source : CsvProfilerConfig.h 5 à 12 (lignes 9-10 : CSV_PROFILER_ENABLE_IN_SHIPPING vaut 0 par défaut) ; Tools\PresentMonStats.py (option --reference, lignes 8, 35, 471 à 474) ; Tools\Perf-P1.ps1 (-Reference transmis en --reference, ligne 235).
  • Non relus (hors périmètre, à Big Boss) : PIPE1-SPEC-01.md, PIPE1-SPEC-03-W2.md, profil\lp-gardien.md.

2. Points à confirmer de l'IMPL v2 (IMPL § 5, § 2, § 4, § 7)

Point Verdict v2 Renvoi
V1 diff et MD5 BLOCKED-instantané (avant de la SPEC seulement, déclaré E4) ; le reste PASS § 3.1
V2 fins de ligne PASS § 3.2
V3 PubCheck PASS § 3.3
V4 longueur de SKILL.md (R9) PASS § 3.4
V5 grille de bareme.md § 3 PASS (20 cellules sur 20, règle désormais écrite l. 54-55) § 3.5
V6 exemples de bareme.md § 6 PASS (règle « moins les paliers réutilisés (R2) » écrite l. 75) § 3.6
V7 contradictions lp-perf PASS § 3.7
V8 OPT0-PIPELINE.md cohérent avec bareme.md PASS § 3.8
V9 citations PASS (9 citations, dont 2 nouvelles vérifiées) § 3.9
V10 existence des outils PASS § 3.10
E1 (4 recettes, liste des blocs) PASS : les 9 hunks de csvprofile.md sont ceux de l'E1 § 4
E2 (front matter) à confirmer par Big Boss : effet au prochain démarrage, non vérifiable dans cette session § 6
E3 (règle du verdict, Tracy) PASS : SKILL.md:29-30 relus § 3.1
E4 (SPEC modifiée sans instantané) BLOCKED-instantané : confirmation directe de l'utilisateur requise (relais de Big Boss consigné, non suffisant) § 5, § Mise à jour
E5 a (base Shipping de l'alpha, M2 et M3 « non jugé ») à confirmer par Big Boss ; cohérent dans les quatre fichiers, pas un écart § 6
E5 b (condition « rodé » = palier éprouvé + script enveloppe) à confirmer par Big Boss : portée de U4 (voir § Mise à jour) § 6
§ 4 (non faits) reporté : U4, copie dans le profil, CHG et index (ticket PARTAGES) § 6
§ 7 (corrections E-1 à E-11) vérifiées une à une (§ 4 du présent livrable) § 4

3. Contrôles rejoués (commande et sortie brute)

3.1 V1 : diff contre l'instantané, hunks, MD5

Diff contre les copies d'instantané (D:\Game\LifePlay_Backup_5.5\PIPE1-perf\…), git diff --no-index --numstat :

SKILL.md 14 10 ; recettes/csvprofile.md 17 10 ; recettes/gauntlet.md 2 2 ; recettes/presentmon.md 4 4 ; recettes/tracy.md 3 3

Total addon : 40 ajouts et 29 retraits, identique à « +40 / −29 » de l'IMPL § 1. OPT0-PIPELINE.md : 72 42, identique.

Hunks (en-têtes @@ de git diff --no-index -U0), comparés à l'IMPL v2 § 1 :

  • SKILL.md : -3, -12, -16,6 +16,10, -25,2 +29,2 : 4, identique.
  • csvprofile.md : -1, -3, -7, -11, -14, -17,2 +17,3, -25 +26,7, -36 +43, -44 +51 : 9, identique.
  • presentmon.md : -1, -3, -40, -42 : 4, identique.
  • tracy.md : -1, -3, -7 : 3, identique.
  • gauntlet.md : -1, -3 : 2, identique.
  • OPT0-PIPELINE.md : 15 hunks (-3 +3,3, -7,6 +9,8, -14 +18, -18 +22,2, -21,2 +26,2, -24 +29, -28,8 +33,7, -37 +41, -41,7 +45,6, -50 +53, -54,2 +57,32, -58 +91, -62,5 +95, -70 +99, -74,4 +103,5), identique à l'IMPL.
  • bareme.md : nouveau (pas de hunk).

MD5 : colonne « après » de l'IMPL v2 contre Get-FileHash -Algorithm MD5 actuel ; colonne « avant » contre le manifeste (manifest.csv, égal à HEAD et aux copies).

Fichier Avant (IMPL v2) Manifeste / HEAD / copie Après (IMPL v2) Get-FileHash actuel Verdict
lp-perf\SKILL.md 24D49DF2B78CF048F6D6726266730770 identique 525458771F7FA9C57360B1D8E7DC4ECF identique PASS
lp-perf\bareme.md — (nouveau) absent du manifeste E18630A58ABD2A56EB776084F19147AA identique PASS
recettes\csvprofile.md 9840731FA8DC446C4FE873F88CC41E38 identique 62B69111A5E7FDB55243015BFA6F2BBF identique PASS
recettes\gauntlet.md 26D4B8B85898624755A1167C12AFE40A identique CB1CF1095AFEDCC5D5E15D95EF337159 identique PASS
recettes\presentmon.md 7032DEA37A8836BCC8AA197A3E2F3D55 identique D654DACC46E8AD06FEB5F24E95E312ED identique PASS
recettes\tracy.md 07B9CA2BF5B77BD6A7206B0ADDC1196D identique 9B371B276970812851953DBFB37A177D identique PASS
OPT0-PIPELINE.md 4F45AAFF0A1CD274F695DF2D2CA5CF0E identique 5B92DE40375CFA0E7192950ECAF76A45 identique PASS
PIPE1-SPEC-02-BAREME.md A837AB078650F75BF8EACB89CA0016B3 (reconstitué) absent : hors instantané 20ED5F16083FB9E43B34398E478A29CB identique BLOCKED (avant, E4)

Contrôle de la reconstitution : sans la ligne 3, calcul en mémoire, sans_ligne3=A837AB078650F75BF8EACB89CA0016B3. Le calcul de l'IMPL est reproductible ; il ne prouve pas l'état d'origine, puisque aucun instantané du SPEC n'existe (IMPL § 3 et E4).

Vérification de E3 : SKILL.md:30 (« base O0, puis O0-5.8 ; base Shipping de l'alpha pour M2 et M3 ») et SKILL.md:29 (téléchargements sans Tracy) : PASS.

Verdict V1 : BLOCKED-instantané pour le seul avant de la SPEC ; PASS pour les 8 après, les 6 avant du manifeste, les 22 + 15 hunks et les 40/29.

Note de méthode : un décompte des @@ a été fait une fois par grep -c dans Bash, sur la sortie de git diff (lecture seule) ; les en-têtes ont été relus directement ensuite (§ 4).

3.2 V2 : fins de ligne

tr -cd '\r' < <fichier> | wc -c : 0 pour les 11 fichiers (les 10 du lot et PIPE1-IMPL-02.md). Lignes (wc -l) : SKILL 34, bareme 115, csvprofile 51, gauntlet 36, presentmon 50, tracy 23, OPT0 107, SPEC 57, REVUE-02 224, MODELE 169, IMPL v2 166. PASS.

3.3 V3 : PubCheck

pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\PubCheck.ps1' -Fichiers @(…11 chemins absolus…)" : sortie PubCheck : 0 constat(s), exit=0. PASS.

3.4 V4 : longueur (R9)

SKILL.md : 34 lignes (≤ 120). bareme.md : 115 lignes. PASS.

3.5 V5 : grille de bareme.md § 3

Règle écrite sous la grille (bareme.md:54-55) : « Construction : base de Q (Q0 → M0, Q1 → M1, Q2 → M2, Q3 → M1, Q4 → M4) ∪ plancher de E (E0 → rien ; E1 → M0 ; E2 → M1 + M0 ; E3 → M1 + M0 + M2). » Elle est désormais dans bareme.md (E-11 corrigé).

Recalcul des 20 cellules, comparé à bareme.md:47-51 :

  • Q0 : M0 | M0 | M1 + M0 | M1 + M0 + M2 : identique.
  • Q1 : M1 | M1 + M0 | M1 + M0 | M1 + M0 + M2 : identique.
  • Q2 : M2 | M2 + M0 | M2 + M1 + M0 | M2 + M1 + M0 : identique.
  • Q3 : M1 | M1 + M0 | M1 + M0 | M1 + M0 + M2 : identique.
  • Q4 : M4 | M4 + M0 | M4 + M1 + M0 | M4 + M1 + M0 + M2 : identique.

20 cellules sur 20 conformes à la règle écrite. Identique à MODELE § 4. PASS.

3.6 V6 : exemples de bareme.md § 6 (lignes 112 à 115)

Règle (bareme.md:75) : « somme des paliers de la cellule (rodé), moins les paliers réutilisés (R2) ». Budgets rodés (bareme.md:67-71) : M0 5 k, M1 15 k, M2 10 k, M3 10 k, M4 25 k (identiques à MODELE § 5.2).

Exemple Cellule recalculée Paliers écrits Parties Budget recalculé Écrit Verdict
G2 (l. 112) Q0 E1 → M0 M0 1 × 2 = 2 5 ≤ 5 k PASS
G3 et G4 (l. 113) Q3 E2 → M1 + M0 M1 + M0 3 × 2 = 6 15 + 5 = 20 ≤ 20 k PASS
G6 (l. 114) Q2 E3 → M2 + M1 + M0 (★) M2 + M1 + M0 3 × 2 Development + 3 × 2 Shipping = 12 10 + 15 + 5 = 30 ≤ 30 k PASS
à-coup (l. 115) Q4 E2 → M4 + M1 + M0 M4 seul (M1 + M0 de G3 réutilisés, R2) 1 × 2 = 2 45 − 20 (M1 + M0 réutilisés) = 25 ≤ 25 k PASS

Parties = passes (X) × côtés (2 en A/B). PASS.

3.7 V7 : contradictions dans lp-perf

Grep sur Tools\claude\skills\lp-perf, motifs csvCaptureFrames, \bTest\b, P1, P2a, P2b, P3, Tracy, alpha, Indicateurs, seuil, éprouv, Shipping, U4, enveloppe :

  • csvCaptureFrames : une seule occurrence, recettes\csvprofile.md:18, en interdit. PASS.
  • Build Test : bareme.md:17 (« Pas de build Test »), csvprofile.md:7 (« pas de build Test »), gauntlet.md:8 (affirmation sur le cadre de tests), gauntlet.md:10 (« Functional Test », un nom de test). Aucune build Test proposée. PASS.
  • P1, P2a, P2b, P3 : aucun palier. Seule occurrence de « P1 » : presentmon.md:22, nom de script Tools\Perf-P1.ps1 (existe). PASS.
  • Tracy : « abandonné » à SKILL.md:3, SKILL.md:25, bareme.md:19, tracy.md:3. SKILL.md:29 ne cite plus Tracy ; tracy.md:7 est « Sans objet ». PASS.
  • Indicateurs.py : plus cité dans lp-perf. PASS.
  • Bases : O0 (Development, M0, M1, M4) et base Shipping de l'alpha (M2, M3) : cohérentes dans SKILL.md:3, :30, bareme.md:101-106 (R8), presentmon.md:40, :42, OPT0-PIPELINE.md:23, :61. PASS.
  • presentmon.md:42 renvoie à Tools\PresentMonStats.py --reference <json> : l'option existe (PresentMonStats.py:35, :471-474). PASS.

Verdict V7 : PASS.

3.8 V8 : OPT0-PIPELINE.md contre bareme.md

  • Vue d'ensemble (OPT0:9-16) : builds et statuts identiques à bareme.md:11-15.
  • Règles communes (OPT0:22-23) : grille ; base O0 pour M0, M1, M4 ; base Shipping de l'alpha pour M2 et M3, « non jugé » sans elle (identique à bareme.md:101-106).
  • M2 (OPT0:61) : « au-dessus du seuil de la base Shipping (sans base : « non jugé ») » : cohérent.
  • Suite (OPT0:103-107) : ordre M1, M4, M2, M3 (identique à bareme.md:96-97).

Verdict V8 : PASS.

3.9 V9 : citations

Citation Ce qui est lu Verdict
BaseEngine.ini:4002-4007 Win64 Game : DebugGame, Development, Shipping ; aucune Test PASS
CsvProfilerConfig.h:9-10 CSV_PROFILER_ENABLE_IN_SHIPPING défini à 0 par défaut PASS (nouvelle, vérifiée)
CsvProfilerConfig.h:30-31 CSV_PROFILER = WITH_ENGINE et (non UE_BUILD_SHIPPING, ou CSV_PROFILER_ENABLE_IN_SHIPPING) PASS
18_Build_Debug.md:40-41 scénario O0 PASS
18_Build_Debug.md:66 « Ne jamais passer -csvCaptureFrames » PASS
18_Build_Debug.md:86-87 référence O0 : médiane 16,7 ms ; 159 ; 112 (relues, non recalculées) PASS
18_Build_Debug.md:128 Session C : médiane ≤ 17 ms (±1), 112, sans -LPHitchLog PASS
09_Commandes_Utiles.md:167 interdit de -csvCaptureFrames PASS
11_Audit_Optimisation.md:276-281 trace 4 min, 841 Mo, export, pièges PASS
OPT0-TACHES.md:203-218 6 essais, 0 image, Windows 11 build 26300 PASS
18_Build_Debug.md § 3 (bareme.md:19, Session B) ## 3. Lanceurs ligne 38, Session B ligne 46 PASS

Lanceur : Tools\debug\LifePlay_debug_sessionC_profil.bat l. 5 porte les mêmes arguments que csvprofile.md:14. PASS.

Verdict V9 : PASS.

3.10 V10 : existence

Glob (v1) : Tools\SummarizeDebugCsv.ps1, Tools\PresentMonStats.py, Tools\BuildDebug.ps1, Tools\debug\LifePlay_debug_sessionC_profil.bat présents. BuildDebug.ps1:24-25 : ValidateSet('DebugGame', 'Development'). Tools\Perf-P1.ps1 présent ; -Reference transmis en --reference (Perf-P1.ps1:235). PASS.

4. Diff lu en entier, et vérification des corrections E-1 à E-11

Fichiers lus en entier dans leur état actuel (§ 1). Diff lu par hunks (§ 3.1). Corrections de la VAL v1 :

  • E-1 (budget à-coup) : bareme.md:75 et :115 : PASS.
  • E-2 (alpha et seuil dans presentmon) : presentmon.md:40, :42 : PASS.
  • E-3 (SPEC avant) : reconstitué et déclaré (E4) : BLOCKED, voir § 5.
  • E-4 (« 1 entrée ») : IMPL v2 § 3 donne 2 entrées, avec explication : PASS.
  • E-5 (E1 incomplet) : E1 liste les blocs de csvprofile (l. 7, 11 à 19, 25 à 32, 43, 51) : PASS.
  • E-6 (condition « rodé ») : bareme.md:73-74 : PASS (portée à confirmer, § 6).
  • E-7 (base M2) : bareme.md:101-106, OPT0:23, :61 : PASS (cohérent ; base Shipping à établir, point à confirmer).
  • E-8 (« hors git ») : IMPL v2 § 6 : « non suivi (untracked, non ignoré) » : PASS.
  • E-9 (« par défaut ») : csvprofile.md:7 : PASS.
  • E-10 (résidus) : tracy.md:7, SKILL.md:29 (sans Tracy), SKILL.md:3 (« O0 or alpha baseline ») : PASS.
  • E-11 (règle sous la grille) : bareme.md:54-55 : PASS.

5. Verdict v2

VERDICT v2 : FAIL. Règle de la fiche : PASS seulement si V1 à V10 sont PASS.

Contrôle Verdict v2
V1 BLOCKED-instantané (avant de la SPEC seulement, déclaré en E4)
V2 PASS
V3 PASS
V4 PASS
V5 PASS
V6 PASS
V7 PASS
V8 PASS
V9 PASS
V10 PASS

Point ouvert unique (E4) : PIPE1-SPEC-02-BAREME.md:3 a été modifié sans instantané ; l'avant n'est qu'une reconstitution. Aucun défaut de contenu n'a été trouvé. Levée : confirmation directe de l'utilisateur (acceptation de l'écart, retour arrière : supprimer la ligne 3). Alors V1 devient « PASS, écart déclaré », et le verdict passe à PASS sans rejouer les autres contrôles. Acceptation d'un risque : décision de l'utilisateur (sk-protocol § 2), pas d'un agent.

Mise à jour : relais de la levée de E4 (2026-10-15)

  • Relais reçu du coordinateur, après la v2 : citation attribuée à Big Boss, reproduite à l'identique : « V1 partiel (pas d'instantané de PIPE1-SPEC-02-BAREME.md avant ta ligne de tête : à noter comme écart, rien à refaire, le fichier n'était pas suivi) ».
  • Ce relais n'est pas appliqué comme levée. Big Boss est un rôle d'agent : l'IMPL l. 4 écrit « Ordre de Big Boss après « approuve le modèle de xHigh » (utilisateur) », ce qui distingue Big Boss de l'utilisateur. Un message d'agent n'est jamais une approbation de l'utilisateur, et une acceptation d'écart d'instantané relève de l'utilisateur.
  • Ce qui est consigné : la citation ci-dessus, et l'écart E4 déclaré dans l'IMPL v2 (§ 2). Le constat de V1 ne change pas : BLOCKED-instantané.
  • Conséquence : verdict v2 FAIL inchangé. Pour lever : confirmation directe de l'utilisateur, par exemple « j'accepte E4 ». Aucun contrôle n'a été rejoué pour cette mise à jour, comme demandé.
  • Lecture de « décision U4 » (bareme.md:73) : IMPL l. 4-5 écrit « U1 à U6 pris tels que PIPE1-REVUE-02-MODELE.md les écrit » ; le modèle (l. 154) pose U4 comme l'écriture de scripts enveloppes, « condition des budgets rodés ». La lecture de bareme.md est donc cohérente avec l'IMPL. Deux points restent à confirmer par Big Boss : (1) U4 vise les scripts pour M1 et M4 (MODELE l. 154), alors que bareme.md:73-74 étend la condition à tous les paliers, dont M0, M2 et M3 ; (2) l'écriture des scripts est-elle une décision prise, ou une question laissée ouverte ?

6. Points à confirmer

Par l'utilisateur (non par un agent) :

  • E4 : accepter la SPEC modifiée sans instantané (retour arrière : ligne 3). Levée de V1 si oui.

Par Big Boss :

  • E5 a : M2 et M3 « non jugé » tant qu'aucune base Shipping de l'alpha n'existe (bareme.md:105, OPT0:61, presentmon.md:40). Cohérent dans les quatre fichiers.
  • U4 : portée de la condition « rodé » (M1 et M4 seulement, selon MODELE l. 154, ou tous les paliers, selon bareme.md:73-74) ; décision prise ou question ouverte.
  • Tracy abandonné : déjà dans le modèle (MODELE:35) ; à confirmer.
  • E2 : l'effet de la description au prochain démarrage n'est pas vérifiable dans cette session.
  • Budget de l'à-coup : 25 k, conforme à la règle « moins les paliers réutilisés (R2) ». Confirmer que cette règle est voulue : elle fait porter le budget sur le seul travail neuf.

7. PubCheck

Livrables relus (11 fichiers, § 3.3) : PubCheck : 0 constat(s), exit=0. Le présent livrable est soumis à PubCheck après écriture ; résultat dans le compte rendu.

8. Témoin en jeu

sans objet : livrable de skill et de documentation, aucun correctif de comportement du jeu.

Version 1 : FAIL (E-1 à E-11), corrigé en v2

La version 1 de ce livrable (même chemin, même date) concluait FAIL : V5 (E-11), V6 (E-1), V7 (E-2), V1 partiel (SPEC avant). L'IMPL a été corrigée en version 2 (§ 7 de l'IMPL). La version 2 vérifie chaque correction (§ 4). Il ne reste que E4, déclaré et non corrigeable. La version 1 est remplacée par la présente version.

Tours : 17 / 20 (fiche initiale : 8 ; reprise v2 : 6 sur 12 ; mise à jour de relais : 3 sur 3, PubCheck et handback compris ; le décompte de FicheStats fait foi)

Constats

  • Fichier écrit : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\AG\PIPE1\PIPE1-VAL-02.md (version 2 mise à jour, même chemin). Aucun autre fichier écrit ; aucun dépôt modifié.
  • Fichiers à commiter : A Docs/Migration/etat/AG/PIPE1/PIPE1-VAL-02.md (dépôt jeu, branche ue5.8), par le gardien sur ticket.
  • Écarts à la fiche : une fois, un décompte de @@ par grep -c dans Bash, sur la sortie de git diff (lecture seule, contraire à la règle d'outils du validateur) ; les en-têtes ont été relus ensuite. Aucun autre écart.
  • Origine de la ligne REPO\FILE.md du manifeste (IMPL v2 § 3, « instantané antérieur de Big Boss ») : non vérifiable ici, aucun journal lu.
  • Non rejoué (interdit ou hors fiche) : build, éditeur, jeu, PresentMon, Perf-P1.ps1, PresentMonStats.py (seule l'option a été vérifiée dans le source), mesures. Les valeurs 16,7 ms, 159 et 112 sont relues dans la documentation, pas recalculées. LPTestStringCompat et TestCrochet : sans objet.
  • À verser : lp-validate § 1 : Grep tronque les lignes longues (« [Omitted long matching line] », cas de SKILL.md:3) ; relire par Read avant de conclure qu'un motif est absent.
  • Suite : confirmation directe de l'utilisateur sur E4 (levée de V1, puis verdict PASS sans rejouer) ; Big Boss doit trancher les points du § 6. État : validation v2 faite, verdict FAIL sur V1 seul ; aucune correction faite par la VAL.