Fiche UES1-IMPL-01 — Niveau N2 — Modèle prévu opus | utilisé claude-opus-5-5 — Agent session UES1 (Big Boss) — Skills lp-lot, lp-mcp, lp-doc # UES1-IMPL-01 : recyclage du plugin Epic dans les skills, les agents et un hook (2026-10-15) SPEC : `etat\SK\SK-REVUE-unreal-engine-skills.md` § 3-4, approuvée (« approuve tout »). Couvre aussi UES1-IMPL-02 (fichiers du profil préparés dans le lot). ## 1. Fichiers modifiés Addon 5.8, `D:\Game\LifePlay-Sandbox-5.8\Tools\claude\skills\` (MD5 avant → après, lignes après, hunks contre l'instantané) : | Fichier | Avant | Après | Lignes | Hunks | Idée | |---|---|---|---|---|---| | `lp-mcp/SKILL.md` | `243CB0F9…` | `b23d9235…` | 72 | 3c3, 9c9, 39a40-44, 54a60-61, 64a72 | A3 (description), source, A2 (« Panne du serveur »), A1 (« Succès explicite seulement »), renvoi B1/B2 | | `lp-mcp/LICENSE` | absent | `357be8b6…` | — | nouveau | R4 : avis MIT d'Epic, révision `a6aa73a…`, parties reformulées | | `lp-mcp/references/toolset.md` | absent | `fb767135…` | 45 | nouveau | B2 (règles d'un jeu d'outils), B1 (tests par MCP et en ligne de commande) | | `lp-commandlets/SKILL.md` | `F7B48C57…` | `c81c0bbb…` | 67 | 3c3, 65a66-67 | A3, A5 (stub Python) | | `lp-doc/SKILL.md` | `7CB4CD4A…` | `360ece18…` | 92 | 71a72-76 | A4 (« Rédiger un skill ») | | `lp-validate/SKILL.md` | `6898D24A…` | `a2b8b270…` | 145 | 3c3, 92a93 | A3, B1 (renvoi d'une ligne) | | `lp-build/SKILL.md` | `AE519721…` | `f13d456d…` | 161 | 3c3 | A3 | | `lp-repo/SKILL.md` | `22C25E13…` | `7f09619c…` | 133 | 3c3 | A3 | Jeu : `Docs\Migration\etat\SK\SK-ARBRE.md` `93F15087…` → `d2a01993…`, hunk `331a332` (R13, A4). Profil, préparés dans `etat\SK\UES1\profil\` (copie par l'utilisateur, § 4) : | Fichier préparé | MD5 | Destination | MD5 actuel de la destination | |---|---|---|---| | `lp-mcp.md` | `a01c5ae0…` | `%USERPROFILE%\.claude\agents\lp-mcp.md` | `0975d466…` | | `lp-mcp-bp.md` | `867936d7…` | `%USERPROFILE%\.claude\agents\lp-mcp-bp.md` | `88978aa9…` | | `etat-session.py` | `691c0a1c…` | `D:\Game\LifePlay-master 5.8\.claude\hook\etat-session.py` | absent | | `settings.json` | `e78c9d6c…` | `D:\Game\LifePlay-master 5.8\.claude\settings.json` (projet, ignoré par git) | `bd3f70ad…` | Hook B3 essayé : sortie `État LifePlay au démarrage : MCP 8000 fermé, éditeur fermé, verrou du dépôt libre, jeton UE libre, jeton du journal libre (BOSS-ETAT, peut dater).`, code 0, 911 ms ; hors du projet : sortie vide, code 0. JSON en échappements `\uXXXX` (la console cp1252 abîmait les accents au premier essai). ## 2. Écarts à la SPEC - A1 placé en § 3 (« Pièges d'appel ») et non dans la règle 3 du § 1 : le § 1 s'intitule « Les 10 règles (doc 29, inchangées) ». - A3 : clause posée du seul côté `lp-*` (couche 1-2 `sk-*`, `ue-cpp-build`, `debug-verification` non touchée, R11) ; `lp-mcp` reçoit aussi une ligne `Triggers -` (absente avant). - B3 : le hook va dans les réglages **du projet** (`.claude\settings.json`, ignoré par git) et non dans le profil : il ne sert que LifePlay ; il se tait aussi hors de la racine du projet. - Écart de méthode : la modification de `lp-mcp/SKILL.md` a été faite par un heredoc Python (interdit par `lp-lot`, indicateur I15). Les suivantes par l'outil Edit. Résultat contrôlé (CR = 0, hunks attendus). ### Correctifs après UES1-VAL-01 (FAIL C5, réserves) - `profil\lp-mcp.md` l. 15 : chemin du profil hérité, nom de compte remplacé par `` (PubCheck) ; MD5 `a01c5ae0…` → `a4f5c58c…` ; la commande de copie de `UES1-GESTES.md` rétablit le nom (MD5 attendu à destination `a01c5ae0…`). - `profil\lp-mcp-bp.md` : la phrase « Chaque résultat d'écriture se lit… » (A1) fait partie du hunk ; annonce corrigée. - `lp-mcp/LICENSE` `357be8b6…` → `16794ad8…` (29 lignes) : nomme aussi A4 (`lp-doc`, R13) et A5 (`lp-commandlets`). - `lp-mcp/SKILL.md` `b23d9235…` → `f552eae1…` : `Triggers -` sans le mot nu « toolset » (risque « toolset MSVC » de `lp-build`, RECH-01) → `ToolsetRegistry, jeu d'outils MCP`. - `lp-doc/SKILL.md` `360ece18…` → `e307d768…` : description étendue à « rédiger ou relire un skill » (RECH-01 : section sinon inatteignable) ; hunk `3c3` en plus. - `settings.json` du lot : le fichier actuel ne contient que `enabledPlugins`, repris à l'identique → la copie fusionne. - UES1-IMPL-02 : pas de livrable à part, couvert ici et par `UES1-GESTES.md`. ## 3. Instantané `D:\Game\LifePlay_Backup_5.5\UES1-addon58\manifest.csv` (6 SKILL.md + 2 chemins `Existed=False` : `lp-mcp\LICENSE`, `lp-mcp\references\toolset.md`) ; `D:\Game\LifePlay_Backup_5.5\UES1\manifest.csv` (`SK-ARBRE.md`). Copie de référence du plugin : `D:\Game\LifePlay_Backup_5.5\UES1\unreal-engine-skills-3.1.1\MD5.txt`. ## 4. Ce qui n'a pas été fait - Copies du profil et du projet (§ 1, tableau Profil) : geste de l'utilisateur. - A5 : mode développeur Python et génération du stub → UES1-BUILD-01 (`BUILD-GO`). - RECH-01 (scénarios R8 pour A3), VAL, DOC (CHG), ticket au gardien. - R9 : `lp-validate` (145), `lp-build` (161), `lp-repo` (133) dépassent déjà 120 lignes avant le lot ; non traité ici. - Déploiement des skills de l'addon dans `%USERPROFILE%\.claude\skills` : sans objet, `.claude\skills` du projet est une jonction vers l'addon 5.8 (les descriptions modifiées sont déjà chargées par la session). ## 5. Points à confirmer en VAL - P1 : chaque fichier ne diffère de son instantané que par les hunks du § 1 ; CR = 0 partout. - P2 : textes repris reformulés, pas copiés (comparer à la copie de référence du plugin) ; `LICENSE` conforme à R4. - P3 : le guide `lp-mcp` § 2 « Panne du serveur » ne contredit ni la règle 9 ni la consigne `BLOCKED-MCP` des agents. - P4 : la garde `lp-mcp-garde-lecture.py` admet `list_toolsets` (nouvel appel demandé à l'agent `lp-mcp`). - P5 : `etat-session.py` en lecture seule, code 0 dans tous les cas, ≤ 5 s ; aucun nom de compte ni chemin `C:\Users`. - P6 : PubCheck à 0 sur les fichiers du lot. ## 6. Fichiers à commiter Addon 5.8 (`D:\Game\LifePlay-Sandbox-5.8`) : M Tools/claude/skills/lp-mcp/SKILL.md A Tools/claude/skills/lp-mcp/LICENSE A Tools/claude/skills/lp-mcp/references/toolset.md M Tools/claude/skills/lp-commandlets/SKILL.md M Tools/claude/skills/lp-doc/SKILL.md M Tools/claude/skills/lp-validate/SKILL.md M Tools/claude/skills/lp-build/SKILL.md M Tools/claude/skills/lp-repo/SKILL.md Jeu (`D:\Game\LifePlay-master 5.8`) : M Docs/Migration/etat/SK/SK-ARBRE.md A Docs/Migration/etat/SK/SK-REVUE-unreal-engine-skills.md A Docs/Migration/etat/SK/UES1/ (registre, livrables, `profil\` : copies de travail des fichiers du profil) Tours : 1 / sans objet (fiche faite par la session)