Fiche AMEL1-W5 — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-writer — Skills sk-protocol, lp-doc, lp-lot # AMEL1-W5-TEXTES : `Tools/` du jeu 5.8 devient local et non suivi (textes proposés, 2026-10-14) Hors gabarit : ce livrable propose des textes (avant / après exacts), il n'en applique aucun ; rien n'est écrit dans un skill. Décision de l'utilisateur, relayée par Big Boss le 2026-10-14 : « on gitignore Tools. c'est un dossier pour Agent IA » ; choix « Ignorer + retirer de l'index » pour `Tools/` du jeu 5.8 (50 fichiers, CHG-357, ticket AMEL1-R6). Les scripts de `Docs/Migration/etat/` restent ignorés. Racine `SK` = `D:\Game\LifePlay-Sandbox-5.8\Tools\claude\skills`. Ne pas confondre : `Tools/` du **jeu** (concerné) et `Tools/` de l'**addon** (`D:\Game\LifePlay-Sandbox-5.8\Tools`, qui porte `claude/skills` et reste suivi dans l'addon). Les « Avant » sont recopiés des fichiers lus ce jour ; ancres à re-citer à l'écriture. ## 1. Fichiers écrits - `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL2\AMEL1\AMEL1-TEXTES-W5.md` (ce fichier, créé). Aucun autre. ## 2. Numéros utilisés (CHG, ERR, doc) sans objet : aucune entrée écrite ; CHG-357 est cité d'après la fiche (réservation par l'orchestrateur). ## 3. Index, plages et registre des reports mis à jour sans objet. ## 4. Écarts à la fiche Aucun écart de fond. Ajouts hors de la liste de la fiche : `sk-protocol` (piège de Grep depuis la racine, S-2), `lp-repo` § 10 (sens de `D`, R-5), `lp-doc` et `sk-repo` (D-1, D-2, phrases qui supposent git). À écarter si l'orchestrateur ne les veut pas. ## 5. Fichiers à commiter A `Docs/Migration/etat/EVAL2/AMEL1/AMEL1-TEXTES-W5.md` (dépôt du jeu 5.8). Aucun skill modifié. ## 6. À verser À verser : aucun. Tours : 9 / 30 ## Constats ### 0. Décision de l'utilisateur sur la sauvegarde (orchestrateur, 2026-10-14) — remplace « à définir » Décision : « Instantané complet TOOLS-REF ». Dans P-3 (`lp-paths`) et L-1 (`lp-lot`), le texte « à définir » devient : « Sauvegarde de `Tools/` du jeu : instantané complet `Snapshot.ps1 -Lot TOOLS-REF` pris après le retrait de l'index (CHG-357), dans `D:\Game\LifePlay_Backup_5.5\TOOLS-REF\` ; puis tout lot qui modifie un outil prend son instantané `Snapshot.ps1 -Lot ` avant d'écrire et cite le MD5 avant / après dans son livrable (retour arrière : `Restore.ps1`). » Fait le 2026-10-14 après le commit `072a6c8` (CHG-357) : `TOOLS-REF`, 50 fichiers, `manifest.csv` avec MD5. Ajout à P-3 (`lp-paths`), dépendance à protéger (vérifié par Big Boss, 2026-10-14) : « Le hook `.git/hooks/pre-push` du jeu (copie autonome) appelle `D:/Game/LifePlay-master 5.8/Tools/PubCheck.ps1` sur le disque (ou la variable `LP_PUBCHECK`) : ne pas déplacer ni renommer `Tools\PubCheck.ps1`. » Deux « À verser » de LANC1 (`etat\AG\LANC1\LANC1-DOC.md` § 6), proposés ici : - `sk-windows-shell` : « `Start-Process -ArgumentList` joint les éléments sans guillemets : un chemin avec espace doit y arriver déjà entouré de guillemets. » - `lp-mcp` § 2 : « Le lanceur HyperAIStudio (`.hyperai\scripts\Start-HyperAIStudioEditor.ps1`) est régénéré par le plugin : la voie headless est la voie officielle ; ne pas corriger le script généré. » ### A. Relevé (Grep `Tools[/\\]` dans les skills demandés) - `Tools/` du jeu : 50 fichiers encore suivis (`git ls-files Tools`, 50 lignes) ; `.gitignore` porte déjà `/Tools/` (l. 91, modification non commitée, `git diff --stat` : `1 insertion(+)`). Les fichiers restent sur disque ; ils sortent de l'index au ticket AMEL1-R6. - Sauvegarde : aucune copie complète de `Tools/` n'existe. Relevé de `D:\Game\LifePlay_Backup_5.5\` (354 entrées) : instantanés par lot de `Snapshot.ps1` (première version des fichiers touchés par le lot, `manifest.csv` avec MD5 ; ex. `AMEL1-OUTILS\` : `CopieEtat.ps1`, `EssaiJournal.ps1`, `EssaiJournal.regles.json`, `FicheStats.py`, `Indicateurs.py`) ; aucun dossier `Tools` complet. Autre filet : l'historique git local avant le commit de retrait (`git show :Tools/`, lecture seule). La phrase de sauvegarde ci-dessous écrit donc **« à définir »** (point à trancher : où poser une copie complète et à jour de `Tools/`). - Phrases qui supposent `Tools/` suivi par git (à remplacer) : `lp-paths` l. 14 (« `Tools` du jeu » dans le contenu du dépôt public) ; `lp-lot` l. 33-35 (retour arrière par git, « fichiers hors git ») ; `lp-validate` l. 17-22 (`git diff -avant -- `) et l. 41 (« Fichiers non suivis ») ; `sk-protocol` l. 83-86 (Grep depuis la racine saute les dossiers ignorés ; « le proposer pour `Tools/` ») ; `lp-repo` § 3, § 8, § 9 (`pre-push`), § 10 (sens de `D`) ; hors liste : `lp-doc` l. 34, `sk-repo` l. 101. Les autres occurrences (`.\Tools\Build.ps1`, `Snapshot.ps1`, `UeState.ps1`, `Verrou.ps1`, `PubCheck.ps1`, `Tools\anim` de l'addon…) sont des **usages locaux** des scripts : inchangées. --- ### lp-paths #### P-1. `SK\lp-paths\SKILL.md`, tableau « Dépôts git », ligne Jeu (l. 14), dernière cellule de contenu Avant (fragment de la ligne 14) : ```` C++ (`Source`, `Plugins/LPAnimCore`…), `Config`, `Docs`, `Tools` du jeu ```` Après : ```` C++ (`Source`, `Plugins/LPAnimCore`…), `Config`, `Docs` du jeu (`Tools/` est local et non suivi : voir « Ne se commit jamais ») ```` Motif : le dépôt public ne contient plus `Tools/` (CHG-357). #### P-2. `SK\lp-paths\SKILL.md`, ligne Addon (l. 15) Avant (fragment) : ```` atelier de mods (`Tools`, `ModSources`, `AnimSources`) ```` Après : ```` atelier de mods (`Tools` de l'addon, qui reste suivi dans l'addon et ne se confond pas avec `Tools/` du jeu ; `ModSources`, `AnimSources`) ```` Motif : lever la confusion entre les deux dossiers `Tools`. #### P-3. `SK\lp-paths\SKILL.md`, section « Ne se commit jamais (jeu, d'après `.gitignore`) », liste (l. 40-41) et paragraphe (l. 47) Avant (l. 40-41) : ```` `.claude/` et `.claude/settings.local.json`, `.mcp.json` (jeton), `Binaries`, `Intermediate`, `Saved`, ```` Après : ```` `.claude/` et `.claude/settings.local.json`, `.mcp.json` (jeton), `Tools/` (CHG-357), `Binaries`, `Intermediate`, `Saved`, ```` Avant (l. 47) : ```` Aucun contenu de jeu (noms, textes, assets) dans un skill, une fiche publiée ou un message de commit public. ```` Après (paragraphe ajouté à la suite) : ```` Aucun contenu de jeu (noms, textes, assets) dans un skill, une fiche publiée ou un message de commit public. **`Tools/` du jeu** (décision de l'utilisateur du 2026-10-14 : « on gitignore Tools. c'est un dossier pour Agent IA » ; CHG-357, ticket AMEL1-R6) : local, ignoré (`.gitignore`, `/Tools/`) et retiré de l'index. Un nouveau clone n'a pas les outils (`Build.ps1`, `Snapshot.ps1`, `PubCheck.ps1`…) : ils ne sont plus publiés. Sauvegarde : à définir (décision de l'utilisateur). Filets partiels existants : les instantanés `D:\Game\LifePlay_Backup_5.5\\` (`Snapshot.ps1` : première version des fichiers touchés par un lot, MD5) et l'historique git local jusqu'au retrait (`git show :Tools/`, lecture seule) ; aucune copie complète et à jour. `Tools/` de l'addon (`D:\Game\LifePlay-Sandbox-5.8\Tools`) reste suivi dans l'addon. ```` Motif : dire ce qui n'est plus publié et qu'aucune sauvegarde complète n'existe (à définir, signalé). --- ### lp-repo #### R-1. `SK\lp-repo\SKILL.md`, § 3 « Jamais commité (refus du ticket) » (l. 29-36) Avant (l. 30) : ```` `.claude/`, `.mcp.json` (jeton), `Docs/Migration/etat/` sauf `.md` et `.csv` (suivis en texte seul depuis ETAT3, ```` Après : ```` `.claude/`, `.mcp.json` (jeton), `Tools/` du jeu (local, ignoré, retiré de l'index : CHG-357), `Docs/Migration/etat/` sauf `.md` et `.csv` (suivis en texte seul depuis ETAT3, ```` Avant (fin du § 3, l. 35-36) : ```` jonction), `/ModSources/*/Content/`, `.cursor/`. Dépôt public : aucun contenu de jeu (noms, textes, assets) dans un fichier, un message de commit ou un tag. ```` Après : ```` jonction), `/ModSources/*/Content/`, `.cursor/`. Dépôt public : aucun contenu de jeu (noms, textes, assets) dans un fichier, un message de commit ou un tag. Le gardien ne commite plus rien sous `Tools/` du jeu : un ticket qui contient un tel chemin est refusé (statut `refusé (Tools/ non suivi)`, sans commit). Seule exception : le ticket AMEL1-R6 (CHG-357) qui retire les 50 fichiers de l'index. CHG et instantané (`Snapshot.ps1`) restent obligatoires quand on modifie un outil, mais il n'y a pas de commit (`lp-lot`). ```` Motif : décision du 2026-10-14. Hors texte : le garde-fou `hooks\pre-commit` (§ 9) doit refuser `Tools/` ; son fichier est à mettre à jour par un ticket CONFIG. #### R-2. `SK\lp-repo\SKILL.md`, § 8 « Gabarit de ticket » (l. 73-76) Avant : ```` Fichiers : M A D ```` Après : ```` Fichiers : M A D (jamais de chemin sous `Tools/` du jeu : ticket refusé, § 3) ```` #### R-3. `SK\lp-repo\SKILL.md`, § 9, garde-fou `pre-push` (l. 90) et § 10 (l. 123) Avant (l. 90) : ```` **Garde-fou `pre-push` (PUB3, installé le 2026-10-13)** : `Tools\hooks\pre-push` du jeu, copié dans `.git\hooks\` du ```` Après : ```` **Garde-fou `pre-push` (PUB3, installé le 2026-10-13)** : `Tools\hooks\pre-push` du jeu (local, non suivi depuis CHG-357 : sauvegarde à définir, `lp-paths`), copié dans `.git\hooks\` du ```` Avant (l. 123) : ```` - `.git\hooks` n'est emporté ni par un clone ni par une recopie du dépôt : réinstaller `pre-push` (ticket CONFIG). ```` Après : ```` - `.git\hooks` n'est emporté ni par un clone ni par une recopie du dépôt : réinstaller `pre-push` (ticket CONFIG). Sa source `Tools\hooks\pre-push` ne l'est plus non plus (`Tools/` local, CHG-357) : la reprendre de la sauvegarde ou de l'historique git local. ```` #### R-5. `SK\lp-repo\SKILL.md`, § 10, bullet « Suppression de fichier interdite » (l. 104) Avant : ```` - Suppression de fichier interdite (règles) : `D` d'un ticket = fichier déjà déplacé vers `LifePlay_Backup_5.5\`. ```` Après : ```` - Suppression de fichier interdite (règles) : `D` d'un ticket = fichier déjà déplacé vers `LifePlay_Backup_5.5\`. Exception : retrait de l'index d'un chemin devenu ignoré (CHG-357, `Tools/` du jeu, `git rm --cached`) : le fichier reste sur disque ; MD5 relevé avant et après. ```` Motif : le ticket AMEL1-R6 porte 50 `D` qui ne sont pas des suppressions. --- ### lp-lot #### L-1. `SK\lp-lot\SKILL.md`, « Avant toute modification », retour arrière par git (l. 33-35) Avant : ```` Retour arrière par git (`git revert`, ou fichiers repris du tag `-avant`) : ticket `RESTORE` au gardien, avec l'accord de l'utilisateur cité ; jamais de `git checkout` lancé par une autre session. - Les fichiers hors git (Content, Saved) n'ont que l'instantané comme filet. Copie jetable pour un test destructif. ```` Après : ```` Retour arrière par git (`git revert`, ou fichiers repris du tag `-avant`) : ticket `RESTORE` au gardien, avec l'accord de l'utilisateur cité ; jamais de `git checkout` lancé par une autre session. Un outil sous `Tools/` du jeu n'est pas suivi (CHG-357) : pas de `git revert`, retour arrière par `Restore.ps1`. - Les fichiers hors git (Content, Saved, `Tools/` du jeu) n'ont que l'instantané comme filet. Copie jetable pour un test destructif. - IMPL d'outil (`Tools\*.ps1`, `Tools\*.py` du jeu) : tracé par l'instantané (`Snapshot.ps1`, avant d'écrire), le CHG (retour arrière : `Restore.ps1 -Lot `) et le livrable IMPL (MD5 avant et après par `FileCheck.ps1`). Pas de commit ni de ticket au gardien : section « Fichiers à commiter » = `sans objet : outil local non suivi`. L'outil modifié n'est pas publié ; sa sauvegarde complète est « à définir » (`lp-paths`). ```` Motif : décision du 2026-10-14 ; indicateur visé : I10b (écritures sans instantané préalable, une zone sans autre filet). --- ### lp-validate #### V-1. `SK\lp-validate\SKILL.md`, § 1, bloc git (l. 17-22) puis bullet « Fichiers non suivis » (l. 41) Avant (fin du bloc, l. 21-22) : ```` git -C '' diff -avant -- # lu EN ENTIER, fichier par fichier ```` ```` ``` ```` Après (ligne ajoutée juste après la clôture du bloc) : ```` Un fichier sous `Tools/` du jeu n'est pas suivi (CHG-357) : `git status` et `git diff` ne le voient pas. Le comparer à l'instantané du lot : `FileCheck.ps1 -Lot -OnlyChanged` et `git diff --no-index `. ```` Avant (l. 41, début du bullet) : ```` - Fichiers non suivis (skills, agents) : comparer à l'instantané du lot, `git diff --no-index [--numstat] ```` Après : ```` - Fichiers non suivis (skills, agents, `Tools/` du jeu) : comparer à l'instantané du lot, `git diff --no-index [--numstat] ```` --- ### sk-protocol #### S-1. `SK\sk-protocol\SKILL.md`, § 7, bullet « Script à usage répété » (l. 86) Avant : ```` - Script à usage répété : pas dans le scratchpad ; le ranger dans `Saved//` ou le proposer pour `Tools/`. ```` Après : ```` - Script à usage répété : pas dans le scratchpad ; le ranger dans `Saved//` ou le proposer pour `Tools/` du jeu (local, non suivi depuis CHG-357 : instantané, CHG et livrable remplacent le commit). ```` #### S-2. `SK\sk-protocol\SKILL.md`, § 7, Grep depuis la racine (l. 83-85) — piège nouveau Avant : ```` `Plugins/McpAutomationBridge`, `Plugins/Marketplace` dont HyperAIStudio, `Saved`, `Content/Modules`, `Mods`, `Docs/Migration/etat`…) : les chercher en passant leur chemin en `path`. Aucun résultat depuis la racine ne prouve pas une absence (essai du 2026-10-09). ```` Après : ```` `Plugins/McpAutomationBridge`, `Plugins/Marketplace` dont HyperAIStudio, `Saved`, `Content/Modules`, `Mods`, `Docs/Migration/etat`, `Tools` du jeu depuis CHG-357…) : les chercher en passant leur chemin en `path`. Aucun résultat depuis la racine ne prouve pas une absence (essai du 2026-10-09). ```` Motif : `/Tools/` dans `.gitignore` : un Grep lancé depuis la racine du jeu ne regarde plus les scripts (zéro résultat trompeur). --- ### lp-build #### B-1. `SK\lp-build\SKILL.md`, § 1 « Les deux copies », après le bullet « Depuis U4… » (l. 19) Avant (l. 19) : ```` - Depuis U4, chaque copie a son addon : 5.5 → checkout `D:\Game\LifePlay-Sandbox` (`lot/DC3-atelier`), 5.8 → worktree `D:\Game\LifePlay-Sandbox-5.8` (`ue5.8`). Ne jamais pointer une copie vers l'addon de l'autre. ```` Après (bullet ajouté) : ```` - Depuis U4, chaque copie a son addon : 5.5 → checkout `D:\Game\LifePlay-Sandbox` (`lot/DC3-atelier`), 5.8 → worktree `D:\Game\LifePlay-Sandbox-5.8` (`ue5.8`). Ne jamais pointer une copie vers l'addon de l'autre. - `Tools/` de la copie 5.8 est local et non suivi (ignoré, CHG-357) : un nouveau clone n'a ni `Build.ps1`, ni `Engine.ps1`, ni les autres scripts de ce skill. Les reprendre de la sauvegarde (à définir, `lp-paths`) ; jamais `git checkout` ni `git restore` pour en retrouver un. ```` --- ### Phrases hors de la liste (même cause) #### D-1. `SK\lp-doc\SKILL.md`, § Journal, bullet « Retour arrière » (l. 34) Avant (première ligne) : ```` - Retour arrière : commande exécutable (`git revert` du commit du ticket `-R`, `.\Tools\Restore.ps1 -Lot `, ```` Après : ```` - Retour arrière : commande exécutable (`git revert` du commit du ticket `-R`, `.\Tools\Restore.ps1 -Lot ` ; pour un outil sous `Tools/` du jeu, non suivi, `Restore.ps1` seul, ```` #### D-2. `SK\sk-repo\SKILL.md`, ticket `RESTORE` (l. 101) Avant (première ligne) : ```` - `RESTORE` : instantané d'abord (`sk-change-safety`) ; `git revert ` de préférence, ou ```` Après : ```` - `RESTORE` : instantané d'abord (`sk-change-safety`) ; `git revert ` de préférence (aucun ticket `RESTORE` pour `Tools/` du jeu, non suivi : `Restore.ps1`), ou ```` ### Points à trancher 1. **Sauvegarde de `Tools/`** : « à définir ». Aucune copie complète et à jour n'existe (relevé de `D:\Game\LifePlay_Backup_5.5\`). Proposition à soumettre : un `Snapshot.ps1 -Lot TOOLS-REF -Path Tools -Recurse` après le ticket AMEL1-R6, puis refait à chaque version de référence. 2. **Hook `pre-commit`** (`lp-repo` § 9) et **hook `pre-push`** : à mettre à jour / réinstaller par ticket CONFIG (hors skills). 3. Les 50 `D` du ticket AMEL1-R6 : R-5 le traite comme exception à la règle « D = fichier déjà déplacé ». Retour arrière (après application) : instantané `Snapshot.ps1 -Lot AMEL1-W5 -ProjectRoot D:\Game\LifePlay-Sandbox-5.8 -Path ` avant d'écrire ; `git revert` du ticket pour les fichiers suivis ; `sk-protocol`, `sk-repo` et `sk-windows-shell` sont non suivis dans l'addon (instantané seul), leurs copies du profil `%USERPROFILE%\.claude\skills\` sont à redéployer (geste de l'utilisateur). Non mesuré : aucun effet sur les indicateurs (P4) ; l'état git des 50 fichiers et de `.gitignore` est celui de la lecture de ce jour.