70 lines
5.7 KiB
Markdown
70 lines
5.7 KiB
Markdown
|
|
Fiches STE-H3, STE-H3b, STE-H2 — Niveau N3 (SPEC) / IMPL orchestrateur — Modèle prévu Opus 5.5 | utilisé Opus 5.5 (claude-opus-5-5) — Agent orchestrateur (MCP) — Skills lp-mcp, lp-lot, lp-repo
|
||
|
|
# STE-GARDES-IMPL : gardes G1 à G11 et G-H2 dans GI (2026-10-10)
|
||
|
|
|
||
|
|
BUILD-GO de Big Boss (STE-GARDES). Tag `STE-GARDES-avant` sur `71511a2` (ticket STE-R4). Éditeur headless de 17:19:11 à
|
||
|
|
17:33:32 (heures relevées), journal `Saved\Logs\portage\STE-GARDES_editeur_20261010-171911.log`. Appels MCP un par un.
|
||
|
|
SPEC : `STE-H3-SPEC.md` (G1-G6), `STE-H3b-SPEC.md` (G7-G11, § 2.4 bis pour G9), `STE-H2-DIAG.md` (G-H2, « Correctif proposé »).
|
||
|
|
Décisions de l'utilisateur : Q1 = A, Q2 = G5 acceptée, Q3 = fiche à part (H3b), Q4 = a, Q5 = a, G9 = oui, H2 = garde + cause (H2b).
|
||
|
|
Dumps « avant » : STE-D3 identiques ligne pour ligne aux dumps STE-D / STE-D2 (`STE-D-INV.md`).
|
||
|
|
|
||
|
|
## 1. Fichier modifié
|
||
|
|
|
||
|
|
`Content/BPs/GI.uasset`, trois sous-lots enregistrés l'un après l'autre :
|
||
|
|
|
||
|
|
| Sous-lot | CHG | Instantané (état d'avant) | MD5 après | Heure |
|
||
|
|
|---|---|---|---|---|
|
||
|
|
| STE-H3 (G1-G6) | CHG-313 | `LifePlay_Backup_5.5\STE-H3` : 606EB437… | 62FCCD5B… | 17:26 |
|
||
|
|
| STE-H3b (G7-G11) | CHG-314 | `LifePlay_Backup_5.5\STE-H3b` : 62FCCD5B… | A5A0EDF0… | 17:32 |
|
||
|
|
| STE-H2 (G-H2) | CHG-315 | `LifePlay_Backup_5.5\STE-H2` : A5A0EDF0… | B8B97C46… (52 540 467 o) | 17:33 |
|
||
|
|
|
||
|
|
## 2. Gardes posées (nœuds créés ; tous les liens relus par `get_node_infos` avant et après)
|
||
|
|
|
||
|
|
| Garde | Graphe | Nœuds créés | Coupure | Chemin « vide » |
|
||
|
|
|---|---|---|---|---|
|
||
|
|
| G1 | setActorVar | `CallFunction_7` (IsValid), `IfThenElse_3` | `FunctionEntry_0.then` / `IfThenElse_2` | rien |
|
||
|
|
| G2 | getActorVar | `CallFunction_3` (IsValid), `IfThenElse_1` | `FunctionEntry_0.then` / `VariableSet_0` | `FunctionResult_1` (0.0) |
|
||
|
|
| G3 | ReturnStatIfNeeded | `CallArrayFunction_1` (IsValidIndex), `IfThenElse_0`, `CallFunction_9` (IsValid), `IfThenElse_1` | `81822`/`1019`, `1019`/`7798` | `FunctionResult_7` (deux `else`) |
|
||
|
|
| G4 | CallFunction | `CallArrayFunction_8`, `IfThenElse_12`, `CallFunction_355`, `IfThenElse_13` | `186`/`185` | rien |
|
||
|
|
| G5 | CallFunction | `CallArrayFunction_9`, `IfThenElse_14`, `CallFunction_356`, `IfThenElse_15` | `189`/`190` | rien (plus de `AI_Untils["0"]` ni de ligne « by 0 », Q2) |
|
||
|
|
| G6 | CallFunction | `CallArrayFunction_10`, `IfThenElse_16`, `CallFunction_357`, `IfThenElse_17` | `178`/`179` | `CallFunction_180` (AddVariable), deux `else` |
|
||
|
|
| G7 | CallFunction | `CallArrayFunction_11`, `IfThenElse_18` | `141`/`142` | `CallFunction_143` (AddVariable) |
|
||
|
|
| G8 | CallFunction | `CallArrayFunction_12`, `IfThenElse_19` | `150`/`162` | rien |
|
||
|
|
| G9 | CallFunction | `CallArrayFunction_13`, `IfThenElse_20` | `144`/`163` | rien (plus d'écriture `ActorVars["0"]`) |
|
||
|
|
| G10 | CallFunction | `CallArrayFunction_14`, `IfThenElse_21`, `CallFunction_358` (IsValid), `IfThenElse_22`, `CallFunction_359` (Map Find, `Key` = `"0"`), `MakeArray_178`, `CallFunction_360` (AddVariable, `Class` = `Float`) | `200`/`203` | rejeu exact : `AddVariable(Name, [Map_Find(AI_Untils, "0")], Bool, String, Person)` |
|
||
|
|
| G11 | CallFunctionReturnBool | `CallArrayFunction_4`, `IfThenElse_0`, `CallFunction_99` (IsValid), `IfThenElse_1`, `CallFunction_98` (hasRelationship, `Slot` = `"0"`), `VariableSet_51` (Set BoolToReturn) | `177620`/`VariableSet_57739` | rejeu exact : `BoolToReturn = hasRelationship("0", ActualParameters)` → `IfThenElse_8994` |
|
||
|
|
| G-H2 | EventGraph | `CallFunction_567` (IsValid), `IfThenElse_215` | `CallArrayFunction_231`/`MacroInstance_207` | `CallFunction_10426` (UpdatePlayerMesh) |
|
||
|
|
|
||
|
|
Totaux : 41 nœuds créés (G1-G6 : 20 ; G7-G11 : 19 ; G-H2 : 2), 13 coupures (corrigé d'après STE-VAL, écart E1 : la 1re version annonçait 37 par erreur d'addition ; la table ci-dessus était juste). `type_id` relus : `Utilitaires|IsValid`,
|
||
|
|
`Utilitaires|ContrôleDeFlux|Branche`, `Utilitaires|Tableau|IsValidIndex` (entrées `TargetArray` 0, `IndexToTest` 1 = 0),
|
||
|
|
`Utilitaires|Carte|Find`, `Utilitaires|Array|Faireuntableau`, `Scène|AddVariable`, `Appelerunefonction|HasRelationship`
|
||
|
|
(nœud `|hasRelationship`, pur), `Variables|Pardéfaut|DéfinirBooltoReturn` (nœud `|SetBoolToReturn`).
|
||
|
|
|
||
|
|
## 3. Écarts
|
||
|
|
|
||
|
|
- `hyper_blueprint_debug_inspect` absent du serveur MCP (déjà noté) : remplacé par `compile_blueprint` warnings_as_errors
|
||
|
|
après chaque groupe (6 fois, OK) et le journal (6 « Compiling Blueprint '/Game/BPs/GI' », 0 ligne LogBlueprint
|
||
|
|
d'erreur ou d'avertissement).
|
||
|
|
- STE-H3b P2 demandait des dumps « avant » neufs après H3 : remplacés par la relecture `get_node_infos` de chaque nœud cité
|
||
|
|
dans l'éditeur (aucun écart), H3 n'ayant pas touché ces nœuds.
|
||
|
|
- Les numéros de nœud créés diffèrent des noms de la SPEC (`G4-I`, etc.) : correspondance au § 2.
|
||
|
|
|
||
|
|
## 4. Sortie
|
||
|
|
|
||
|
|
UeState à 0. CharGen E4C2EEA6… (STF), MainMenu 7292C6BE…, StatMenu 9030531C… inchangés.
|
||
|
|
`git status --short -- Content Config Source` = ` M Content/BPs/GI.uasset` (+ `?? Source/LifePlay/LPReadableTextSubsystem.*`,
|
||
|
|
lot LISIB, non touchés).
|
||
|
|
|
||
|
|
## 5. Points à confirmer en VAL
|
||
|
|
|
||
|
|
1. Dumps après des 6 graphes touchés (setActorVar, getActorVar, ReturnStatIfNeeded, CallFunction, CallFunctionReturnBool,
|
||
|
|
EventGraph) contre les dumps STE-D3 / `GI__EventGraph_apres-STE-GI.txt` : seuls les nœuds et liens du § 2.
|
||
|
|
2. CompileAllBlueprints 0/0 ; LPTestStringCompat 3120/0/60.
|
||
|
|
3. Preuve en jeu : Grep `property Person in`, `Person_24`, `CallFunc_Array_Get_Item_3[0-3]|_41`,
|
||
|
|
`CallFunc_GetSkeletalMesh_ReturnValue` (pile `UpdatePlayerMeshWithMorphs`), ligne « by 0 » : à 0 ou en forte baisse
|
||
|
|
(critères des SPEC § 7 et du DIAG H2).
|
||
|
|
|
||
|
|
## 6. Retour arrière (sur accord)
|
||
|
|
|
||
|
|
`.\Tools\Restore.ps1 -Lot STE-H2` (défait G-H2), `-Lot STE-H3b` (défait G7-G11 et G-H2), `-Lot STE-H3` (défait tout), éditeur
|
||
|
|
fermé ; ou tag `STE-GARDES-avant` (ticket RESTORE).
|