LifePlay-Revival/Docs/Migration/etat/ST/STE/fiches/STE-H3g-I.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

5.8 KiB

Fiche STE-H3g-I — Niveau N3 — Modèle prévu opus (xhigh) | utilisé <modèle déclaré> — Agent lp-mcp-bp — Skills sk-protocol, sk-change-safety, lp-mcp, lp-lot

1 Objectif : écrire par MCP la garde G16 (G16a homme, G16b femme) dans GI:EventGraph (STE-H3g-SPEC.md § 2.3 : 4 nœuds, 2 coupures, 10 liens, SetSkinnedAssetAndUpdate inchangé), compiler (avertissements en erreurs), enregistrer /Game/BPs/GI seul. G15 n'est pas écrite (décision de l'utilisateur Q-H3g-1 = c) — lot STE, registre D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE\STE-TACHES.md ligne STE-H3f 2 Complexité : a1 b1 c1 d2 e1 f1 = 7 → N3 (aucun) ; barème § 2 : C3 = 1 (SPEC au geste près, lp-mcp § 3-4) ; S = 2 < 3 → pas de scission ; C9a : à relire le jour de l'envoi par l'orchestrateur (UE-GO, HEAD, GI = C4817B84 = HEAD, GI:EventGraph 6 249 nœuds par dumps\GI__EventGraph_P2.txt, éditeur prêt) 2b Agent : lp-mcp-bp — à invoquer : lp-mcp (§ 1-4), sk-change-safety — outils retirés : aucun 3 Contexte :

  • UE-GO de Big Boss : reçu le 2026-10-13 (UeState = 0 ; GI c4817b84… ; Person 8668A47C et Room CA2A9A0B à ne pas toucher). C9a relu par l'orchestrateur : HEAD 0745917, GI C4817B847ECF246C859647577647D6E9, UeState 0. Si l'éditeur demande au lancement de recompiler des modules (Source/ a changé : LPCameraModeSubsystem, LPOutdoorRoomSubsystem, LPDebugSubsystem) : arrêt sans accepter, éditeur fermé, rends compte (BLOCKED-MODULES). SPEC approuvée par l'utilisateur pour G16 (2026-10-13 ; G15 abandonnée, Q-H3g-1 = c).
  • Tu lances et fermes toi-même l'éditeur headless (décision de Big Boss, 2026-10-13) selon lp-mcp § 2 : 0 processus UnrealEditor de la copie 5.8 avant ; lancement avec -abslog=D:\Game\LifePlay-master 5.8\Saved\Logs\STE-H3g-headless-<horodatage>.log ; Wait-HyperAIStudioMCP.ps1 -Port 8000 -UrlPath /mcp -TimeoutSeconds 540 ; vérifier get_current_level ; à la fin (après save_assets ou sur arrêt), Stop-Process -Id <pid> puis Tools\UeState.ps1 = 0, et aucun GI_Auto* laissé sous Saved\Autosaves (s'il y en a : les déplacer sous D:\Game\LifePlay_Backup_5.5\STE-H3g\autosave\ et le rapporter). Tu partages la connexion MCP de la session ; outil : ToolSearch select:mcp__unreal-mcp__call_tool ; outils MCP absents après le lancement → BLOCKED-MCP, éditeur fermé.
  • Instantané déjà pris par l'orchestrateur : D:\Game\LifePlay_Backup_5.5\STE-H3g\Content\BPs\GI.uasset (MD5 à reporter = GI de départ). Ne relance pas Snapshot.ps1 ; contrôle les deux MD5 ; écart → arrêt.
  • Person et Room sont modifiés non commités par d'autres lots (STG-B1, CAM-B2) : ne les ouvre pas, ne les enregistre pas ; save_assets sur /Game/BPs/GI seul.
  • SPEC : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE\STE-H3g-SPEC.md § 2.0 (préalables, P4 pour G16), § 2.1 (conventions), § 2.3 (G16 : avant / après, liens, comptes), § 3 (repli), § 4 (R-H3g-4), § 7 (critères). Dump de référence : dumps\GI__EventGraph_P2.txt (6 249 nœuds). Points amont à reprendre : R-H3g-4 (boucle ForEachLoop sur tableau effacé = 0 itération, estimé) : à la relecture, dire si les boucles MacroInstance_4 / _5 ont un autre successeur que CallFunction_5654 (sinon l'else est bien « ce que l'exécution fait aujourd'hui »). 4 Entrées et questions :
  • Avant toute écriture : compte de GI:EventGraph (find_nodes title:"", attendu 6 249) ; P4 de la SPEC pour G16 (get_node_infos des nœuds listés, liens = « Avant ») ; tout écart → arrêt.
  • Nœuds (4) : G16a-V, G16b-V (IsValid, pur), G16a-B, G16b-B (Branche) ; avant chaque create_node : find_node_types avec le filtre ; après : get_node_infos.
  • Coupures (2) : CallFunction_662.then / MacroInstance_5.Exec ; CallFunction_661.then / MacroInstance_4.Exec.
  • Liens (10) : exactement ceux du § 2.3.2.
  • Après : get_node_infos des 4 nouveaux et des nœuds de P4 ; compte 6 253 ; compile_blueprint {warnings_as_errors:true} → aucun diagnostic (journal de l'éditeur) ; save_assets /Game/BPs/GI seul ; MD5 de GI après ; git status --short -- Content = GI + Person + Room (ces deux derniers inchangés : MD5 avant / après). 5 Pièges : un appel MCP à la fois, jamais deux dans le même message (y compris break_pins et connect_pins) ; create_node prend pos ; connect_pins / break_pins prennent output_pin, input_pin ; indices relus ; type_id localisés (lp-mcp § 3 ; Utilitaires|ContrôleDeFlux|Branche relu en H3d) ; le journal headless se lit par tail -n +N | grep ou Read avec offset ; le crochet ecriture-gardien refuse tout > et les heredocs en Bash ; aucun nom d'utilisateur ni C:\Users\<nom> dans le livrable. 6 Interdits : aucun autre graphe ni asset ouvert en écriture ou enregistré ; G15 interdite ; delete_node interdit ; aucune écriture par execute_tool_script ni hyper_* ; pas de Snapshot.ps1, Restore.ps1, git en écriture ; tu ne relances pas l'éditeur après un arrêt ; outils MCP absents → BLOCKED-MCP (+ sk-protocol § 2). 7 Livrable : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE\STE-H3g-IMPL.md au gabarit IMPL : MD5 de départ, compte avant / après, correspondance SPEC → nom réel → type_id, coupures et liens relus, compilation (heure du journal), save_assets, MD5 après, écarts, état de reprise si arrêt. Un seul Write, LF. 8 Critère d'acceptation : 4 nœuds, 2 coupures, 10 liens relus conformes ; 6 253 nœuds ; compilation 0 / 0 ; GI enregistré (MD5 ≠ départ) ; Person et Room inchangés. 9 Budget et arrêt : ≈ 50 tours (plafond 60), pic ≤ 200 k, ≈ 30 min — tentative 1/4 ; arrêt au premier refus de permission, sur tout écart de P4, ou sur un diagnostic de compilation ; au budget : arrêt sans enregistrer un graphe incomplet, livrable partiel avec état de reprise.