9.7 KiB
Plan d'exécution des commits par phase (COMMIT-PLAN)
Fiche CP-T1b — Modèle prévu sonnet | utilisé sonnet
Date : 2026-10-07. Lecture seule sur le dépôt D:\Game\LifePlay-master 5.5 (branche main, HEAD fba19bc) : aucune commande git d'écriture ; seuls COMMIT-PLAN.json, COMMIT-PLAN.md et gitignore.final ont été écrits. Entrée : Docs/Migration/etat/COMMIT-CART.md. Instantanés : D:\Game\LifePlay_Backup_5.5\<Lot>\.
Le plan exécutable est COMMIT-PLAN.json (même dossier). Sources : current = copie du dépôt, snap:<Lot> = D:\Game\LifePlay_Backup_5.5\<Lot>\<chemin>, content:commit_plan/gitignore.final = contenu final de .gitignore (le vrai .gitignore n'est pas modifié par ce plan).
1. Tableau des commits (ordre d'exécution)
| Id | Phase | CHG | Fichiers | Message |
|---|---|---|---|---|
| C0 | HYG | hors CHG | 1 (+163 suppressions déjà indexées, keep_staged) |
Hygiène du dépôt : journaux de lots et texture isolée hors suivi, règles .gitignore pour les assets d'animation lourds |
| C1 | Dbg | 114, 117, 118 | 20 | Dbg : outillage de debug (BuildDebug, LPDebugSubsystem, lanceurs, événements LoadTxt / LPDataCache), documents 18 et 19 |
| C2 | G6a | 115 | 3 | G6a : FindCenterOfPolygon rebranché dans GI, commandlet LPFixFindCenter |
| C3 | G6b | 116 | 3 | G6b : PreloadCityPackages au démarrage (LPDataCompat, LPModInfoSubsystem ; rattrape FindCenterOfPolygon et le renommage ModInfoCheckInterval) |
| C4 | PawnGlobal | 144 | 3 | PawnGlobal : Room::addObject bloque le canal Pawn, commandlet LPFixPawnResponse |
| C5 | PawnDyn | 145 | 1 | PawnDyn : Room::addObject passe les objets de Room en WorldDynamic, murs Wall1 à Wall4 |
| C6 | Proximité | 157, 166, 167 | 4 | Proximité : LPDirectControlSubsystem (marche ZQSD/WASD, touche E), DefaultInput, index furniture.lpnear |
| C7 | Clavier | 156, 164, 165 | 2 | Clavier : LPKeyboardSubsystem (bouton et panneau Clavier, touches dans Saved/Config/Windows/LPKeyboard.ini) |
| C8 | Réglages | 158..163 | 4 | Réglages : LPSettingsSubsystem (onglets, bouton titre) et LPColorGradeSubsystem (réglages vidéo couleur) |
| C9 | Sandbox/AnimToGenesis | 168..186 | 4 | Sandbox / AnimToGenesis : LPDirectControlSubsystem (mannequin Quaternius, copie vers Genesis), ImportQuaternius, DiagnosePose |
| C10 | AP1 | 205 | 2 | AP1 (reste) : profils de squelettes ue4_mannequin et genesis8 |
| C11 | AP4 | 208 | 1 | AP4 (reste) : RapportControles.py |
| C12 | AP5 | 209 | 10 | AP5 (restes) : animate() / LPModDailies, commandlet LPPatchDailies, Person, DeliverAnims, mod lpr_anim_quaternius |
| C13 | AP6 | 210, 211 | 47 | AP6 (restes) : catalogue des animations (Catalogue.py, pack.json, catalogue.html/json) et planches animées du mod Quaternius |
| C14 | AP7 | 221..224 | 84 | AP7 : pilote AnimPipeline, méthodes ue4/ue5/genesis_direct, identification du squelette, mod lpr_anim_freeanims, cuisson DLC (ProjectVersion 2026.10.1.6) |
| C15 | DOC-MOD | 225 | 3 | DOC-MOD : document 23 (cycle de vie d'un mod), ligne d'index README |
| C16 | DOC-MOD-2 | 226 | 2 | DOC-MOD-2 : cycle de vie d'un mod, § 2.4, 3.1 à 3.4, 5, 6 |
| C17 | DOC-MOD-3 | 227 | 2 | DOC-MOD-3 : cycle de vie d'un mod, § 2.6 et 7 schémas Mermaid |
| C18 | SB0 | 228 | 4 | SB0 : conception du sandbox addon (validation SB0, pin 3b21fd1) |
| C19 | SB1 | 229 | 7 | SB1 : registre des mods du sandbox (spécification, implémentation, build, validation ; pin 82dae58) |
| C20 | SB2 | 230 | 8 | SB2 : scène du sandbox (cartographie, implémentation, référence, validation ; pin fece7e9) |
| C21 | SB2-O1 | 231 | 4 | SB2-O1 : ShowRoom, correctif d'affichage de la chambre (pin 3d85852) |
| C22 | SB4 | 232 | 7 | SB4 : registre des mods dans LPPairSandbox (build, évaluation, validation ; pin 16905c6), cycle de vie § 7 |
| C23 | CP | hors CHG | 4 | CP : carte et plan des commits par phase |
Total : 24 commits. Entrées de fichier : 230 (156 chemins distincts, dont 1 .gitignore en content:).
C0 : .gitignore source content:commit_plan/gitignore.final (état courant + 9 lignes : /Content/FreeAnimationsPack/, /Content/Quaternius/, /Content/Retarget_ue5/, /Content/AnimPacks/, /Content/__ExternalActors__/, /Content/__ExternalObjects__/, __pycache__/ et 2 commentaires). Les 163 suppressions (162 Docs/Migration/etat/**/*.txt, Content/Characters/Textures/NormalMap.uasset) restent dans l'index, à ne pas réindexer.
2. Résultats des vérifications
Méthode : git status --short --untracked-files=all (837 lignes : 163 suppressions indexées + 674 autres) ; git check-ignore exécuté dans un dépôt temporaire (scratchpad\ignrepo) contenant gitignore.final comme .gitignore, sans toucher au vrai.
- (a) Dernière occurrence = état courant : OK, 0 écart (156 chemins ;
.gitignorefinit encontent:). Le dernier état de chaque fichier multi-phases (Journal, 21, S3-INT, 23, DeliverAnims., Catalogue.py, pack.json, RapportControles.py, planches/catalogue quaternius, Room.uasset, LPDirectControl, README) est biencurrent. - (b) Existence : OK, tous les
snap:<Lot>existent (Test-Path), toutes les sourcescurrentetcontent:existent. - (c) Doublons dans un même commit : OK, aucun.
- (d) Chemins exclus ou ignorés par
gitignore.final: OK, aucun chemin du plan n'est exclu (point 3) ni ignoré. Les planches.jpg(52 fichiers, 5,78 Mo) ne sont pas ignorées (seul*.pngl'est) ;Docs/Migration/etat/*.mdetcommit_plan/*non plus. - (e) Couverture du
git status: OK, restes = 0. Répartition : 163 suppressions indexées (C0), 156 dans le plan, 11 exclus, 507 ignorés pargitignore.final. - Dossiers visés par
git check-ignore -v(gitignore.final) :Content/FreeAnimationsPack/(l. 59),Content/Quaternius/(60),Content/Retarget_ue5/(61),Content/AnimPacks/(62),Content/__ExternalActors__/(64),Content/__ExternalObjects__/(65),Tools/__pycache__/(__pycache__/, 66),Content/Characters/(56),Docs/Migration/etat/**/*.txt(53) : tous ignorés. Les 507 fichiersContent/...non suivis dugit statussont tous couverts. - Vérifié en plus : les 3 fichiers de
ModSources/lpr_anim_quaternius(uplugin, CREDITS, lpmod) sont identiques entre instantané AP7 et état courant (donc sourcecurrenten C12 sans perte). Le seul état intermédiaire retiré par déduplication :Tools/anim/DeliverAnims.pyen C13 (identique à celui de C12). Les planches.jpgetcatalogue.*quaternius diffèrent entre fin AP6 (snap:AP7) et courant, donc présents en C13 (snap) et C14 (current).
3. Notes
- Fichier partagé entre phases sans instantané intermédiaire : en entier dans la dernière phase qui l'a modifié.
Source/LifePlay/LPDataCompat.h/.cpp(G6a + G6b) : en entier en C3 (G6b). C2 (G6a) isolé :LPFixFindCenterCommandletdépend deLPDataCompat, il peut ne pas compiler seul.Source/LifePlay/LPModInfoSubsystem.cpp(Dbg + G6b) : en entier en C3 (G6b) ; le commit Dbg n'a pas le renommageModInfoCheckInterval.Docs/Migration/08_Guide_Developpeur.md: en entier en C1 (Dbg) ; il contient aussi le paragraphe IoStore « depuis le lot O2 » (décision 4).README.md: C1 = instantanéDOC-MOD(lignes 18 et 19) ; C15 = état courant (ligne 23 ajoutée).LPDirectControlSubsystem.h/.cpp: C6 =snap:AnimToGenesis; C9 = courant.Room.uasset: C4 =snap:PawnDyn; C5 = courant.Journal_Modifications.md,21_Sandbox_Addon.md,S3-INT.md,23_Cycle_De_Vie_Mod.md: chaîne d'instantanés de l'AP7 au SB4, dernier état = courant en C22.S3-INT.mden C18 (SB0) est déduit de l'instantané SB1 (fiable mais déductif). AP7 ne modifie pasS3-INT.md.DeliverAnims.ps1/.py: C12 =snap:AP6; C13 =snap:AP7(.ps1) ; C14 = courant.Catalogue.py,AnimSources/quaternius/pack.json: C13 =snap:AP7; C14 = courant.RapportControles.py: C11 =snap:AP7; C14 = courant.
- Phases sans commit (aucun fichier restant) : AP2, AP3, PairCap, PairCap2, PairCol, ShowCouple, PoseMeasure, S0 à S8 (CHG-119..155, 187..220 hors AP1/AP4/AP5/AP6), H3, UI, O et lots antérieurs : tout est déjà dans HEAD ou hors suivi. Les fichiers mod-AP des phases AP2/AP3 (
LPAnimEval/Twist) sont tous dans AP7.LifePlay.uprojectest dans C14 (AP7) selon la décision 4. - Attributions probables (cart) :
LPAnimEval/Twist .h,LPAnimMethodSelect.h(AP7) ;RapportControles.py(AP4) ;ImportQuaternius.py,DiagnosePose.py(Sandbox/AnimToGenesis). - Exclus de tous les commits, fichiers conservés sur disque (11 chemins) :
Docs/Migration/24_Plan_Decouplage_Sandbox.md,Docs/Migration/etat/sandbox/DC0/DC0-CART.mdetDC0-SPEC.md(session DC0),Tools/anim/21_Sandbox_Addon.md,Tools/anim/Journal_Modifications.md,LPSandboxMeasure.cpp,LPSandboxMeasureTour.cpp,Tools/__pycache__/RetargetQuaternius.cpython-314.pyc(ignoré), et.cursor/(3 fichiers :plans/controles_et_interaction_bd9e495b.plan.md,skills/lifeplay-debug-build/SKILL.mdetreference.md) : outil d'éditeur, comme.claude/, à signaler à l'utilisateur et non commité (la carte CP-T1 les rattachait à Dbg et Proximité). - Dernier commit C23 (CP) :
COMMIT-CART.md,commit_plan/COMMIT-PLAN.json,COMMIT-PLAN.md,gitignore.final. Si ces fichiers sont modifiés après la vérification, relancer le contrôle (e). - Cohérence de compilation non vérifiée (aucune compilation). Les commits intermédiaires Dbg et G6a peuvent ne pas être « construisibles » seuls (voir ci-dessus) ; l'état final (C23) est identique à l'état courant.
- Après C23,
git status --shortne doit montrer que : les 11 exclus ci-dessus et les 507 fichiers Content ignorés n'apparaissent pas (ignorés) ; seuls restent visibles les exclus non ignorés (.cursor/, DC0,Tools/anim/*,LPSandboxMeasure*.cpp).