LifePlay-Revival/Docs/Migration/etat/ST/STE/STE-GI-IMPL.md

75 lines
5.9 KiB
Markdown
Raw Normal View History

Fiche STE-GI — Niveau N2 — Modèle prévu Opus 5.5 (orchestrateur) | utilisé Opus 5.5 (claude-opus-5-5) — Agent orchestrateur (MCP) — Skills lp-mcp, lp-lot, lp-repo
# STE-GI-IMPL : gardes R06, R07 / R08, R10 dans GI (2026-10-10)
BUILD-GO de Big Boss à 12:37 ; éditeur headless de 12:37:39 à 12:44:20 (pid 30840 ; heures relevées : lancement par `Get-Date`, fin = dernière ligne du journal, 10:44:20 UTC), journal
`Saved\Logs\portage\STE-GI_editeur_20261010-123739.log`. CHG-305 (réservé dans `etat\REPO\NUMEROS.md`, verrou 28).
## 1. Fichiers modifiés
`Content/BPs/GI.uasset` : EventGraph seulement. MD5 avant D93785FCA90E3342575FC0B601CC2E93 (52 423 688 o), après
606EB43714C1F4317300B797EDD02E62 (52 450 518 o). 13 nœuds créés (5 Branch, 5 IsValid, 2 SetVisibility, 1 ClearAllExpressions), 8 liaisons coupées, 31 liaisons posées,
3 appels `set_pin_value` (la VAL compte 4 valeurs de broche différentes). Totaux corrigés d'après STE-VAL (écart E1 : la
1re version annonçait 14 / 9 / 30).
Les nœuds d'origine viennent du dump d'après STC (`etat\ST\STE\dumps\GI__EventGraph.txt`). Les nœuds créés ont été relus
avec `get_node_infos`.
| Garde | Événement | Avant | Après |
|---|---|---|---|
| R06a | HideUI | `CallFunction_5895.then` → `CallFunction_2310` (`SetVisibility(TintUI, Hidden)`) → `VariableSet_1341` | `5895.then` → **`IfThenElse_210`** (Condition ← **`CallFunction_451` IsValid**(`VariableGet_1375.TintUI`)) ; then → `2310` → `1341` ; else → `1341` |
| R06b | ShowUI | `CallFunction_333.then` → `CallFunction_939` (`SetVisibility(TintUI, HitTestInvisible)`) → `CallFunction_760` | `333.then` → **`IfThenElse_211`** (Condition ← **`CallFunction_488` IsValid**(`VariableGet_2515.TintUI`)) ; then → `939` → `760` ; else → `760` |
| R07 | HideRender | `CallFunction_5578` `SetVisibility(false, propagate)` cibles `StaticMeshComponent` (1912) + `SceneCapture.RootComponent` (3100) → `VariableSet_326` | `5578` cible 1912 seule → **`IfThenElse_212`** (Condition ← **`CallFunction_493` IsValid**(3100)) ; then → **`CallFunction_490`** `SetVisibility(false, true)` cible 3100 → `326` ; else → `326` |
| R08 | ShowRender | `CallFunction_3014` `SetVisibility(true, propagate)` cibles 1811, `Wall.RootComponent` (3097), `SceneCapture.RootComponent` (3103) → `CallFunction_2920` | `3014` cibles 1811 + 3097 → **`IfThenElse_213`** (Condition ← **`CallFunction_496` IsValid**(3103)) ; then → **`CallFunction_494`** `SetVisibility(true, true)` cible 3103 → `2920` ; else → `2920` |
| R10 | SceneStart | `CallFunction_472` `ClearAllExpressions` cibles `PlayerCharacter` (95) + `Companion` (96) → `MacroInstance_21` | `472` cible 95 seule → **`IfThenElse_214`** (Condition ← **`CallFunction_566` IsValid**(96)) ; then → **`CallFunction_565`** `ClearAllExpressions` cible 96 → `MacroInstance_21` ; else → `MacroInstance_21` |
Les entrées d'exécution d'origine sont conservées : `5578` (586, 658), `3014` (107, CustomEvent_519), `472` (664,
VariableSet_272). Les appels à cibles multiples gardent leurs cibles sûres dans le même ordre ; la cible facultative est
appelée ensuite, sur le même chemin (lp-mcp § 4). Le cas « non valide » rejoint le nœud qui suivait déjà.
`type_id` employés : `Utilitaires|IsValid`, `Utilitaires|ContrôleDeFlux|Branche`, `Rendu|SetVisibility`,
`Classe|Person|ClearAllExpressions` (trouvé par `find_node_types`).
## 2. Écarts à la SPEC (fiche STE-GI § 4)
- `hyper_blueprint_debug_inspect` est absent du serveur MCP (« Unknown tool » dans `HyperAIStudioBlueprintWorkflowToolset`
et `HyperAIStudioDiagnoseToolset`, « not found » en outil de premier niveau). Il est remplacé par
`compile_blueprint {warnings_as_errors: true}` (retour sans erreur) et par la lecture du journal de l'éditeur
(« Compiling Blueprint '/Game/BPs/GI.GI' », sans aucune ligne LogBlueprint d'erreur ni d'avertissement à la suite).
Le skill lp-mcp (§ 1.3, § 3) est à mettre à jour.
- Les appels MCP de R06a (1 coupure, 5 liaisons) sont partis en un seul lot, malgré la consigne « Do not overlap Unreal
MCP calls » (CLAUDE.md). La relecture `get_node_infos` montre un câblage conforme. Tous les appels suivants ont été
faits un par un.
- R07 / R08 : pas de cas « FaceCapture a une racine » (fiche § 5). D-2 montre `RootComponent = None` en 5.8
(`STE-D-INV.md` § 2), donc les gardes sont posées.
## 3. Instantané
`D:\Game\LifePlay_Backup_5.5\STE-GI\manifest.csv` : `Content\BPs\GI.uasset`, MD5 D93785FC…, 2026-10-10 12:32:20.
Tag git `STE-avant` (annoté, `5b34499`, ticket STE-R1).
Retour arrière, éditeur fermé, sur accord seulement : `.\Tools\Restore.ps1 -Lot STE-GI -WhatIf`, puis sans `-WhatIf`.
## 4. Ce qui n'a pas été fait
- CompileAllBlueprints éditeur fermé et dump après de l'EventGraph : à faire en STE-VAL (BUILD-GO).
- Entrée CHG-305 au journal : jeton demandé à Big Boss, après la VAL.
- Commit : après la preuve en jeu J1 (archive commune STF + STE, décision de l'utilisateur relayée par Big Boss).
## 5. Points à confirmer en VAL
1. Dump `LPDumpFunction -BP=GI -Fn=EventGraph -Pins -Exec` après : 6218 + 13 = 6231 nœuds (corrigé, E1 de STE-VAL) ; le diff avec
`dumps\GI__EventGraph.txt` ne montre que les nœuds et liaisons du § 1.
2. CompileAllBlueprints, éditeur fermé : 0 erreur, aucun avertissement nouveau sur GI.
3. LPTestStringCompat 3120 / 0 / 60 (lp-validate).
4. `git status --short -- Content Config Source` = GI (STE) et MainMenu (STF) seulement ; MD5 de MainMenu 00E42D72….
## 6. Fichiers à commiter (après J1, ticket STE-R2)
```
M Content/BPs/GI.uasset
M Docs/Journal_Modifications.md (ligne CHG-305 seulement)
A Docs/Migration/etat/ST/STE/STE-GI-IMPL.md
```
(et les registres et livrables STE du lot, listés dans le ticket)
Tours : orchestrateur ≈ 60 appels MCP / budget fiche 40 tours (dépassé : appels unitaires, conformément à la règle de non-chevauchement)