19 KiB
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.mdversion 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.mdrelu en version 1 (224 lignes).- Citations vérifiées à la source :
CsvProfilerConfig.h5 à 12 (lignes 9-10 :CSV_PROFILER_ENABLE_IN_SHIPPINGvaut 0 par défaut) ;Tools\PresentMonStats.py(option--reference, lignes 8, 35, 471 à 474) ;Tools\Perf-P1.ps1(-Referencetransmis 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 scriptTools\Perf-P1.ps1(existe). PASS. - Tracy : « abandonné » à
SKILL.md:3,SKILL.md:25,bareme.md:19,tracy.md:3.SKILL.md:29ne cite plus Tracy ;tracy.md:7est « 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:42renvoie à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:75et: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 § 3donne 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 quebareme.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
@@pargrep -cdans Bash, sur la sortie degit 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.mddu 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 :
Greptronque les lignes longues (« [Omitted long matching line] », cas deSKILL.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.