LifePlay-Revival/Docs/Migration/etat/OB/OBB/OBB-T1-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

15 KiB
Raw Permalink Blame History

Fiche OBB-T1v — Niveau N1 — Modèle prévu modèle de l'agent lp-validator | utilisé claude-sonnet-5-5 — Agent lp-validator — Skills sk-protocol, sk-recount, debug-verification, lp-validate, lp-doc (gabarit VAL lu dans gabarits.md)

OBB-T1-VAL : validation de B1 étapes 2 et 3 (dépôts git des modules hors de Content\Modules, core.worktree, contrôle de l'ordre imposé) (2026-10-10)

Validation en lecture seule : aucune écriture dans les git-dirs, les copies, les sauvegardes, les skills ; aucune écriture git ni config ; aucun gc, fsck ; aucun Unreal / UAT / UBT / commandlet lancé ; CheckIntegrity.ps1 -InitRef jamais lancé ; l'éditeur STE-GI n'a pas été touché. Scripts d'essai (scratchpad …\scratchpad\obb-t1v\) : git-checks.ps1, misc-checks.ps1 (lecture seule). Critères d'arrêt (un .git qui réapparaît, un HEAD qui diffère) : non atteints.

1. Fiches amont relues

  • D:\Game\LifePlay-master 5.8\Docs\Migration\etat\OB\OBB\OBB-T1-SPEC.md (lu en entier : § 3 procédure et piège, § 5 validation, § 6 ordre imposé).
  • …\OBB\OBB-T1b-IMPL.md (lu en entier, 138 lignes ; § 5 P1-P13 repris au § 2) et …\OBB\OBB-T1b-VAL.md (lu en entier, PASS ; son § 5 « non rejoué » et son § 6 repris au § 2 et § 6).
  • …\OBB\OBB-INT-R6.md (MOVE 5.8) et …\OBB\OBB-INT-R7.md (MOVE 5.5) : lus en entier ; leurs valeurs « photo après » sont recomptées au § 3, pas reprises. Tickets REPO\tickets\OBB-R6.md et OBB-R7.md : cités par les INT, non relus ligne à ligne (périmètre : les deux INT).
  • D:\Game\LifePlay-Sandbox\Tools\claude\skills\lp-paths\SKILL.md:58-73 (lignes 66-67 exécutées au § 3) ; gabarit VAL de lp-doc.
  • Conformité des INT au gabarit INT : INT-R6 a les sections 1 à 8 du gabarit (+ 9 à 11 en plus) ; INT-R7 a des sections numérotées 1 à 7 dont les titres diffèrent du gabarit INT (contrôles d'entrée et sorties brutes regroupés, « Tags et pin » fusionné en § 4, pas de section « Push » dédiée). Écart de forme mineur, sans effet sur le verdict (aucun commit ni tag dans ces tickets).
  • Commits amont (lecture git log) : jeu 5b34499 (OBB étape 1, CHG-304), addon 5.5 8b884a6, addon 5.8 247af5a : l'étape 1 est donc commitée ; git status du jeu n'a plus de M sur .gitignore ni sur Tools/CheckIntegrity.ps1.

2. Points à confirmer des IMPL

Points de OBB-T1b-IMPL.md § 5 (P1-P13), repris avec la décision de OBB-T1b-VAL.md ; rejoués ici quand l'état a changé (le git-dir existe maintenant).

Id Point Résultat Preuve
P1 Grep git -C.*Content[\\/]Modules (-i) = 0 sur les 4 chemins PASS (rejoué) outil Grep, mode count : LifePlay-Sandbox\Tools\claude 0, LifePlay-Sandbox-5.8\Tools\claude 0, LifePlay-master 5.8\Tools 0, LifePlay-master 5.5\Tools 0 ; en plus %USERPROFILE%\.claude\skills 0, …\agents 0, CLAUDE.md / AGENTS.md du jeu 5.8 : 0 ; copie 5.5 : ni CLAUDE.md ni AGENTS.md (ls). Couverture prouvée par des Grep positifs : git --git-dir = 3 occurrences dans chaque addon (2 fichiers : lp-paths, lp-repo) ; git = 22 occurrences dans 7 fichiers de master 5.8\Tools, 4 dans 2 fichiers de master 5.5\Tools, 16 dans 11 fichiers de …\.claude\agents. .claude\skills des deux copies = jonction vers D:\Game\LifePlay-Sandbox\Tools\claude\skills (ls -la), donc couverte par le Grep de l'addon
P2 même Grep sur %USERPROFILE%\.claude hors historique = 0 PASS pour skills et agents (périmètre de la fiche) ; brut .claude entier reporté brut (147 dans projects, file-history, E2 de l'IMPL, accepté par T1b-VAL) non rejoué, la fiche limite le Grep à skills et agents
P3 témoin non nul PASS avec écart de chemin (voir Constats 1) D:\Game\LifePlay_Backup_5.5\OBB-addon (2) n'existe pas (Grep : « Path does not exist ») ; les témoins existants sont OBB-addon = 2 (…\lp-paths\SKILL.md:66-67) et OBB-addon58 = 2 (…\lp-paths\SKILL.md:66-67), même motif, anciennes lignes git -C '…\Content\Modules' status --porcelain
P4 --git-dir inexistant : code 128 caduc (remplacé) le git-dir existe maintenant ; la même forme de commande rend le statut et le code 0 (§ 3, lp-paths:66-67)
P5 CheckIntegrity.ps1 -Modules : 1 écart sur 2053 (Clothes4.txt) PASS (rejoué, .git réellement absent) pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\CheckIntegrity.ps1" -Modules → ECHEC T-STAT-02 Modules = reference 5.8 : 1 ecart(s) sur 2053 / different : Content\Modules\Clothes4.txt, code 1
P6 faux projet : 143 → 1 écart reporté établi par T1b-VAL ; remplacé par l'exécution réelle de P5 (le vrai .git est absent : 2053 fichiers, même total) ; compte recoupé : Grep Content\\Modules\\\.git\\ dans ref_modules_5.8.csv = 142 lignes
P7 ParseFile = 0 erreur PASS (rejoué) [Parser]::ParseFile(…\Tools\CheckIntegrity.ps1…) → erreurs = 0
P8 deux exemplaires de lp-paths et lp-repo identiques PASS (rejoué) Get-FileHash -Algorithm MD5 : lp-paths 402232CF177BB4DFD8AFA8A930500EE5 des deux côtés ; lp-repo 38D90FE6BD81D459AA6B758D540758B1 des deux côtés
P9 seuls les 6 fichiers modifiés par T1b reporté (dépassé) T1b-VAL PASS ; les fichiers sont commités (8b884a6, 247af5a, 5b34499) ; git status --short des addons = vide (aucune ligne) ; les M du jeu sont ceux d'autres lots (liste au § 4)
P10 lp-paths:68 sans git -C PASS Grep git -C.*Content[\\/]Modules = 0 sur Sandbox\Tools\claude ; ligne 68 lue par T1b-VAL (SKILL.md:68 : « # modules : jamais sans --git-dir ; sans .git local, git remonte au dépôt du jeu … (OBB-T1) »), non relue ici : le Grep nul la couvre
P11 décision E1 (fins de ligne du .gitignore) reporté T1b-VAL PASS ; commité ; git status du jeu ne montre plus .gitignore
P12 décision E3 (| dans les cellules) reporté T1b-VAL PASS, non rejoué
P13 ref_modules_5.8.csv inchangée PASS (réserve) Get-Item : 222 357 o, 2026-10-08T23:04:41 (date de T1b-VAL inchangée) ; MD5 non recalculé (T1b-VAL : 8C1EB509…) : estimé
T1b-E7 contrôle --show-toplevel non ajouté aux skills : vérifier qu'il répond PASS § 3 : rev-parse --show-toplevel rend <copie>/Content/Modules avec --git-dir seul, dans les deux copies
T1b-VAL § 6 report du contrôle --show-toplevel sur <GITDIR> après le déplacement PASS (levé par ce VAL) idem
T1b-VAL § 5 comportement de CheckIntegrity -Modules après le vrai déplacement PASS P5

3. Critères rejoués

Commandes écrites dans scratchpad\obb-t1v\git-checks.ps1 (pwsh, git --git-dir=<GITDIR> --work-tree=<copie>\Content\Modules …), sortie lue en entier, code du script 0.

Critère Attendu 5.8 recompté 5.5 recompté Verdict
Test-Path -LiteralPath '<copie>\Content\Modules\.git' ; Get-Item -Force False ; null (ni dossier ni fichier) False ; <null> False ; <null> PASS
Recherche -Filter '.git*' -Recurse -Force sous Content\Modules 0 0 0 PASS
rev-parse HEAD ade587fc215af31de16707367448a294365082b9 ade587fc215af31de16707367448a294365082b9 ade587fc215af31de16707367448a294365082b9 PASS
-c core.fsmonitor=false --no-optional-locks status --porcelain 5.8 M Clothes4.txt ; 5.5 vide 1 ligne [ M Clothes4.txt] 0 ligne [] PASS
rev-list --all --count 115 115 115 PASS
rev-list --all --reflog --count 428 428 428 PASS
config core.worktree <copie>/Content/Modules D:/Game/LifePlay-master 5.8/Content/Modules D:/Game/LifePlay-master 5.5/Content/Modules PASS
config core.bare false false false PASS
rev-parse --show-toplevel avec --work-tree ; avec --git-dir seul <copie>/Content/Modules les deux : D:/Game/LifePlay-master 5.8/Content/Modules les deux : D:/Game/LifePlay-master 5.5/Content/Modules PASS
count-objects -v (lecture) — count 115, size 20, in-pack 14063, packs 1, size-pack 439864, prune-packable 0, garbage 0 identique relevé, identique des deux côtés
git-dir : fichiers / octets (Get-ChildItem -Recurse -Force -File) 142 ; 450 763 928 142 / 450 763 928 142 / 450 763 928 PASS (+56 o = ligne worktree de la config)
fichiers *.lock dans le git-dir 0 0 0 PASS
copie de sécurité OBB\modules-git-<v> : fichiers / octets 142 ; 450 763 872 142 / 450 763 872 142 / 450 763 872 PASS
lp-paths:66-67 copiées telles qu'écrites (commentaire fini compris) 5.8 M Clothes4.txt ; 5.5 vide ; code 0 sortie M Clothes4.txt, exit 5.8 = 0 sortie vide, exit 5.5 = 0 PASS
Piège (lecture) : git -C '<copie>\Content\Modules' rev-parse --show-toplevel racine du dépôt du jeu D:/Game/LifePlay-master 5.8 D:/Game/LifePlay-master 5.5 établi : -C répond pour le mauvais dépôt, d'où son interdiction
git -C <copie> status --short -- Content (dépôt du jeu) aucune ligne liée à Content/Modules 1 ligne M Content/UI/MainMenu.uasset (autre session, présente à l'ouverture de la session ; sans lien) 0 ligne PASS
git check-ignore -v Content/Modules/Clothes4.txt ignoré .gitignore:83:/Content/Modules/ .gitignore:77:/Content/Modules/ PASS
CheckIntegrity.ps1 -Modules (5.8) 1 écart sur 2053 1 ecart(s) sur 2053, different : Content\Modules\Clothes4.txt, code 1 — PASS
Ordre imposé, étape 3 : Grep git -C…Content[\\/]Modules 0 ; témoin non nul 0 sur tous les chemins demandés (§ 2 P1) ; témoin 2 + 2 (P3, chemin (2) inexistant) idem PASS (avec écart de chemin du témoin)
Ordre imposé, étape 3 : git --git-dir … status fonctionne oui oui oui PASS

Recomptes par autre méthode : INT-R6 annonce du -sb 5.8.git = 450 763 928 et find … -type f = 142 ; recompté en PowerShell (Get-ChildItem -Recurse -Force -File, somme des Length) : mêmes valeurs, pour 5.8 et 5.5 (INT-R7 : 450 763 928 / 142). Le recompte des .git du CSV (142) est fait par Grep, indépendant de find.

Relevé 5.5 demandé au point (b) de la fiche (sans rien modifier) :

  • D:\Game\LifePlay_Backup_5.5\ ne contient qu'une référence de modules : ref_modules_5.8.csv (5.8 ; 142 lignes Content\Modules\.git\…, déjà traitée par l'exclusion de CheckIntegrity.ps1 5.8). Aucun ref_modules_5.5.csv ni nom voisin (Glob **/ref_* : un seul fichier ; U4-REF55 ne contient aucun fichier *modules*).
  • Le Tools\CheckIntegrity.ps1 de la copie 5.5 (3 848 o, 2026-09-29, non modifié) ne lit pas de CSV pour -Modules : il compare Content\Modules de la copie à D:\Game\LifePlay-master 4.27\Content\Modules en direct (CheckIntegrity.ps1:54-60), -Force inclus. D:\Game\LifePlay-master 4.27\Content\Modules\.git n'existe pas (ls). Il n'y a donc pas d'écart attendu « 142 absent » : l'effet du déplacement est l'inverse (les 142 fichiers .git qui auraient figuré « en plus en 5.5 » ont disparu, estimé car l'état avant n'est pas rejoué). Rejoué : -Modules (5.5, lecture seule) → ECHEC T-STAT-02 Modules = 4.27 : 3 ecart(s) sur 2053 : different : Content\Modules\donors.txt, en plus en 5.5 : …\vin_Base\Hairstyles\vin_Base.lphair, en plus en 5.5 : …\vin_Base\Proximity\furniture.lpnear, code 1. Aucune ligne .git. Ces 3 écarts ne viennent pas du déplacement ; leur cause n'est pas examinée (hors périmètre ; incertain).

4. Diff lu en entier

Sans objet pour le code : cette fiche ne modifie ni ne produit de diff (VAL de déplacements de dossiers git et d'état). Les diffs de l'étape 1 ont été lus en entier par OBB-T1b-VAL.md § 4 (6 fichiers, +17/−11) et sont commités ; ici seul l'état est relu :

  • addons D:\Game\LifePlay-Sandbox et D:\Game\LifePlay-Sandbox-5.8 : git status --short = aucune ligne.
  • jeu 5.8 (git -C 'D:/Game/LifePlay-master 5.8' status --short, dernier relevé) : 28 lignes (11 M, 17 ??, wc -l / grep -c). Ligne liées à OBB : M OBB-TACHES.md, M REPO-JOURNAL.md, ?? OBB-INT-R3R5.md, OBB-INT-R6.md, OBB-INT-R7.md, tickets/OBB-R6.md, tickets/OBB-R7.md et le présent livrable (traces non commitées annoncées par les INT ; mon livrable est le seul fichier que j'ajoute). Autres lots : Content/UI/MainMenu.uasset, Content/BPs/GI.uasset (apparu après mon premier relevé de session, probablement l'éditeur / STE-GI, estimé), Docs/Migration/etat/{BOSS,ST}, Tools/uasset58.py. Aucun fichier de Content\Modules ni de git-dir n'y figure.
  • copie 5.5 : git status --short vide.
  • Arbres de travail Content\Modules : non modifiés par les déplacements (status 5.8 = 1 ligne attendue, 5.5 = 0).

5. Verdict

PASS. Motifs : pour les deux copies, .git absent (dossier et fichier), HEAD ade587fc215af31de16707367448a294365082b9, 115 commits, 428 avec reflog, status = valeurs attendues, core.worktree et core.bare corrects, --show-toplevel correct, git-dir 142 fichiers / 450 763 928 o et copie de sécurité 142 / 450 763 872 o, commandes de lp-paths:66-67 en code 0 avec les bonnes sorties, Grep = 0 avec témoin non nul, CheckIntegrity.ps1 -Modules (5.8) = 1 écart sur 2053.

Non rejoué ou reporté : Grep brut de %USERPROFILE%\.claude (historique, E2) ; faux projet P6 (remplacé par le cas réel) ; P11 / P12 / P9 (acceptés par T1b-VAL, commités) ; Tools\CheckPackage.ps1 et démarrage du build neuf (SPEC § 5, lignes 2 et 3 : OBB-T3 / OBB-T7, hors de cette fiche) ; cause des 3 écarts de CheckIntegrity 5.5 vs 4.27 (hors périmètre).

6. Points à confirmer par l'utilisateur

  • Témoin de l'étape 3 : accepter OBB-addon + OBB-addon58 (2 + 2) à la place de OBB-addon (2), dossier inexistant (la fiche citait un nom erroné ou un dossier renommé).
  • Les 3 écarts propres à la copie 5.5 de CheckIntegrity.ps1 -Modules (donors.txt, vin_Base.lphair, furniture.lpnear) : copie 5.5 gelée, ne pas corriger ; confirmer qu'ils sont connus (non liés à OBB).
  • Phrase d'accord de l'utilisateur pour le déplacement 5.5 : la SPEC (§ 6, étape 2) demande de la citer dans le ticket ; non relue ici (tickets non relus ligne à ligne) : à confirmer par l'orchestrateur avant l'annonce [OBB→BOSS] OBB-T1 FAIT.
  • Fiche DOC (docs 21, 27, 29) à lancer après cette VAL (SPEC § 4, dernière ligne).

Fichiers à commiter

Le validateur n'a modifié aucun fichier projet. Livrable :

  • jeu D:\Game\LifePlay-master 5.8 (ue5.8) : A Docs/Migration/etat/OB/OBB/OBB-T1-VAL.md

Tours : 15 / 40

Constats

  1. Témoin de la fiche : D:\Game\LifePlay_Backup_5.5\OBB-addon (2) n'existe pas ; ls "D:/Game/LifePlay_Backup_5.5/"OBB* → OBB, OBB-addon, OBB-addon58. Témoins pris : 2 + 2.
  2. Éditeur UE 5.8 : tasklist en début de relevé montrait UnrealEditor.exe PID 30840 ; Get-Process UnrealEditor* en fin de relevé ne rend rien (processus terminé entre-temps, non provoqué par moi).
  3. Piège établi : sans .git, git -C '<copie>\Content\Modules' rend la racine du jeu (D:/Game/LifePlay-master 5.8, …5.5) et, pour status, la sortie du dépôt du jeu (Content/Modules y est ignoré, .gitignore:83 / :77) : confirme le remplacement obligatoire des commandes (SPEC § 3).
  4. Forme d'INT-R7 : voir § 1 (titres de sections différents du gabarit INT).