LifePlay-Revival/Docs/Migration/etat/DOC/DOCMV/DOCMV-SPEC.md

113 lines
13 KiB
Markdown
Raw Permalink Normal View History

Fiche DOCMV-T2 — Niveau N2 — Modèle prévu orchestrateur (Opus 5.5) | utilisé Opus 5.5 (claude-opus-5-5) — Agent : session DOCMV — Skills lp-lot, lp-repo, lp-doc, sk-change-safety
# DOCMV-SPEC : monter le journal, le registre, l'index, les docs 01-32 et `correctifs\` de `Docs\Migration\` à `Docs\` (copie 5.8)
Entrée : `DOCMV-T1-INV.md` (inventaire chiffré) et `DOCMV-T1-references.csv`. CHG réservé : **CHG-300** (`NUMEROS.md`,
verrou 12). Copie : `D:\Game\LifePlay-master 5.8`, branche `ue5.8`. La copie 5.5 et la branche `main` ne bougent pas.
## 0. Décision utilisateur (2026-10-10, réponse à Big Boss)
« Déplacer dans Docs\ » ; « Assure-toi que la documentation trace ce changement ».
## 1. Périmètre
**Montent dans `Docs\` (41 fichiers)** : `Journal_Modifications.md`, `Registre_Erreurs.md`, `README.md`,
`01_Architecture_Initiale.md` à `32_Organisation_Agents.md` (35), et le dossier `correctifs\` avec ses 6 patchs
`P01_…patch` à `P06_…patch` (→ `Docs\correctifs\`, décision D1).
**Reste dans `Docs\Migration\`** : `etat\` seul (inchangé).
Collisions dans `Docs\` : **0** (T1 § 5 ; `Docs\correctifs` absent, vérifié le 2026-10-10). Aucun fichier écrasé : chaque
déplacement vérifie d'abord que la cible n'existe pas.
## 2. Points tranchés par l'utilisateur (2026-10-10, réponses à DOCMV)
| Id | Question | Réponse de l'utilisateur | Conséquence |
|---|---|---|---|
| D1 | `correctifs\` (6 patchs P01-P06, suivis par git) | « Il monte dans Docs\ » | `Docs\correctifs\` ; liens relatifs `correctifs/…` du README (l.49) et du doc 04 (l.67) restent justes ; à corriger : `05_Correctifs_Isoles.md` l.15 (`Docs/Migration/correctifs/` → `Docs/correctifs/`) ; journal l.44, 554 (entrées passées) et 13 mentions dans `etat` (archives) inchangés |
| D2 | 11 commentaires de ligne 1 dans `Source/LifePlay*/*.h` | « Laisser » | non corrigés (aucune recompilation) ; liste gardée dans l'EVAL, corrigés par le prochain lot qui touche ces en-têtes |
| D2-bis | 14 commentaires de code sous `Plugins\` non vus par T1 (dossier exclu de l'inventaire ; écart E1 de `DOCMV-VAL.md`) : jeu `Plugins/LPAnimCore/Source/LPAnimCore/LPAnimCore.Build.cs` l.1, `Plugins/ModdingExtra/Source/ModdingExtra/Private/LPDataCache.h` l.1 ; addon 5.8 `Plugins/LPSandbox/Source/**` (10 `.h`, `LPModTools.Build.cs` l.1, `LPSandbox.Build.cs` l.3) | « Laisser, comme D2 » (2026-10-10, question posée après la VAL) | non corrigés (aucune recompilation) ; listés dans l'EVAL avec les 11 en-têtes de `Source` ; les 12 mêmes lignes de l'addon 5.5 relèvent de D5 |
| D3-D4 | Archives : livrables des lots clos, tickets faits, entrées passées du journal | « Corriger les 2 liens seulement » | seuls `etat/U58/U1/U1-MODS-MOTEUR.md` l.5 et `etat/U58/UA/UA-MODS.md` l.4 : `../../../27_Plan_Migration_UE58.md` → `../../../../27_Plan_Migration_UE58.md` ; le reste intact (journal compris) ; la CHG-300 donne la table ancien → nouveau |
| D5 | addon55 (`LifePlay-Sandbox`, `lot/DC3-atelier`, sert la copie 5.5) hors skills | « Inchangé hors skills » | README, Docs, Tools de l'addon55 intacts ; ses skills (communs aux deux copies par la jonction) reçoivent le même texte que l'addon58, qui distingue les copies |
## 3. Préconditions (Big Boss : `GEL-GO <heure>`)
1. Gel annoncé par Big Boss à toutes les sessions : aucune écriture par une autre session sur les 41 fichiers, `README.md`
racine, les skills `lp-doc`, `lp-lot`, `lp-paths`, `lp-repo`, `lp-build` (deux addons), `~\.claude\agents\lp-writer.md`,
`CLAUDE.md`, `Tools/SplitModules.ps1`.
2. Commits faits avant le gel : `AG-R1`, `AG-R2` (+ `ETAT3-R3`, `ETAT3-R4` fusionnés), `AG-R3` (journal, README, doc 32,
`NUMEROS.md` avec la ligne CHG-300 : accord Big Boss), puis `OBB-R2` (entrée OBB au journal, `Tools/SplitModules.ps1`,
`Tools/BuildDebug.ps1`). Contrôle à l'entrée : `git status --short -- Docs/Migration/*.md Docs/Migration/correctifs
README.md Tools` vide ; `diff -rq` des deux dossiers de skills vide ; `git status --short` des deux addons vide sur
`Tools/claude/skills`.
3. D1-D5 tranchés : fait (§ 2).
## 4. Déroulé (après `GEL-GO`)
### S0 — Ticket `DOCMV-R1` (TAG) : tag annoté `DOCMV-avant` sur le HEAD du jeu, après AG-R3 et OBB-R2.
### S1 — Instantané (session DOCMV)
```powershell
.\Tools\Snapshot.ps1 -Lot DOCMV -Path Docs\Migration\Journal_Modifications.md, Docs\Migration\Registre_Erreurs.md, Docs\Migration\README.md, Docs\Migration\01_Architecture_Initiale.md, … (les 35), Docs\Migration\correctifs, README.md, Tools\BuildCollections.py, Tools\CheckIntegrity.ps1, Tools\ReimportCorrectif.ps1, Tools\SplitModules.ps1, Tools\debug\LifePlay_debug_ui.ps1, .cursor\skills\lifeplay-debug-build, CLAUDE.md, Docs\Migration\etat\U58\U1\U1-MODS-MOTEUR.md, Docs\Migration\etat\U58\UA\UA-MODS.md -Recurse
.\Tools\Snapshot.ps1 -Lot DOCMV -Path Docs\Journal_Modifications.md, … (les 35 cibles), Docs\correctifs # Existed=False attendu
.\Tools\Snapshot.ps1 -Lot DOCMV -ProjectRoot D:\Game\LifePlay-Sandbox-5.8 -Path Tools\claude\skills, README.md, Docs\SB-plan.md, Docs\SB0-conception.md, Docs\Modding\Creating_Asset_Mods.md, Tools\BuildMod.ps1, Tools\HairImportFbx.py, Tools\HairMaterials.py, Tools\HairPipeline.ps1, Tools\ModSource.ps1, Tools\Roots.ps1, Tools\anim\AnimPipeline.ps1 -Recurse
.\Tools\Snapshot.ps1 -Lot DOCMV -ProjectRoot D:\Game\LifePlay-Sandbox -Path Tools\claude\skills -Recurse
```
Hors dépôts (copie manuelle dans `D:\Game\LifePlay_Backup_5.5\DOCMV\hors-depot\`) : `~\.claude\agents\lp-writer.md`,
mémoire `docs-reference-5-8.md`. Liste exacte des 41 chemins : `DOCMV-IMPL.md`.
### S2 — Déplacement (système de fichiers ; l'historique est gardé par la détection de renommage de git, S7)
Pour chacun des 35 noms : `Test-Path Docs\<nom>` doit être faux (sinon **arrêt**, question à l'utilisateur), puis
`Move-Item Docs\Migration\<nom> Docs\<nom>`. Puis `Test-Path Docs\correctifs` faux → `Move-Item Docs\Migration\correctifs
Docs\correctifs`. Contrôle : 35 dans `Docs\*.md`, 6 dans `Docs\correctifs\`, 0 `.md` dans `Docs\Migration\`,
`Docs\Migration` = `etat` seul, MD5 des 41 avant = après. Contenu non modifié à cette étape.
### S3 — Corrections de références (Edit, jamais de script, `lp-doc`)
| # | Fichier (nouvel emplacement) | Correction |
|---|---|---|
| 1 | `README.md` racine | 12 liens l. 79, 106, 129, 153, 154, 164-168, 170, 192 : `Docs/Migration/X` → `Docs/X` (texte et cible) |
| 2 | `Docs/19_Plan_Outillage_Debug.md` | 7 liens l. 5, 75, 131, 132, 155, 171, 172 : `../../` → `../` |
| 3 | `Docs/22_Eval_Agents_Sandbox.md` l. 7 | lien `etat/sandbox/S8/S8-VAL.md` → `Migration/etat/sandbox/S8/S8-VAL.md` |
| 4 | `Docs/09_Commandes_Utiles.md` l. 92 ; `Docs/24_Plan_Decouplage_Sandbox.md` l. 409, 411 ; `Docs/32_Organisation_Agents.md` l. 274, 285 ; `Docs/05_Correctifs_Isoles.md` l. 15 | `Docs/Migration/NN…` → `Docs/NN…` ; `Docs/Migration/correctifs/` → `Docs/correctifs/` |
| 5 | `Docs/08_Guide_Developpeur.md` l. 37 (tableau des dossiers) | ligne `Docs/Migration` scindée : `Docs` (journal, registre, index, docs 01-32, `correctifs/`) et `Docs/Migration` (`etat/`) |
| 6 | `Docs/README.md` (index) | ligne `etat/` → `Migration/etat/` ; ligne `correctifs/` inchangée (reste juste) ; phrase de convention : « dans ces docs, `etat/…` désigne `Docs/Migration/etat/…` » ; plage du journal jusqu'à `CHG-300` |
| 7 | `Tools/BuildCollections.py` l.1, `CheckIntegrity.ps1` l.3, `ReimportCorrectif.ps1` l.3, `SplitModules.ps1` l.3 (après OBB-R2), `debug/LifePlay_debug_ui.ps1` l.1 | commentaire `Docs/Migration/NN` → `Docs/NN` |
| 8 | `.cursor/skills/lifeplay-debug-build/SKILL.md` l.18-19, `reference.md` l.80 (locaux, non suivis) | `Docs/Migration/NN` → `Docs/NN` |
| 9 | skills `lp-doc` l.3, 14, 22, 23, 35, 42, 46 ; `lp-lot` l.9 ; `lp-paths` l.32 ; `lp-repo` l.50, 55 ; `lp-build` l.112 — **deux addons, texte identique** | chemin de la copie 5.8 en premier, la copie 5.5 (figée) nommée à part. Ex. `lp-doc` l.14 : « Journal : `Docs/Journal_Modifications.md` (copie 5.8 ; copie 5.5 : `Docs/Migration/…`, figée) » ; l.22-23 : `Select-String -Path Docs/Journal_Modifications.md` / `Docs/Registre_Erreurs.md` (+ commentaire 5.5) ; `lp-paths` l.32 : « Docs de migration | `Docs\` (copie 5.8 : index `README.md`, journal, registre, docs 01-32, `correctifs\` ; copie 5.5 : `Docs\Migration\`) » ; `lp-repo` § 5-6 : `Docs/21_Sandbox_Addon.md`, `Docs/README.md`. Numéros de ligne à relire après AG-R1/R2 |
| 10 | addon58 hors skills : `README.md` l.5, 63, 78 ; `Docs/SB-plan.md` l.33, 79, 361 ; `Docs/SB0-conception.md` l.4 ; `Docs/Modding/Creating_Asset_Mods.md` l.107 ; 7 en-têtes de `Tools/` | `Docs/Migration/NN` → `Docs/NN` (rien dans addon55, D5) |
| 11 | `~\.claude\agents\lp-writer.md` l.3 | « docs numérotées `Docs/` (copie 5.8 ; `Docs/Migration` en 5.5) » |
| 12 | `CLAUDE.md` (local, exclu) | sous la ligne « Livrables… » (inchangée, `etat` ne bouge pas) : « Journal CHG, registre ERR, index README, docs 01-32 et `correctifs\` : `Docs\` (lot DOCMV, CHG-300) ; `Docs\Migration\` ne garde que `etat\`. » |
| 13 | mémoire `docs-reference-5-8.md` | l.17 : déplacement fait (CHG-300), `correctifs\` compris |
| 14 | `etat/U58/U1/U1-MODS-MOTEUR.md` l.5, `etat/U58/UA/UA-MODS.md` l.4 (D3) | `../../../27_Plan_Migration_UE58.md` → `../../../../27_Plan_Migration_UE58.md` |
Non corrigés (décisions D2-D5) : 11 en-têtes `Source`, archives `etat` (sauf S3-14), entrées passées du journal, addon55 hors skills.
### S4 — Trace documentaire (lp-writer ou session, Edit)
- `Docs/Journal_Modifications.md` : entrée **CHG-300** (lot DOCMV ; fichiers : 41 renommages + S3 ; raison : décision
utilisateur citée, D1-D5 cités ; avant → après : table ancien → nouveau chemin ; retour arrière : `git revert` du commit
`DOCMV-R4` ou `.\Tools\Restore.ps1 -Lot DOCMV`).
- `Docs/29_Projet_Stabilisation_V2.md` § « Dépôts, outils, livrables » : ligne de méthode « Journal, registre, index,
docs 01-32 et `correctifs\` : `Docs\` ; preuves de lot : `Docs\Migration\etat\` (DOCMV, CHG-300) » ; et une puce DOCMV au
point d'étape.
- `Docs/32_Organisation_Agents.md` § 9 : ligne de tableau « Journal, registre, index, docs numérotées | DOC | `Docs/` »
(en plus de la correction S3-4).
- `Docs/README.md` : S3-6. Pas de nouvelle ligne de doc (aucun numéro de doc créé).
- `DOCMV-EVAL.md` : comptes avant / après, exceptions, résidus D2, mesures de la session.
### S5 — Contrôles (session DOCMV, rejouables)
1. `ls Docs/*.md` = 35 ; `ls Docs/correctifs` = 6 ; `ls Docs/Migration` = `etat` seul.
2. Ré-exécution de l'inventaire T1 (35 noms + `correctifs`) : forme **path** `Docs/Migration/<un des 35>` ou
`Docs/Migration/correctifs` = 0 dans skills (deux addons), agents, `CLAUDE.md`, `Tools`, `.cursor`, `README.md` racine,
docs vivantes (35 sauf entrées passées du journal), addon58 ; restent seulement : 11 `Source/*.h` (D2), `etat` des lots
clos (D3), journal passé (D4), addon55 hors skills (D5).
3. Simulation des liens (`links.py`) sur l'état réel : 0 lien cassé créé par le lot (les 2 archives U1 / UA comprises).
4. `diff -rq` des deux dossiers de skills : vide.
### S6 — VAL (`lp-validator`, agent distinct, `sk-recount`) : recompte S5, lecture du diff complet, verdict `PASS-STATIC`
attendu ; livrable `DOCMV-VAL.md`.
### S7 — Tickets au gardien (R-REPO1 ; rien poussé)
| Ticket | Dépôt | Contenu |
|---|---|---|
| `DOCMV-R2` | addon58 `ue5.8` | M skills (5 fichiers) + 15 lignes hors skills (S3-10) ; message `DOCMV : chemins du journal, du registre et des docs 01-32 (Docs/ de la copie 5.8) (CHG-300)` |
| `DOCMV-R3` | addon55 `lot/DC3-atelier` | M skills (5 fichiers, même contenu que R2) |
| `DOCMV-R4` | jeu 5.8 `ue5.8` | `R` des 41 (`Docs/Migration/X` → `Docs/X`, `Docs/Migration/correctifs/P0n…` → `Docs/correctifs/P0n…`, contenu modifié par S3-S4), M `README.md`, M `Tools/*` (S3-7), M 2 archives (S3-14), A `etat/DOC/DOCMV/*.md`, `*.csv`, M `etat/REPO/NUMEROS.md`, `REPO-JOURNAL.md`, ticket ; **jamais** `Content/UI/MainMenu.uasset` ; contrôle exigé : `git show --stat -M <commit>` liste **41 renommages** (`R`), sinon refus et retour à l'orchestrateur |
Ordre : R2, R3, puis R4 (le message du jeu cite les tickets addon). `git log --follow Docs/<nom>` doit remonter avant le
commit pour les 40 fichiers anciens (32 : depuis AG-R3).
### S8 — Fin : `DOCMV-EVAL.md`, statut `utilisé` pour CHG-300 dans `NUMEROS.md`, message
`[DOCMV→BOSS] DOCMV FIN-LOT etat\DOC\DOCMV\DOCMV-EVAL.md` ; Big Boss contre-vérifie et annonce les nouveaux chemins.
## 5. Retour arrière (proposé, jamais lancé sans accord)
Avant commit : `.\Tools\Restore.ps1 -Lot DOCMV -WhatIf` puis `Restore.ps1 -Lot DOCMV` (les 41 cibles `Existed=False`
sont retirées vers `_avant-restauration`, les originaux reviennent dans `Docs\Migration\`). Après commit : ticket
`RESTORE` (`git revert` de R4, R3, R2) avec accord utilisateur cité.
## 6. Critères de fin
Les 41 fichiers dans `Docs\` avec historique (`git log --follow`) ; S5 sans écart ; CHG-300 écrit ; R2-R4 faits par le
gardien ; FIN-LOT reçu par Big Boss.