LifePlay-Revival/Docs/Migration/etat/CG/CG2/CG2-VAL-01.md

207 lines
16 KiB
Markdown
Raw Normal View History

Fiche CG2-VAL-01 — Niveau N1 — Modèle prévu haiku | utilisé claude-haiku-5-5 (Haiku 5.5) — lp-validator
Skills : lp-validate, sk-protocol, sk-recount, debug-verification
# CG2-VAL-01 : validation de la build 1 CG2 (CG2-IMPL-01 v4 : cœur et C7 faits, C8 sautée) (2026-10-20)
Lecture seule : aucun éditeur, MCP, build, commandlet ni jeu lancé ; aucune commande git en écriture. Seul ce fichier est écrit.
## 1. Fiches amont relues
| Fiche | Relue | Gabarit |
|---|---|---|
| `CG2-SPEC-01.md` (révision 3) | en-tête (l. 1-14), § 7 (l. 149-167), § 9 (l. 177-202), § 10 (l. 204-225) ; diff git lu en entier : +50 lignes, § 9 et § 10 seulement | § 1 à § 7 présents dans l'ordre ; § 8 à § 10 ajoutés |
| `CG2-IMPL-01.md` v4 | intégralité (l. 1-250) ; seule IMPL du lot, v1 à v3 décrites dans son historique (l. 14-30) | § 1 à § 6 présents ; « Hors gabarit » annoncé en tête (l. 3) ; écart de forme E4 |
| `CG2-TACHES.md` | intégralité (l. 1-55) + diff git lu en entier | 13 colonnes présentes ; colonne Tours déclarée, non mesurée (E5) |
| `COMMUN-14-BILAN.md` | § 1 à § 6 (l. 5-139) | § 1 à § 6 présents ; § 4 et § 5 contredits (R6, E1, E3) |
| `CG2-JOURNAL-BROUILLON.md` | intégralité | CHG « 420 réussis » : confirmé (§ 3.3) |
| `OPT0-G0-INV-01.md` | l. 81 seule (référence CR_FaceExpRig), non relu en entier | — |
| `CG2-CART-01.md` | non relu : hors liste de la fiche, inchangé (git status) | — |
## 2. Points à confirmer des IMPL (IMPL v4 § 5 et SPEC § 7)
| Id | Point | Verdict | Preuve |
|---|---|---|---|
| V1 | `git status` de Content/ | PASS | § 3.1 |
| V2 | liaisons relues (SelectInt, SetIsEnabled, Substring, P20, P25) | relu par IMPL (C3, C4, C5, C6, C7, C9) ; C1 : réserve R4 | IMPL § 1, l. 68-149 |
| V3 | compilation sans Error ni Warning | relu par IMPL | IMPL § 6 bis, l. 199-213 ; recoupé en § 3.3 |
| V4 | CompileAllBlueprints, éditeur fermé | PASS | § 3.3 |
| V5 | MD5 des quatre .uasset | PASS | § 3.2 |
| V6a | menu de forme sans CharGen (cas .4) | PASS | § 3.5 |
| V6b | réglage anti-déformation, visage inchangé (cas .5) | PASS (réserve mineure : l'entrée ne détaille pas les trois curseurs) | § 3.5 ; bilan § 2 |
| V6c | boutons d'état (cas .6) | PASS partiel (R1) | § 3.5 |
| V6d | refus des trois noms à l'enregistrement (cas .7) | PASS | § 3.6 |
| V6e | C8 (cas .8) | reporté : B2 (C8 non faite, IMPL § 4 ; TACHES « Report en B2 ») | IMPL § 2 H1 ; TACHES l. 26-37 |
| Point B2 | condition IsMale sans garde dans VisualMorph (IfThenElse_1) | reporté : B2 | SPEC § 9, l. 195-196 ; IMPL § 5 |
| V7 | PubCheck et fins de ligne | PASS (amont) ; présent fichier : § 7 | § 3.7 |
| IMPL § 4 | C2 sautée (sans objet, SPEC § 9) ; C10 et C11 reportées B2 ; étape 6 faite ; build faite | reporté (B2) pour C2, C10, C11 ; PASS pour étape 6 (journal de V4) | § 3.3 ; `COMMUN-14-BUILD.md` |
## 3. Critères rejoués (commande → résultat)
### 3.1 V1 — PASS
Commande : `git -C "D:/Game/LifePlay-master 5.8" status --short -- Content/`
```
M Content/UI/CharGen.uasset
M Content/UI/CharGenSlider.uasset
M Content/UI/VisualMorph.uasset
```
Rien d'autre sous Content/ ; `Content/BPs/GI.uasset` absent de la liste, donc intact.
### 3.2 V5 — PASS
Commande : `Get-FileHash -Algorithm MD5` (pwsh) sur les quatre fichiers.
```
8D781EC0B94318B5BFBF22EE3B33556A Content\UI\CharGen.uasset
CBE53469FC73E7829A00710126095C7E Content\UI\CharGenSlider.uasset
84DD9B17B977A007F9A13940406E970A Content\UI\VisualMorph.uasset
32FC0A970AB194626E8DC07DF3A9633D Content\BPs\GI.uasset
```
Avant (manifeste `D:\Game\LifePlay_Backup_5.5\CG2\manifest.csv`, l. 2 à 5) : CharGenSlider 9B194EA6…, CharGen E4C2EEA6…, VisualMorph 849C46E0… ; GI 32FC0A97…, égal à l'après. Les trois « après » diffèrent des « avant ». Les valeurs concordent avec IMPL § 1 (en minuscules) et § 7.
### 3.3 V4 — PASS
Journal : `Saved\Logs\portage\CG2_CompileAllBlueprints_20261020-021948.log` (505 048 o). Commande : Grep sur le journal.
```
2657: LogCompileAllBlueprintsCommandlet: ... Compile of CharGenSlider successful! [in 427 ms]
2830: ... Compile of CharGen successful! [in 702 ms]
2833: ... Compile of VisualMorph successful! [in 155 ms]
3333: Compiling Completed with 3 errors and 0 warnings and 0 blueprints that failed to load.
3376: Commandlet->Main return this error code: 3
3377: With 17 error(s), 34 warning(s)
```
- « successful! » : 420 lignes (count). Le brouillon CHG l'annonce : confirmé.
- Avertissement nommant CharGen, CharGenSlider ou VisualMorph : 0 (Grep `Warning.*(CharGen|VisualMorph)|(CharGen|VisualMorph).*Warning`).
- Erreurs (`(?i)error`) : 33 lignes (count). Listées : l. 2, 5, 7, 402 (DLL absentes, GetLastError=126, sans lien) ; l. 3046 à 3102 et l. 3340 à 3349 (CR_FaceExpRig et structures de `/Engine/CC_Shaders`) ; l. 3376 et 3377. La 33e ligne est le résumé l. 3333, non affiché par la recherche de contenu (déduit : 32 lignes listées plus l. 3333). Aucune erreur sur les trois Blueprints de CG2.
- Seul échec : CR_FaceExpRig, contenu du moteur installé. Même référence que G0 : `etat\OPT\OPT0\OPT0-G0-INV-01.md`, l. 81 (« CR_FaceExpRig … 3 erreurs », code de sortie 3). Hors CG2.
### 3.4 V2 et V3 — relus par l'IMPL (non rejoués)
Copie UE absente et MCP exclu : non rejouable. Contrôle de la présence des relectures dans IMPL v4 :
- C3 : « Relu : aucun présent » (l. 76). C4 : DynamicCast_0 et CallFunction_95 relus (l. 82-83). C5 : liaisons de garde et sorties relues (l. 85-110). C6 : relue (l. 112-113). C7 : relue (l. 130-131). C9, lectures 1 et 2 : relues (l. 141-142, l. 149).
- C1 : liaison `IfThenElse_5#1 → VariableSet_4226#0` citée (l. 68-69), sans mention de relecture. La précondition de SPEC § 9 (VariableGet_25 sans autre liaison) n'est pas tracée : R4.
- Compilation sans Error ni Warning : CharGenSlider (v2, filtre Error|Warning : sortie vide), CharGen et VisualMorph (v4 : seule ligne « Compiling Blueprint », IMPL § 6 bis, l. 201-213).
### 3.5 V6 — journal de l'essai
Sessions identifiées par la première ligne de chaque journal (`Log file open`) :
- **S1** = `Saved\Logs\LifePlay-backup-2026.10.20-06.46.10.log` (build Development, `D:\Game\LifePlay_Build_5.8_Development\Windows\LifePlay\`) : session ouverte à 07:57:50 (heure locale), 7 544 lignes, 1 073 894 o, LastWriteTime 08:46:10, MD5 7D748AB03A9DE454DFB2DCC6DE8DB570. C'est la session des cas .4 à .7.
- **S2** = `Saved\Logs\LifePlay.log`, identique à la copie `etat\BOSS\COMMUN-14\COMMUN-14.4-17_LifePlay_20261020-0757.log` (MD5 F51967CDE5F640BD45AB650D2CE42016) : session ouverte à 08:46:15, 1 099 lignes, 103 442 o, LastWriteTime 08:53:25.
- Taille attendue par la fiche (313 710 o) : aucun journal de `Saved\Logs` de cette taille. Tailles relevées : 118 895 ; 173 753 ; 226 098 ; 1 073 894 ; 103 442 o.
| Motif (Grep, mode count) | S1 | S2 | Attendu | Critère |
|---|---|---|---|---|
| `LogInit` (contrôle, doit être > 0) | 93 | 93 | > 0 | méthode |
| `property chargen` | 0 | 0 | 0 | V6a |
| `Hello` ; `test2905` | 0 ; 0 | 0 ; 0 | 0 | V6b |
| `Accessed None.*(CharGen_C\|CharGenSlider_C\|VisualMorph_C)` | 0 | 0 | 0 | V6c |
| `: Error:` | 20 | 1 (l. 942) | — | bilan § 5, R6 |
| `InputMode:UIOnly` | 21 | non compté | — | R6 |
Méthode : Grep (outil), même expression régulière que `grep -c -E` ; `LogStats.ps1` non lancé.
Verdicts : V6a PASS (cas .4) ; V6b PASS (.5) ; V6c PASS partiel (.6) ; V6d PASS (.7, § 3.6) ; V6e non joué (.8).
### 3.6 V6d — fichiers écrits (Get-ChildItem, LastWriteTime depuis 2026-10-20 07:57)
- Build, `Windows\LifePlay\Content\Modules` : deux fichiers de 2 106 o chacun. L'un porte un nom normal (écrit à l'enregistrement) ; l'autre a l'extension doublée (`*.lpcharacter.lpcharacter`, ERR-142 réservé au brouillon).
- Copie, `Content\Modules` : aucun fichier.
- Aucun fichier au nom des trois refus (`a/b`, `..x`, `a\b`). Les refus eux-mêmes sont observés par l'utilisateur (cas .7) ; l'absence de fichiers est vérifiée ici.
### 3.7 V7 — PASS (amont)
Commande : `pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\PubCheck.ps1' -Fichiers @(SPEC, IMPL, TACHES, JOURNAL-BROUILLON)"`, sortie `PubCheck : 0 constat(s)`, code 0.
Retours chariot (`tr -cd '\r' | wc -c`) dans les .md de `etat\CG\CG2\` : CG2-SPEC-01 0, CG2-IMPL-01 0, CG2-TACHES 0, CG2-JOURNAL-BROUILLON 0, CG2-CART-01 0. Fins LF.
## 4. Diff lu en entier
Commande : `git --no-pager diff --stat` sur Content/ et Docs/Migration/etat/CG/CG2/ : `5 files changed, 93 insertions(+), 2 deletions(-)`.
| Fichier | État git | Lu | Compte |
|---|---|---|---|
| Content/UI/CharGen.uasset | M | binaire : vérifié par V5 | 5 054 038 → 5 063 130 o |
| Content/UI/CharGenSlider.uasset | M | binaire : vérifié par V5 | 455 140 → 447 967 o |
| Content/UI/VisualMorph.uasset | M | binaire : vérifié par V5 | 327 185 → 333 578 o |
| Docs/Migration/etat/CG/CG2/CG2-SPEC-01.md | M | diff entier | +50, 0 suppression (§ 9 et § 10) |
| Docs/Migration/etat/CG/CG2/CG2-TACHES.md | M | diff entier | +45 / −2 (lignes T3 et T4 ; trois sections ajoutées) |
| Docs/Migration/etat/CG/CG2/CG2-IMPL-01.md | non suivi | intégral | 250 l. |
| Docs/Migration/etat/CG/CG2/CG2-JOURNAL-BROUILLON.md | non suivi | intégral | — |
| Content/BPs/GI.uasset | inchangé | V1, V5 | MD5 égal au manifeste |
## 5. Verdict
**PASS**, avec les réserves R1 à R6.
PASS établi par : V1, V4, V5, V6a, V6b, V6d et V7 (amont) rejoués ou recomptés ; V2 et V3 relus par l'IMPL. Le présent fichier : V7 à constater après écriture (§ 7).
Réserves nommées :
- **R1** : C6 non jouée. Aucune créature n'est créable dans la build ; les boutons de créature sont absents (cas .6 et .10 partiels).
- **R2** : C8 non faite, reportée en B2. V6e non joué (cas .8).
- **R3** : Q8 non observée (cas .9). La fermeture de l'écran est suspendue par décision ; le constat sur les boutons grisés n'a pas été fait. À trancher en B2.
- **R4** : V2 et V3 relus, non rejoués. Pour C1, la précondition de suppression de VariableGet_25 n'est pas tracée dans IMPL v4.
- **R5** : journal V6. La copie archivée `…0757` est la session de 08:46:15 ; la session de 07:57:50 (S1) n'est pas archivée sous `etat\BOSS\COMMUN-14\`. Les comptes V6 ont été rejoués sur S1 et sur S2, et valent 0 dans les deux. La taille de 313 710 o citée par la fiche et TACHES n'est retrouvée nulle part.
- **R6** : bilan § 5. « 0 : Error: » est contredit : 3 (.1), 4 (.2), 4 (.18), 1 (copie archivée .4-17), 20 (S1). Signature : `LogPlayerController: Error: InputMode:UIOnly … Non-Focusable widget`. Son lien avec CG2 n'est pas établi. Ce motif n'est pas un critère V6 de la fiche.
Conséquence pour le bilan : deux écarts ou plus (§ 1 et § 5) relèvent de sk-recount (rejet en bloc, reprise). Le bilan est à reprendre par lp-writer avant le versement de la DOC (CG2-T5). Ce verdict ne s'appuie pas sur ces lignes : les comptes V6 utilisés ont été rejoués ici.
## 6. Points à confirmer par l'utilisateur (cases)
- [ ] R1 : accepter la VAL sans la fin de liste des races animales (pas de créature dans la build), ou prévoir un essai avec créature.
- [ ] R3 : confirmer le report de Q8 en B2.
- [ ] R6 : trier la signature `InputMode:UIOnly` (lien avec CG2 ou non) avant la DOC.
- [ ] R5 : décider l'archivage de la session de 07:57:50 et la correction de l'étiquette (Big Boss).
- [ ] Décisions Q7, Q8 et Q9 : TACHES cite une formulation brouillée (l. 17-18) ; la lecture faite par Big Boss est à confirmer par l'utilisateur.
- [x] Déjà tranchés (citations dans TACHES, l. 26-37 et 53-54) : C8 reportée en B2 ; Q9 = 9 boutons. À rouvrir seulement si contredit.
## 7. PubCheck et fins de ligne
- Amont : § 3.7 (0 constat ; retours chariot 0).
- Présent fichier : écrit en un seul Write, fins LF attendues. PubCheck et comptage des retours chariot lancés après écriture ; résultat dans le compte rendu de remise (ce fichier ne peut pas le citer sans réécriture).
## 8. Témoin en jeu
La VAL est PASS (non PASS-STATIC) : les lignes suivantes sont données pour traçabilité.
Témoin en jeu : COMMUN-14.4 (V6a)
Témoin en jeu : COMMUN-14.5 (V6b)
Témoin en jeu : COMMUN-14.6 (V6c, partiel)
Témoin en jeu : COMMUN-14.7 (V6d)
Suite en jeu : COMMUN-14.4 PASS, .5 PASS, .6 PASS partiel, .7 PASS, .8 non joué, .9 non joué, .10 PASS partiel (2026-10-20 08:53)
## Écarts (numérotés)
- **E1** : étiquette du journal archivé (R5). `COMMUN-14.4-17_…0757.log` est la session de 08:46:15 ; la session de 07:57:50 est `LifePlay-backup-2026.10.20-06.46.10.log` (MD5 7D748AB0…), non archivée. Correction proposée (lp-writer ou Big Boss) : archiver la session de 07:57:50 sous `etat\BOSS\COMMUN-14\`, renommer ou annoter la copie de 08:46, corriger BILAN § 1 (journaux de jeu) et § 5.
- **E2** : « 313 710 octets » (TACHES, section « Essai COMMUN-14», l. 42-43) : aucun fichier de cette taille ; la fiche V6 reprend la même valeur. Correction proposée : retirer ou qualifier la valeur (orchestrateur).
- **E3** : BILAN § 5, « 0 : Error: » (R6). Correction proposée : lp-writer reprend § 5 avec la commande et la sortie, et nomme la signature ou cite la règle d'exclusion de EssaiJournal qui la retire.
- **E4** : IMPL v4, ligne « Tours » (§ 7) : placée avant « État de reprise », donc pas en dernière ligne avant Constats ; dénominateurs 50 et 75 (maxTurns) au lieu du budget de la rubrique 9 (N3 : 60). Correction proposée : déplacer la ligne et écrire le budget à la prochaine reprise.
- **E5** : TACHES, CG2-T3, colonne Tours : « 18 + 21 + 11 + 45 (déclarés) ». Le gabarit TACHES demande la mesure de FicheStats. Correction proposée : FicheStats à la clôture (orchestrateur).
- **E6** : IMPL § 1, C1 : précondition de suppression de VariableGet_25 non tracée (R4). Correction proposée : get_node_infos sur SL (VariableGet_25, IfThenElse_5) en fiche courte, ou réserve acceptée par l'utilisateur.
- **E7** : BILAN § 4, lignes « Suite en jeu » : non écrites dans les VAL (le gabarit BILAN § 4 demande au rédacteur de les ajouter ; la consigne du bilan dit le contraire). Correction proposée : orchestrateur ou lp-writer. Ce fichier porte la sienne (§ 8).
- **E8** (hors fiche) : extension ajoutée deux fois à l'enregistrement d'un préréglage (ERR-142, brouillon). Ce n'est pas un écart de VAL ; suivi en B2.
## Ce qui n'a pas été rejoué
- V2 et V3 (copie UE absente, MCP exclu) ; compilation, build et LPTestStringCompat (hors fiche).
- En jeu : C6 (créature absente), C8 (B2), Q8 (cas .9), V6e (cas .8).
- PubCheck et retours chariot du présent fichier (après écriture).
- SPEC § 1 à § 6 (inchangés par rapport à HEAD, hors fiche) ; CG2-CART-01 ; FicheStats.
## Fichiers à commiter
- A `Docs/Migration/etat/CG/CG2/CG2-VAL-01.md` : écrit par la VAL, non commité (gardien).
- État git constaté, non modifié par la VAL, à traiter par le gardien : M `Content/UI/CharGen.uasset`, `Content/UI/CharGenSlider.uasset`, `Content/UI/VisualMorph.uasset` ; M `Docs/Migration/etat/CG/CG2/CG2-SPEC-01.md` ; M `Docs/Migration/etat/CG/CG2/CG2-TACHES.md` ; ?? `Docs/Migration/etat/CG/CG2/CG2-IMPL-01.md` ; ?? `Docs/Migration/etat/CG/CG2/CG2-JOURNAL-BROUILLON.md`.
- Aucune commande git en écriture.
Tours : 9 / 20 (remise comprise)
## Constats
- MD5 du bilan (`Get-FileHash`) : D8EA376422EC40AA734DA3C15697AADE, égal à la base citée par TACHES (« MD5 d8ea3764 »). Ce n'est pas le MD5 d'un journal.
- Ligne « Suite en jeu » : identique à BILAN § 4 (l. 71 et l. 75).
- Doc 27 : aucun contenu de jeu cité. Boutons et morphs désignés par identifiant de nœud seulement.
- Incertitudes : origine de `InputMode:UIOnly` (R6), et présence de la même signature dans les sessions .1, .2 et .18 (comptes relevés, nature non détaillée). Non tranchées par cette VAL.