7.6 KiB
Fiche STF-T3 — Niveau N2 — Modèle prévu orchestrateur STF (Opus 5.5) | utilisé claude-opus-5-5 — Agent orchestrateur — Skills lp-mcp, lp-lot, sk-change-safety, sk-protocol
STF-T3 : MainMenu, 12 SpinBox protégées par MCP (2026-10-10)
Copie D:\Game\LifePlay-master 5.8 (branche ue5.8, HEAD b63196a = tag STF-avant, ticket STF-R1). BUILD-GO STF-T3 de
« Big Boss » (après STE-D). Accord utilisateur : « STF approuvé » (2026-10-10). Instantané :
D:\Game\LifePlay_Backup_5.5\STF\manifest.csv (11:04). Éditeur 5.8 sans rendu, journal
Saved\Logs\portage\STF-T3_Editor_20261010-111552.log. Outils Epic (UMGToolSet, BlueprintTools, ObjectTools,
AssetTools, appelés via ProgrammaticToolset) ; contrôle hyper_diagnose.
| Fichier | Avant | Après |
|---|---|---|
Content/UI/MainMenu.uasset |
59d1ee7190afb88bf51b90eda26fcc32 (2 171 521 o) | 39135bcd5a13167a507e6b5059efbeb0 (2 245 641 o) |
Content/BPs/GI.uasset |
d93785fca90e3342575fc0b601cc2e93 | d93785fca90e3342575fc0b601cc2e93 (inchangé) |
git status -- Content Config Source après : M Content/UI/MainMenu.uasset seul.
1. Méthode (A, STF-T1 § 5) et un écart assumé à la SPEC
Par couple : lecture des 34 propriétés du widget et des 4 de son slot → suppression de l'événement OnValueChanged
(et de ComponentBoundEvent_15 pour MarkerSize) → RemoveWidget → AddWidget (SpinBox, même parent, indice 1) →
set_properties (mêmes valeurs, sauf Value = défaut GI) et slot → ToggleWidgetAsVariable → BindToEventProperty
OnValueCommitted → événement placé à la position de l'ancien → branchements → relecture des propriétés (0 écart) et des
liens → compile_blueprint (avertissements = erreurs).
Écart à SPEC § 1.2 (A) : la chaîne IsValid → Set existante de chaque couple est gardée et rebranchée sur le
nouvel événement (exécution → entrée de la macro IsValid, InValue → valeur du Set) au lieu d'être recréée. Même
graphe d'exécution que la SPEC (c'est le geste de la méthode B appliqué aux nœuds), moins de nœuds créés ; nœuds GI
partagés intacts.
2. Résultat par couple (établi, get_node_infos après branchement)
| # | Ancien → neuf | Événement neuf | Chaîne | Value / Min / Max |
|---|---|---|---|---|
| 1 | ChildGrowthMult → SpinBoxChildGrowth | ComponentBoundEvent_32 |
→ MacroInstance_2 → VariableSet_1 |
1 / 0.01 / 10000 |
| 2 | ShadeDepth → SpinBoxShadeDepth | _33 |
→ MacroInstance_40 → VariableSet_106 → Cast MID → SetScalarParameterValue (inchangé) |
0.5 / 0 / 1 |
| 3 | SpinBoxBGA → SpinBoxVolBGA | _34 |
→ MacroInstance_10 → VariableSet_16 |
0.5 / 0 / 5 |
| 4 | SpinBoxMarkerSize → SpinBoxMapMarkerSize | _35 |
→ MacroInstance_5 → VariableSet_6 → CallFunction_44 RetriggerableDelay 2 s → CallFunction_31 SpawnMapMarkers(false) (ancien _15 supprimé) |
28 / 1 / 100 |
| 5 | SpinBoxMoan → SpinBoxVolMoan | _36 |
→ MacroInstance_8 → VariableSet_19 |
1 / 0 / 5 |
| 6 | SpinBoxPhysicsMult → SpinBoxPhysics | _37 |
→ MacroInstance_7 → VariableSet_11 |
1 / 0 / 100 |
| 7 | SpinBoxSceneFrequency → SpinBoxSceneFreq | _39 |
→ MacroInstance_42 → VariableSet_116 |
10 / 0.2 / 100 |
| 8 | SpinBoxSexDescription → SpinBoxSexLineDuration | _40 |
→ MacroInstance_90 → VariableSet_48 |
15 / 1 / 100 |
| 9 | SpinBoxSex → SpinBoxVolSex | _43 |
→ MacroInstance_12 → VariableSet_18 |
1 / 0 / 5 |
| 10 | SpinBoxSquirtMult → SpinBoxSquirt | _46 |
→ IfThenElse_9 (Branche) ← CallFunction_78 IsValid(VariableGet_40) → VariableSet_25 |
2 / 0 / 100 |
| 11 | SpinBoxUI → SpinBoxVolUI | _44 |
→ MacroInstance_11 → VariableSet_17 |
1 / 0 / 5 |
| 12 | SpinBoxPregnancyTerm → SpinBoxPregnancyMult | _45 |
→ MacroInstance_57 → VariableSet_70 |
1 / 0.01 / 3 |
- Propriétés : recopie des 34 propriétés du widget (style, police Roboto Bold 20, couleur,
Delta, chiffres, bornes,bOverride_*, visibilité…) et du slot (Automatic, marge 0, Fill / Fill), relues après écriture : 0 écart sur les 12 (seuleValuechange, au défaut GI) ; propriétés identiques àSpinBoxSexDuration(STC) hors valeur et bornes. - SquirtMult : garde ajoutée sur le modèle STC (
IsValidfonction +Branche), car le typeUtilities|IsValid(macro) est ambigu dansfind_node_types(2 entrées). GI vide impossible aprèsConstruct: garde d'uniformité (règle 4lp-mcp, à écrire au CHG). - Numéros d'événements 38 et 41 : déjà pris (délégués
OnClickedde boutons, avant et après STF ; correction après STF-VAL statique) ; 42 libéré (ancien PregnancyTerm).
3. Construct (établi, parcours de la chaîne)
Event_1 → Cast To GI → Set GI → CallFunction_72 (slider caméra) → _74 (texte caméra) → _73 (SexDuration) →
_79 ChildGrowth → _80 ShadeDepth → _81 VolBGA → _83 MapMarkerSize → _84 VolMoan → _85 Physics → _87
SceneFreq → _88 SexLineDuration → _89 VolSex → _90 Squirt → _91 VolUI → _92 PregnancyMult → _1278
UpdateDonors (inchangé ensuite). Chaque SetValue (SpinBox, broche NewValue) : self ← Get<widget neuf>,
NewValue ← GI.<variable> (cible VariableGet_50, le GI déjà utilisé par STC).
Incident : un premier essai s'est arrêté sur Classe|GI|ObtenirVol_BGA inexistant (le type s'écrit ObtenirVolBGA) ;
7 nœuds déjà créés, sans aucun lien, ont été réutilisés au second essai (vérifié : 0 lien avant branchement) ; le lien
_73 → _1278 n'a été coupé qu'après validation des 36 nœuds.
4. Contrôles de l'asset (SPEC § 3)
| Contrôle | Résultat |
|---|---|
compile_blueprint (warnings_as_errors) après chaque couple et après Construct |
sans erreur |
hyper_diagnose (loaded_blueprint_health) |
MainMenu up_to_date ; seul signalement : paquet modifié (avant save_assets) |
| Journal éditeur | aucun avertissement MainMenu ; 1 LogScript: Warning = l'essai ObtenirVol_BGA ; avertissements MCP connus (LogJson schéma, WriteBytes, multicast) |
| Événements liés (tous) | 14 OnValueCommitted (SpinBox_0, SexDuration STC, 12 neufs) + 1 OnValueChanged (SliderCameraSpeed) ; aucun OnValueChanged de SpinBox |
| Anciens widgets | 0 dans l'arbre ; 0 nœud à leur nom |
| Relecture binaire après sauvegarde | 11 anciens noms : 0 occurrence (ShadeDepth : 2 = variable GI et paramètre matériau) ; 12 neufs : 5 chacun = profil des widgets sans liaison de STC (SpinBoxSexDuration, SliderCameraSpeed : 5) ; SpinBox_0 : 6 (inchangé) → 0 liaison vers GI sur les 12 (estimé : décompte de chaînes, cohérent avec STF-T1 § 4) |
save_assets ["/Game/UI/MainMenu"] |
true |
CompileAllBlueprints éditeur fermé |
reporté en STF-T4 (VAL V1, commandlet) |
5. Suite
- STF-T4 (lp-validator) : V1
CompileAllBlueprints(418 / 418, 0 / 0), V2-V3 relecture, V4-V7 PIE avec l'utilisateur, V8 MD5 des.savcontre l'instantané. - CHG : réservation à faire dans
etat\REPO\NUMEROS.md(une entrée par SpinBox +Construct, ou une entrée de lot si le gardien les regroupe) ; à y écrire : écart § 1, garde SquirtMult,Valuede conception ramenées aux défauts GI, ShadeDepth appliqué en fin de geste (plus d'aperçu pendant le glisser), valeur GI hors bornes affichée bornée sans être réécrite (SPEC § 6). - Commit : ticket STF-R2 (MainMenu, journal, traces STF-R1), après VAL et preuve en jeu.
Fichiers écrits : Content/UI/MainMenu.uasset ; ce livrable. Éditeur fermé (UeState.ps1 : 0 processus).