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

9.4 KiB

Fiche OBB-T1-SPEC — Niveau N2 — Modèle prévu claude-opus-5-5 | utilisé claude-opus-5-5 — Agent orchestrateur (session « OBB ») — Skills sk-orchestrate, lp-lot, sk-change-safety

OBB-T1-SPEC : B1, dépôt git de Content\Modules hors de l'arbre (P1-b, core.worktree) (2026-10-10)

Statut : rédigée, non exécutable en l'état (OBB-T1 suspendue par arbitrage Big Boss, etat\BOSS\BOSS-JOURNAL.md). Aucune modification faite par cette SPEC. Entrées : OBB-T1a-INV.md (accepté), etat\OB\OBA\OBA-T5-EVAL.md § 1 B1, OBA-T23-PROJ-CART.md A10. Décision utilisateur : G-OB-3 = P1 variante b + garde-fou P2 (OBB-TACHES l. 3-6).

1. Conditions d'entrée (toutes requises)

# Condition Contrôle
E1 Tickets ETAT3-R3 / ETAT3-R4 commités (skills lp-paths, lp-repo des deux addons propres) et FIN-LOT de DOCMV, qui gèle ensuite ces deux skills (Big Boss, 2026-10-10) git -C D:\Game\LifePlay-Sandbox status --short -- Tools/claude/skills/lp-paths Tools/claude/skills/lp-repo vide ; idem LifePlay-Sandbox-5.8
E2 Emplacement <GITDIR> choisi par l'utilisateur (§ 2) citation de l'accord dans le ticket
E3 Copie 5.5 (gelée) : accord explicite de l'utilisateur, demandé par Big Boss accord transmis par Big Boss (2026-10-10) : « approuvé pour OBB » (déplacement de Content\Modules\.git 5.5 vers D:\Game\LifePlay_ModulesGit\5.5.git) ; à confirmer par l'utilisateur dans la session OBB avant le ticket 5.5 ; prévenir Big Boss avant d'agir (hors file : ne touche pas la copie UE 5.8)
E4 Copie 5.8 : BUILD-GO de Big Boss (le déplacement touche Content\) ligne du BOSS-JOURNAL.md
E5 Dépôt Modules dans un état normal : pas d'index.lock, MERGE_HEAD, rebase ; aucun UnrealEditor / LifePlay lancé Test-Path, Get-Process

2. Emplacement du git-dir (décision utilisateur)

Décision utilisateur (2026-10-10) : option A, « LifePlay_ModulesGit (Recommandé) » → <GITDIR_5.8> = D:\Game\LifePlay_ModulesGit\5.8.git, <GITDIR_5.5> = D:\Game\LifePlay_ModulesGit\5.5.git. Condition E2 remplie.

Option Chemins Pour Contre
A (recommandée) D:\Game\LifePlay_ModulesGit\5.8.git, D:\Game\LifePlay_ModulesGit\5.5.git hors des deux copies, hors de Content, hors des builds ; nommage des dossiers voisins (LifePlay_Backup_5.5, LifePlay_Build_…, LifePlay_Publication) ; même volume D: (déplacement = renommage, sans recopie) un dossier de plus à sauvegarder
B D:\Game\LifePlay-master 5.8.modules.git (et 5.5) à côté de chaque copie mêmes avantages, nom moins lisible
C sous D:\Game\LifePlay_Backup_5.5\ déjà sauvegardé mélange un dépôt vivant avec les instantanés (que Restore.ps1 lit) : rejetée

D: : 2,46 To libres (T1a § D) ; aucun dossier candidat n'existe déjà.

3. Procédure par copie (ticket MOVE au gardien ; 5.8 d'abord, 5.5 ensuite si E3)

  1. Photo avant (lecture) : git -C <copie>\Content\Modules rev-parse HEAD ; git -C … --no-optional-locks status --porcelain (5.8 attendu : M Clothes4.txt, 1 ligne, à conserver tel quel) ; git -C … rev-list --all --reflog --count (428) ; du -sb <copie>\Content\Modules\.git (450 763 872 o).
  2. Copie de sécurité (sk-change-safety) : robocopy <copie>\Content\Modules\.git D:\Game\LifePlay_Backup_5.5\OBB\modules-git-<5.8|5.5> /E /COPY:DAT puis compte de fichiers et d'octets égaux (142 fichiers, 450 763 872 o).
  3. Déplacement : Move-Item -LiteralPath '<copie>\Content\Modules\.git' -Destination '<GITDIR>' (même volume).
  4. Configuration : git --git-dir='<GITDIR>' config core.worktree '<copie>/Content/Modules' ; git --git-dir='<GITDIR>' config core.bare = false.
  5. Photo après : Test-Path -LiteralPath '<copie>\Content\Modules\.git' = False (dossier et fichier) ; git --git-dir='<GITDIR>' --work-tree='<copie>\Content\Modules' rev-parse HEAD = étape 1 ; status --porcelain identique octet pour octet à l'étape 1 ; rev-list --all --reflog --count = 428 ; git -C <copie> status --short (dépôt du jeu) identique à avant.
  6. Retour arrière (proposé, jamais lancé sans accord) : git --git-dir='<GITDIR>' config --unset core.worktree puis Move-Item '<GITDIR>' '<copie>\Content\Modules\.git' ; la copie de l'étape 2 reste le filet.

Piège établi par lecture (nouveau) : sans .git dans Content\Modules, git -C <copie>\Content\Modules … remonte au dépôt du jeu (<copie>\.git), où /Content/Modules/ est ignoré (.gitignore:83 5.8, :77 5.5). Une commande oubliée ne échoue donc pas : elle répond pour le mauvais dépôt (status vide, log du jeu). Toute commande sur les modules doit passer par --git-dir/--work-tree ; le remplacement des 4 lignes de lp-paths est obligatoire, pas cosmétique. Contrôle conseillé dans lp-paths : git --git-dir=<GITDIR> rev-parse --show-toplevel doit rendre <copie>/Content/Modules.

4. Remplacements (fiche lp-impl après E1 ; liste exhaustive de OBB-T1a-INV.md § 5)

Fichier Lignes Changement
D:\Game\LifePlay-Sandbox\Tools\claude\skills\lp-paths\SKILL.md (sert les deux copies par la jonction .claude\skills, T1a) et l'exemplaire LifePlay-Sandbox-5.8 16, 66, 67 forme git --git-dir=<GITDIR_x> --work-tree='<copie>\Content\Modules' status --porcelain ; ligne 16 : « git-dir hors arbre <GITDIR> »
…\skills\lp-repo\SKILL.md (deux exemplaires) 18 « git-dir local <GITDIR> hors arbre (un par copie) »
.gitignore 5.8 :82 ; 5.5 :76 (5.5 : seulement si E3) commentaire « modules de jeu dans un dépôt local séparé (git-dir hors arbre <GITDIR>, OBB) » ; la règle /Content/Modules/ reste
Tools\CheckIntegrity.ps1 (5.8) Hash-Tree :35 décision de lot : la référence D:\Game\LifePlay_Backup_5.5\ref_modules_5.8.csv contient 142 lignes Content\Modules\.git\… ; après le déplacement, -Modules signalera 142 fichiers absents. Recommandé : exclure \.git\ des deux côtés de la comparaison (référence conservée, la modification CHG-287 de Clothes4.txt reste visible). Alternative : -InitRef (efface aussi l'écart Clothes4.txt). Script partagé : à déclarer à Big Boss avant écriture
Docs/Migration/21_Sandbox_Addon.md:227, 27_Plan_Migration_UE58.md:59, 29_Projet_Stabilisation_V2.md:317 descriptions fiche DOC (lp-writer) après la VAL, avec l'entrée CHG

Hors périmètre : Config/DefaultGame.ini:74 (DirectoriesToAlwaysStageAsNonUFS=(Path="Modules")) reste inchangé ; les lignes historiques du Journal ne sont pas réécrites.

5. Validation (fiche VAL distincte, lp-validator)

  • Étape 5 de § 3 rejouée sur chaque copie traitée ; CheckIntegrity.ps1 -Modules : 0 écart hors Clothes4.txt (si l'option recommandée de § 4 est retenue).
  • Tools\CheckPackage.ps1 (OBB-T3) sur le build neuf d'OBB-T7 : contrôle (1) PASS, 0 ligne Modules/.git au manifeste NonUFS.
  • Démarrage du build neuf et S2 sans erreur nouvelle (L12 : P1-b ramène l'état sans .git de V1.5 et DC4 ; les appelants Blueprint de GetAllFilesFromFolder n'ont pas besoin d'être établis pour ce retour à l'état antérieur).

6. Ordre imposé (arbitrage Big Boss, 2026-10-10, sur cette SPEC)

  1. Remplacements d'abord (§ 4) : skills et scripts passent à git --git-dir=<GITDIR> --work-tree=<copie>\Content\Modules explicites, avant le déplacement ou dans le même commit. Pendant la fenêtre, le <GITDIR> n'existe pas encore : une commande échoue bruyamment (« not a git repository ») au lieu de répondre pour le dépôt du jeu.
  2. Déplacement ensuite (§ 3) : copie 5.8 sous BUILD-GO ; copie 5.5 sur accord de l'utilisateur, phrase exacte citée dans le ticket (aucun accord obtenu à ce jour). Après la levée du gel DOCMV, refaire le Grep de T1a avant les remplacements : DOCMV change aussi des chemins dans lp-paths et lp-repo (Big Boss, 2026-10-10) ; la liste de § 4 n'est valable qu'après ce nouveau relevé.
  3. Contrôle : Grep git -C + Content[\\/]Modules dans D:\Game\LifePlay-Sandbox\Tools\claude, D:\Game\LifePlay-Sandbox-5.8\Tools\claude, %USERPROFILE%\.claude et Tools des deux copies = 0 occurrence (témoin non nul : le même Grep avant les remplacements = 4) ; git --git-dir=<GITDIR> --work-tree=… status fonctionne.
  4. Annonce : [OBB→BOSS] OBB-T1 FAIT ; Big Boss diffuse à toutes les sessions.

CheckIntegrity.ps1 (§ 4) : accordé par Big Boss ; avant écriture, lui déclarer les lignes modifiées et les appelants du script (Grep dans Tools et dans les skills). Skills modifiés seulement après le commit d'ETAT3-R3/R4 (session « AR »).

7. Découpage prévu

Fiche Agent Copie UE Dépend de
OBB-T1b (remplacements § 4, étape 1) lp-impl non E1 ; déclaration CheckIntegrity.ps1 à Big Boss
OBB-R2 (ticket COMMIT d'OBB-T1b, après VAL statique) lp-gardien non OBB-T1b
OBB-R3 (ticket MOVE 5.8, étape 2) lp-gardien oui (BUILD-GO, Content\) E2, E4, E5, OBB-R2
OBB-R4 (ticket MOVE 5.5) lp-gardien non (copie 5.5) E3, OBB-R3 vérifié
OBB-T1v (VAL § 5 et contrôle de l'étape 3) lp-validator non OBB-R3 (et R4 si fait)
OBB-T7 (build, contrôles, démarrage) lp-builder + lp-validator oui (BUILD-DEMANDE) OBB-T1v, OBB-T3v

Numérotation des tickets indicative : OBB-R2 peut revenir au premier COMMIT d'OBB-T3 selon l'ordre réel.