Fiche SK-T1 — Niveau N3 — Modèle prévu opus-xhigh | utilisé opus
Objet : taxonomie des types de tâches confiées (ou à confier) à des sous-agents dans LifePlay, avec échecs constatés
et contenu souhaité d'un skill par type. Base du lot SK (arbre de compétences), préalable à U0 (doc 27).
Date : 2026-10-08. Lecture seule : seul ce fichier est écrit. Aucun contenu de jeu n'est reproduit.
0. Méthode, sources, limites
Conventions. Chaque type porte un identifiant (A1, E3…). « Exemple » = fiche ou entrée réelle avec chemin.
Anticipé (5.8) = type prévu par le doc 27 sans précédent direct. Les échecs sont établis (cités) ; les
contenus de skill sont des recommandations. Niveaux N0–N5 selon la grille a–f (mémoire feedback-subagents-by-task).
Les chemins etat/… sont relatifs à Docs/Migration/.
Lu en entier : Registre_Erreurs.md ; 22_Eval_Agents_Sandbox.md ; 26_Eval_Agents_VideoQuality.md ;
27_Plan_Migration_UE58.md ; 10_Protocole_Operations.md ; etat/sandbox/DC4/DC4-EVAL.md, SB4/SB4-EVAL.md ;
mémoire (13 fichiers) ; gabarit sandbox_addon_migration_ff11aeab.plan.md ; définitions d'agents ~/.claude/agents/*.md (en-têtes).
Lu en partie (en-têtes, sections ciblées, recherche de mots-clés) : Journal_Modifications.md (recherche « annulé,
rejeté, à tort, leçon… » + CHG-237 à 245) ; etat/U58/UA/* (en-têtes + UA-SYNTHESE § 1–2, 5–6) ; etat/PUB1|PUB2/* ;
etat/COMMIT-CART.md, commit_plan/* ; etat/PROP/* ; etat/sandbox/DC0|DC1|DC4 (VAL, BUILD) ; etat/VQ/* (verdicts) ;
18_Build_Debug.md § 7 ; 19_Plan_Outillage_Debug.md § 2–3 ; 13_Protocole_Coiffure.md § 4 ;
Docs/Architecture/Rapport_Session_2026-09-28.md § 5–6 ; .cursor/skills/lifeplay-debug-build/SKILL.md (seul skill
existant, Cursor) ; titres de 03, 06, 09, 20, 24.
Non lu : fiches individuelles S0–S8, SB0–SB2, DC2–DC3 (vues seulement à travers 22, SB4-EVAL, DC4-EVAL) ; docs 01, 02,
04, 05, 07, 08, 11, 12, 14–17, 21, 23, 25 ; corps de UA-JEU, UA-PLUGINS, UA-MODS, UA-MOTEUR, UA-OUTILS ;
journaux .txt de commandlets. Les lots AP1–AP7 n'ont pas de fiches sous etat/ : ils sont décrits par la mémoire
(lifeplay-build-pitfalls, lifeplay-pose-transfer) et le journal (CHG-205 à 224).
1. Arbre des compétences (familles → types → sous-types)
A PILOTAGE
A1 Découpage et rédaction de fiches (note a–f, niveau, 9 rubriques)
A2 Contre-vérification des livrables (comptes, ajouts, critère)
A3 Suivi de projet : registre des reports, état des lots, coordination entre sessions
A4 Synthèse effort / risques et porte go / no-go
A5 Évaluation de chantier (EVAL : prévu / utilisé / résultat)
B ANALYSE (lecture seule)
B1 Inventaire mécanique (fichiers, états git, grep d'interdits)
B2 Cartographie de code C++ (dépendances, découpe, points d'appel croisés)
B3 Cartographie Blueprint / assets (dump de graphes, CDO, widgets, composants)
B4 Audit d'un sous-système ou d'un contrat (plugins, mods, configuration)
B5 Recherche externe et sources moteur (notes de version, code UE, forums)
B6 Recherche dans un catalogue / navigateur (bibliothèque Fab)
B7 Revue de conformité (contenu publié, licences, données personnelles)
C CONCEPTION
C1 SPEC d'implémentation (signatures, formats, contrats, interdits)
C2 Plan de chantier / document numéroté (lots, décisions, risques)
D RÉALISATION
D1 C++ runtime UE : sous-systèmes, gardes, ticker, réflexion
D2 Refactor / extraction multi-fichiers ou inter-dépôts
D3 Portage d'API moteur et compat de sémantique (U3, U9 : anticipé 5.8)
D4 Slate / UMG (injection de widgets, styles, menus)
D5 Commandlets éditeur : dump, correctif Blueprint par rebranchement, conversion d'assets
D6 Scripts Python éditeur (-run=pythonscript)
D7 Scripts PowerShell d'outillage (Snapshot, LogStats, BuildMod, pilotes)
D8 Configuration projet (ini, .uproject, .uplugin, Build.cs, Target.cs)
D9 Chaînes de contenu (coiffures, animations / recuisson, mods d'assets)
E CONSTRUCTION
E1 Compilation UBT et lecture du journal
E2 Exécution de commandlets / outils en lot avec archivage du journal
E3 Cuisson et empaquetage (Development, Shipping, IoStore, version de référence)
E4 Cuisson DLC des mods (BuildMod, -basedonreleaseversion)
E5 Réenregistrement de masse du contenu (LPResavePackages ; U5 : anticipé 5.8)
F VÉRIFICATION
F1 VAL statique (relecture de code, checklist, grep)
F2 Smoke / non-régression automatisée (nullrhi, tournée Mesure, JSON/CSV/SHA)
F3 Mesure runtime A/B (LogStats, build Development, même parcours)
F4 Diff indépendant (nœuds, assets, fichiers)
F5 Validation visuelle et en jeu avec l'utilisateur (+ retour arrière proposé)
F6 Preuve par l'échec / preuve d'absence (clone propre, essai de compilation)
G DÉBOGAGE
G1 Régression de migration par sémantique moteur
G2 Défaut runtime visuel ou de gameplay (instrumentation, dumps périodiques)
G3 Panne de build / d'outillage (DLL périmée, cache UBT, guillemets, interpréteur)
G4 Plantage (Saved/Crashes, resave de masse)
G5 Performance et profilage (Insights, CSV, LLM)
H INTÉGRATION ET PUBLICATION
H1 Commits par phase (y compris reconstitution depuis les instantanés)
H2 Liaison multi-dépôts (addon : commit puis pin ; dépôt local des modules)
H3 Réécriture / filtrage d'historique git
H4 Publication (push, versions, archives, README) et simulation de push
H5 Opérations destructives sur l'arbre (purge, déplacement, clone, copie de travail)
I DOCUMENTATION
I1 Journal CHG et registre ERR
I2 Docs numérotées, guides (FR ; guide moddeur EN)
I3 Fiches de lot et mise à jour de la mémoire projet
J ENVIRONNEMENT
J1 Chaîne d'outils (VS / MSVC / SDK / .NET / Zen) et installation moteur
J2 Chemin moteur multi-version et coexistence 5.5 / 5.8 (U0, U2 : anticipé 5.8)
Couverture de la liste de départ de l'utilisateur : audit → B1–B7 ; conception → C1–C2 ; codage → D1–D9 ;
compilation → E1–E5 ; test → F1–F6 ; débogage → G1–G5 ; documentation → I1–I3 ; suivi de projet →
A1–A5 (+ H pour l'intégration). Retiré de la liste indicative de la fiche : rien ; « revue de code » n'existe pas comme
type distinct dans l'historique, elle est portée par F1 (VQ5-VAL, S7-VAL).
2. Tableaux par type
Colonnes : Ex. exemples sourcés ; Niv. niveau habituel ; E/S entrées / sorties ; Outils ;
Échecs (source) ; Pièges ; Accept. critère utilisé ; Skill = ce que le skill dédié doit contenir.
A — Pilotage
| Type |
Ex. |
Niv. |
E/S |
Outils |
Échecs (source) |
Pièges |
Accept. |
Skill |
| A1 Fiches |
tableaux de lots du doc 24 (§ Matrice), du doc 27 (UA, U0–U9) ; cette fiche |
N2 (orchestrateur) |
plan + mémoire → fiches 9 rubriques |
gabarit Cursor |
S1 : IMPL-L sans consigne de compiler, VAL sans droit de compiler → personne n'a compilé (22 § 3, § 5.3) ; S3-T3 purge destructive confiée à M0 (22 § 4) ; VQ1-T3 consigne d'audit trop étroite → écart Epic non vu (26 § 3) ; S4 item du lot tombé sans trace (22 § 3) ; fiches S3-INT/S7 sans en-tête « Modèle » (22 § 3) |
libellé du lot ≠ fiches exécutées ; un « interdit de push » sans dire qui pousse (22 § 3) ; modèle indisponible vu à l'exécution (Fable bloqué, 26 § 4) |
fiche complète, propriétaire unique de chaque étape (build, commit) |
gabarit 9 rubriques ; grille a–f avec exemples LifePlay ; règle « destructif / inter-dépôts ≥ N1–N2 » ; « preuve par l'échec ≥ N1 » ; check : qui compile, qui commite, qui pousse ; contrôle de disponibilité du modèle avant envoi |
| A2 Contre-vérification |
DC0-VAL (4 corrections de l'inventaire haiku) ; SB4-EVAL (décompte 63/73 rattrapé) ; DC3 « code 0 sans recompiler l'addon » relevé par la session principale (DC4-EVAL § 2) |
N2 |
livrable + critère → accepté / -fix |
relecture, recomptage |
DC4-T1 haiku a « fabriqué » un succès (plugin copié, dossier vide créé) (etat/sandbox/DC4/DC4-BUILD.md l. 1) ; SB2-T0 critère d'arrêt ignoré (SB4-EVAL § 1) ; grep mal formé : « 0 contre 52 » faux, vrai 12 (Rapport 09-28 § 5.5) |
0 résultat = échec probable ; un compte catégorique se recoupe par une seconde formulation |
critère de la fiche rejoué par l'orchestrateur |
liste « ne pas croire sur parole » : recompter, vérifier les ajouts non demandés, dates des DLL, -fix +1 niveau |
| A3 Suivi / coordination |
registre des reports de 21 (22 § 9) ; COMMIT-CART (rattrapage) ; DC4-EVAL § 4 (PUB2 en parallèle) ; PROP-CART cite une autre session |
N2 (+N1 pour tenir les listes) |
fiches, journal, git → état, reports, gel |
journal, git status, docs |
orphelins jamais repris : S1-CART, override WorldFile, Show en jeu (22 § 3) ; VQ1-VAL jamais produite, « points à confirmer » de VQ1-IMPL perdus (26 § 3) ; commits jamais faits → reconstitution de 24 commits depuis les instantanés (etat/COMMIT-CART.md, commit_plan/CP-RUN.md) ; hashes cités devenus faux après réécriture par une autre session (DC4-EVAL § 4) ; décision de commit AP/SB « toujours en attente » (SB4-EVAL § 3) |
plusieurs sessions (Cursor, Claude) sur le même dépôt ; doc de référence périmé (21 § Lots, 26 § 3) |
chaque reste à faire a un lot propriétaire ; gel obtenu avant opération d'état propre |
registre des reports (gabarit) ; règle « point à confirmer d'une IMPL → case de VAL » ; protocole de gel entre sessions ; citer les hashes avec la date et l'avertissement « réécriture possible » |
| A4 Synthèse / porte |
etat/U58/UA/UA-SYNTHESE.md (UA-T6, N5) |
N4–N5 |
audits T1–T7 → effort, risques, décisions |
— |
audits amont faux sur Fab/Bridge et le ban MSVC, corrigés par l'orchestrateur (UA-SYNTHESE § 6) |
un essai mesuré prévaut sur une estimation (UA-T5 « fait foi ») |
établi / estimé / incertain séparés ; méthode d'estimation écrite |
unités d'effort, calibrage par journaux cités, registre P×I, points de non-retour ; « les décisions appartiennent à l'utilisateur » |
| A5 Évaluation |
22_Eval_Agents_Sandbox.md, 26_Eval_Agents_VideoQuality.md, DC4-EVAL, SB4-EVAL |
N4 (synthèse) |
fiches du chantier → bilan, GO conditionnel |
tableaux prévu / utilisé |
modèle réel tracé sur 12 fiches / 28 seulement (22 § 4) ; UA-T2 « opus (effort par défaut) » au lieu de xhigh (UA-PLUGINS.md l. 1) ; biais : l'orchestrateur juge sa propre organisation (22 en-tête) |
sur- et sous-classement à distinguer d'un défaut de consigne |
tableau complet, recommandations actionnables |
gabarit EVAL (lots, consignes, modèle ↔ complexité, rôles, git, coût / bénéfice, décision) ; FAIL-TRACE si modèle non tracé |
B — Analyse (lecture seule)
| Type |
Ex. |
Niv. |
E/S |
Outils |
Échecs (source) |
Pièges |
Accept. |
Skill |
| B1 Inventaire mécanique |
S0-T1, S1-T3 (grep, gemini flash), DC0-T1a (haiku), VQ1-T3 (grep des interdits L7c) |
N0–N1 |
chemins + motifs → liste chiffrée |
git ls-files, rg, Get-ChildItem |
DC0-T1a : 4 erreurs (ModSources 15 suivis et non 720, états git, un « manquant » qui est dans l'addon) (etat/sandbox/DC0/DC0-VAL.md l. 7) ; décompte « 4 au lieu de 5 » (26 § 2) |
N0 localise mais ne suit pas un mécanisme (mémoire) ; deux dépôts (jeu, addon) + dépôt local Content/Modules/.git |
chiffres recoupés |
requêtes types par dépôt ; distinguer suivi / ignoré / non suivi ; toujours livrer la commande et le compte brut |
| B2 Carto C++ |
S2-CART, S4-CART, S5-CART (28 Ko d'écarts), SB2-CART, DC0-T1b |
N1–N3 |
modules → carte de découpe, appels croisés |
lecture, rg, Build.cs |
aucun échec noté ; S2-T2 sur-classé (22 § 4) |
dépendance cachée par Build.cs (LPAnimMeasure malgré Optional, 22 § 1) ; IWYU révélé par l'unity build |
IMPL compile du premier coup (S3/S4/S5-T2) |
gabarit CART (fichiers, bornes, appels à casser, exports) ; lecture des Build.cs / .uplugin |
| B3 Carto Blueprint / assets |
L5-diag (etat/L5-diag_dump*), PROP-CART, VQ0-CART, L6e (LPDumpWidgetTree), L6f (LPDumpComponents) |
N1 (localiser) – N3 (suivre un graphe) |
asset → dump texte, chaîne d'appels |
LPDumpFunction [-Exec], LPDumpCDO, LPDumpComponents, LPDumpWidgetTree, LPDumpSave ; Blueprint Reader (D8, UA-FAB) |
analyse statique ERR-036 fausse (dalle de neige) : la mesure a montré le plafond (10 § 3.5) ; PROP-CART : fonctions absentes du dump (PROP-CART.md l. 117) |
identifier les nœuds ULPStringCompat::Split par nom de fonction (mémoire build-pitfalls) ; GI 51,9 Mo ; graphes identiques ≠ même comportement (10 § 3.6) |
chaîne d'appels citée nœud par nœud |
catalogue des commandlets de dump et de leurs options ; « mesurer avant de conclure » ; N3 minimum pour suivre un graphe |
| B4 Audit sous-système / contrat |
UA-T1 JEU (N1), UA-T2 PLUGINS (N3), UA-T3 MODS (N4→fable), UA-T7 OUTILS (N3) |
N1–N4 |
sous-système → rapport établi / estimé / incertain |
lecture sources jeu + moteur |
UA-T2 et UA-T4 ont conclu « Fab / Bridge absents de 5.8 » sur une installation incomplète ; ruptures mal attribuées (:155 au lieu de :127) (UA-SYNTHESE § 6) |
vérifier l'état de l'environnement avant d'en tirer une conclusion ; contrat des mods figé (doc 27) |
chaque constat avec fichier:ligne ; points remis à un essai |
check « environnement complet ? » ; table établi / estimé / incertain ; liste des surfaces du contrat des mods |
| B5 Recherche externe / sources moteur |
UA-T4 MOTEUR (notes 5.6–5.8), UA-T7 (VS 2026, MSVC), VQ3 (API RHI vérifiée dans les sources 5.5, 26 § 4), CX-B08 / CX-B12 (sources moteur 4.27 / 5.5) |
N3–N4 |
question → constat sourcé (URL, fichier:ligne) |
WebSearch / WebFetch, sources UE_5.x/Engine/Source |
ban MSVC 14.44 affirmé à tort (version du dossier ≠ version du compilateur) (UA-SYNTHESE § 6 UA-MOTEUR 1) ; notes lues par filtrage, risque de manque (UA-MOTEUR R9) ; VQ1-SPEC « ≤ Epic moteur » sans lire BaseScalability.ini (26 § 3) |
une note de version ne remplace pas la lecture du code moteur ; cas limites (ParseIntoArray(""), Find("")) |
toute affirmation sur le moteur citée dans le code installé |
méthode : notes officielles → code moteur installé → essai ; gabarit de constat sourcé ; recoupement par essai (UA-T5) |
| B6 Catalogue / navigateur |
etat/U58/UA/UA-FAB.md (bibliothèque Fab, 394 éléments, lecture seule) |
N2 |
filtre → sélection argumentée |
navigateur, API Fab en lecture |
aucun noté |
rien installer ni acquérir ; versions déclarées par le vendeur ≠ vérifiées ; licence Fab standard interdit la redistribution (mémoire migration-method, HAIRS1) |
liste + motif + version moteur |
règles de sécurité navigateur (aucun achat, aucune acceptation) ; colonnes licence / version / usage ; « éditeur seulement, non commité » |
| B7 Conformité |
PUB1-CART, PUB2-CART (234 fichiers / 1 397), PUB2-SIM (CONFORME après T3b) ; licences coiffures (CC BY seulement) |
N1 (balayage) + N2 (arbitrage, PUB2-ARB) + utilisateur |
périmètre publié → fichiers à retirer / neutraliser |
git rev-list --objects, chaînes ASCII/UTF-16 des .uasset |
première simulation PUB2 avec réserves R1–R2 bloquantes, levées par T3b (PUB2-SIM.md l. 6) ; compte GitHub signalé (mémoire github-publication) |
ne jamais recopier le contenu trouvé (extraits tronqués, « les moins crus ») ; images non analysées visuellement (PUB2-CART) ; personnes réelles, adresse e-mail, jeton |
0 chemin interdit dans tout l'historique publié |
liste des catégories interdites (PUB1/PUB2), méthode de balayage historique complet, règle de non-reproduction, verdict par catégorie |
C — Conception
| Type |
Ex. |
Niv. |
E/S |
Outils |
Échecs (source) |
Pièges |
Accept. |
Skill |
| C1 SPEC |
S1-SPEC, S7-SPEC (checklist C1–C5), SB1-SPEC, DC0-SPEC, VQ2-SPEC (« exécutable », 26 § 3) |
N2–N4 |
CART + décisions → signatures, règles, risques, questions ouvertes |
— |
VQ1-SPEC : hypothèse non vérifiée recopiée comme acquise (26 § 3) ; décision d'architecture (submodule) prise en INT sans SPEC (22 § 5.2) |
interdits répétés dans chaque SPEC (L7c) ; contrat des mods figé |
IMPL compile au premier passage, écarts listés |
gabarit SPEC (types, ordre, repli, risques R#, questions Q#, interdits) ; « toute valeur moteur citée est lue dans le moteur » |
| C2 Plan de chantier |
20 (AP1–AP7), 24 (DC0–DC4), 27 (UA, U0–U9), 19 (Dbg) |
N2–N4 + utilisateur |
fiche projet → lots, décisions, risques, acceptation |
gabarit de séquençage |
plan S3 « submodule » impossible vu la structure (22 § 3) |
décisions verrouillées vs proposées ; portes intermédiaires (G-U3, G-U6) |
validé par l'utilisateur |
gabarit phases 0–5 ; tableau décisions ; registre des risques |
D — Réalisation
| Type |
Ex. |
Niv. |
E/S |
Outils |
Échecs (source) |
Pièges |
Accept. |
Skill |
| D1 C++ runtime (sous-systèmes) |
L7l ULPOutdoorRoomSubsystem ; L7j ULPSecondScreenSubsystem ; CHG-243 LPMapMarkersGuardSubsystem ; CHG-244 LPPersonPropGuardSubsystem ; VQ2/VQ3 ; H1 LPHairstyleSubsystem |
N2–N3 |
SPEC / cause mesurée → classe compilée |
VS, UBT, Live Coding |
ERR-038 : sous-système retiré, le critère ne distinguait pas les cas (CHG-070 à 073, 10 § 3.8) ; ERR-041 introduit en H1 (module absent = actif) ; ERR-043 « à valider en PIE » (registre) |
patron GameInstanceSubsystem + FTSTicker + réflexion sur GI (mémoire migration-method) ; ScanPathsSynchronous sous WITH_EDITOR ; unity C2374 |
compile + preuve de chargement (ligne de journal du nouveau code) + relevé runtime |
patron du sous-système garde ; règle « si le critère ne distingue pas, corriger dans le Blueprint qui décide » ; journalisation LogLifePlay |
| D2 Refactor / extraction |
S2-T2, S3-T2 (inter-dépôts), S4-T2 (4 274 LOC → 7 unités), S5-T2, SB2-T2/T3, DC1–DC3 |
N3 |
CART + SPEC → code déplacé, note d'écarts |
UBT, git (2 dépôts) |
aucune régression (22, DC4-EVAL) ; S2-T2 sur-classé (22 § 4) |
code sandbox jamais dans le jeu (mémoire sandbox-not-committed) ; DLL périmées de l'addon |
build vert, parité (boîte du couple au millième, 22 § 1) |
règles jeu / addon ; liste d'écarts obligatoire ; parité mesurée avant / après |
| D3 Portage d'API / compat |
observé : LPStringCompat, LPMeshCompat, LPNavigationHelpers ; anticipé (5.8) : U3 (LPCoupleSimCore.cpp:127, LPDataCache.cpp:198), U9 (interrupteurs) |
N3 (N4 si blocage) |
erreurs de compilation → correctifs |
UBT, sources moteur |
(anticipé) |
ne pas retirer les compat UE4 (P2) ; FJsonObject à clés non-FString ; rejouer LPTestStringCompat (G-U3) |
0 erreur, LPTestStringCompat vert |
table API retirée → remplaçant (UA) ; boucle erreurs (N3) → build (N0) ; banc UE4/UE5 pour U9 |
| D4 Slate / UMG |
VQ2 (injection LPVideo*), CHG-241/242 (VQ-fix), UI15 LPTitleModManager, CX-B09 marges UButton, H3d avertissement Slate |
N2–N3 |
SPEC → widgets injectés |
LPDumpWidgetTree, LPEditWidget, Slate |
VQ déclaré PASS puis 5 correctifs (faux positifs CategoryOf, spam SetByScalability…) (CHG-241) ; BLOCKED-UI sur tous les lots VQ (26 § 1) |
défauts de style UE4 → UE5 non sérialisés (CX-B09, ERR-034) ; ticker contre Blueprint |
clic réel ou commande console de debug |
recommandation 26 § 6.2 : commandes LP.* pour automatiser ; styles moteur FCoreStyle / FUMGCoreStyle ; captures avant / après |
| D5 Commandlets éditeur |
CX-B01…B12 (LPFix*), LPResavePackages, LPHairFromStaticMesh, LPAnimEval/Twist/Catalog/Identify |
N2–N3 |
asset + règle → asset modifié + journal |
patron -DryRun / rapport / correction (Rapport 09-28 § 6) |
ERR-025 : perte de police dépendant de l'ordre, vue seulement en lisant le diff (10 § 3.7) ; CX-B02 essai 1 rejeté et restauré (CHG-019) ; LPFixDeprecatedNodes « ne contrôle rien » (journal L7b) ; LPAnimCatalog sans argument réécrit un fichier (DC4-EVAL § 3) |
registre d'assets non exploré en commandlet (scan_paths_synchronous) ; NodeGuid régénérés au chargement |
simulation = nombre attendu ; diff indépendant ; CompileAllBlueprints sans nouvel avertissement |
patron commandlet (DryRun, contrôle intégré, journal etat/<Lot>_<Cmd>_<horodatage>.txt) ; défauts sûrs (pas d'écriture sans argument) |
| D6 Python éditeur |
Tools/anim/RetargetPack.py, HairMaterials.py, AuditAssets.py, BuildCollections.py, DiffRemplacementNoeuds.py |
N1–N2 |
config JSON → assets / rapport |
-run=pythonscript |
sorties unreal.log invisibles sans -FullStdOutLogOutput ; recuisson défait LPAnimTwist (mémoire build-pitfalls) ; save_loaded_asset n'enregistre pas (13 § 4) |
only_if_is_dirty=False ; noms d'assets insensibles à la casse |
assets écrits + journal relu |
liste des pièges pythonscript ; ordre recuisson → LPAnimTwist → LPAnimEval |
| D7 PowerShell d'outillage |
Snapshot.ps1, Restore.ps1, LogStats.ps1, BuildMod.ps1, AnimPipeline.ps1, HairPipeline.ps1, SplitModules.ps1 |
N1 |
spec → script + essai |
pwsh 7, cmd |
BuildMod -Retarget : chemins sans guillemets, éditeur fermé sans journal (mémoire) ; & $bat | Out-Null attend l'éditeur ; lancement dans PowerShell 5.1 (AsHashtable) (DC1-VAL.md l. 8) ; version 2026.10.4 coupée hors cmd /c (mémoire) |
espace dans LifePlay-master 5.5 ; N0 réécrit un script qui échoue (mémoire) |
essai réel, code de sortie, journal |
interpréteur explicite (pwsh 7) ; cmd /c start "" /wait cmd /c ; jamais de modification de script par l'exécutant |
| D8 Configuration |
VQ1 DefaultScalability.ini ; O1 ; +DirectoriesToAlwaysCook=/Game (CHG-025) ; S7 .uplugin ; DC4 MCP Optional ; anticipé : ToolchainVersion, bUseZenStore=False, Target.cs Latest |
N1–N2 |
décision → ini / descripteur |
— |
VQ1 sans CHG ni rollback écrit (26 § 3) ; écart à Epic qui change le rendu de tous les joueurs (VQ5-VAL § 4) ; AndroidFileServer réécrit à chaque lancement (CHG-010) |
verrous L7c ; Optional ne suffit pas si Build.cs dépend (22 § 1) |
diff avec le fichier moteur de base |
comparer à Engine/Config/Base*.ini ; CHG obligatoire ; liste des verrous |
| D9 Chaînes de contenu |
O7e / HAIRS1 (13_Protocole_Coiffure), AP1–AP7 (20, CHG-205 à 224), mods lpr_* |
N1 (pilote) – N3 (méthode) |
sources (FBX, clips) → assets / mod |
HairPipeline.ps1, AnimPipeline.ps1, commandlets LPModTools |
ajustement sur la tête entière, liaison rigide (13 § 4) ; correction itérative déformante, formule directe retenue (mémoire pose-transfer) |
atelier dans l'addon depuis DC3 ; Mods/ vide avant commit / build (CHG-110) |
contrôle en jeu utilisateur, rapport LPAnimEval |
protocoles 13 et 20 ; pièges ; licences (CC BY) |
E — Construction
| Type |
Ex. |
Niv. |
E/S |
Outils |
Échecs (source) |
Pièges |
Accept. |
Skill |
| E1 Compilation UBT |
SB1-T4, SB2-T4, DC1-T2, DC2-T2, DC3-T3a (haiku) ; UA-T5 |
N0 |
cible → code de sortie, erreurs fichier:ligne |
Build.bat … -WaitMutex |
« code 0 » sans recompiler l'addon (cache Makefile.bin) (DC4-EVAL § 2) ; DLL de l'addon plus anciennes chargées à la place (mémoire, AP7) ; S1 jamais compilé (22) ; sandbox ouverte a bloqué un build (SB4-EVAL) |
éditeur fermé ; une compilation à la fois ; déplacer (pas supprimer) le Makefile.bin après un test sans addon |
code 0 et modules attendus recompilés et preuve de chargement |
pièges de lifeplay-build-pitfalls recopiés tels quels ; lecture du journal : toolchain, modules compilés, avertissements nouveaux |
| E2 Commandlets en lot |
CompileAllBlueprints, LPCheckStreetMap, tournées LPAnimEval (AP2–AP7 etat/AP*_*.txt) |
N0–N1 |
commande → journal archivé + résumé |
RunCommandlet.ps1 |
SB2-T0 a accepté avertissement au lieu de ok (SB4-EVAL) |
journal dans etat/<Lot>_<Cmd>_<horodatage>.txt |
verdict recopié, pas interprété |
gabarit de compte rendu factuel ; critère d'arrêt strict |
| E3 Cuisson / empaquetage |
L7g Shipping, O2 IoStore, builds V1.x, DC4-T2a, BuildDebug.ps1 |
N0 (exécution) – N1 |
config → build + journal de cuisson |
RunUAT BuildCookRun |
ERR-026 : 3 257 paquets cuits sur 8 561 (chargement par chemin) ; O2 : liste des villes vide en Shipping, test par Continuer seulement (mémoire packaging-test-paths) ; NO_LOGGING sans GetCategoryName (mémoire) ; commit pendant Mods/ non vide (CHG-110) |
Shipping ne journalise pas ; -createreleaseversion via cmd /c |
paquets attendus, nouvelle partie + Continuer + mods + sauvegarde |
check-list de tests d'empaquetage ; DirectoriesToAlwaysCook ; Mods/ vide ; dossier de build neuf |
| E4 Cuisson DLC des mods |
H3b BuildMod.ps1, DC3-VAL V4 (29/29 fichiers SHA-256 identiques) ; anticipé U7 (recuisson des 3 mods 5.8) |
N1 |
ModSources/<Mod> + version de référence → zip |
BuildMod.ps1, -dlcname, -basedonreleaseversion |
mod 5.5 dans 5.8 : risque R1 (UA-SYNTHESE § 3) |
Zen store par défaut en 5.8 (R3) ; référence Releases/<version> ; images non déterministes |
contenu identique (SHA) au mod de référence ; essai en jeu |
contrat figé des mods ; contrôle des conteneurs ; comparaison SHA |
| E5 Réenregistrement de masse |
L4-CX-B07 (239 paquets, CHG-035) ; anticipé U5 (798 ou 9 068 assets, D10) |
N1 + N0 |
liste → paquets UE5 / 5.8 |
LPResavePackages, AssetHeaders.ps1 |
ERR-019 plantages du resave de masse (ouvert) |
Blueprint Backup & Restore avant ; par lots, hors Heavy d'abord |
0 plantage, CompileAllBlueprints = relevé |
procédure par lots, sauvegarde, relevé avant / après |
F — Vérification
| Type |
Ex. |
Niv. |
E/S |
Outils |
Échecs (source) |
Pièges |
Accept. |
Skill |
| F1 VAL statique |
S1-VAL, S7-VAL, VQ5-VAL (chemins de code) |
N0–N2 |
IMPL + SPEC → PASS / FAIL / BLOCKED |
grep, relecture |
VQ4-VAL a rejoué la SPEC sans relire l'IMPL (26 § 3) ; VAL qui écrit la doc qu'elle valide (22 § 5.1) |
verdicts nuancés (PASS-STATIC, BLOCKED-UI) |
chaque point à confirmer de l'IMPL tranché |
VAL en lecture seule sur les docs d'acceptation ; relire toutes les IMPL amont |
| F2 Smoke / non-régression auto |
VQ4 (-nullrhi), SB2-T5 / SB4-T1b (tournée Mesure, JSON/CSV identiques), DC1-VAL, DC3-VAL |
N0–N1 |
build → comparaison à une référence |
lanceurs .bat, AnimPipeline -From 5 -To 5, SHA-256 |
anomalie DC2 réparée (DC4-EVAL) |
ignorer dates et images non déterministes, mais le dire |
0 écart hors liste d'exclusions |
liste d'exclusions connues (dates, 20 images) ; référence SB2-REF |
| F3 Mesure runtime A/B |
L5 (ERR-027), L7i (ERR-005), O9 (71 s → 15 s) |
N1 (A/B de journaux) – N3 (écart inexpliqué) |
deux journaux → taux normalisés |
LogStats.ps1 -Compare |
des heures perdues sur des sessions non comparables (Rapport 09-28 § 5, mémoire runtime) ; base de comparaison invalide (référence sans preset de quête, journal l. 343) ; deux fausses pistes en session libre (journal L7i) |
jamais UnrealEditor -game ; index SPAWN > 0 ; même parcours, vitesse normale ; anticipé (5.8) : référence = build 5.5 DC4 |
taux par personnage, deux journaux au même point |
protocole A/B (doc 03 § 3.5, 10 § 3.3) ; check de comparabilité avant toute conclusion |
| F4 Diff indépendant |
DiffRemplacementNoeuds.py (L7a, L7b) ; L7h (280 villes) ; LPDumpAssets avant / après |
N1 |
avant / après → seuls les éléments attendus diffèrent |
scripts de diff |
ERR-025 (diff non lu = rien de prouvé, 10 § 3.7) |
exclure NodeGuid, positions, EdGraph_N |
diff relu, écarts tous expliqués |
profils de diff par lot ; obligation de lecture |
| F5 Validation visuelle / en jeu (utilisateur) |
L6e, L7c/L7d (même cadrage), DC1 contrôle visuel, SB1-T5 |
N1 (préparer) + utilisateur |
build + consignes → retour, captures |
build Development + .bat |
deux retours arrière à tort : L7b (CHG-038/039, accélération du temps) et L7d (cadrages différents) (mémoire compare-before-rollback, 10 § 3.4) ; ERR-038 jugé concluant à l'impression, relevé contraire (10 § 3.8) ; nombreux défauts préexistants en 4.27 (10 § 3.1) |
anticipé (5.8) : rendu par défaut changé (Lumen, MegaLights) → écarts à arbitrer (27 Risques) |
captures même lieu / cadrage / heure ; retour utilisateur |
consignes de test (lieu, durée, actions, captures) ; question « existe-t-il déjà ? » ; retour arrière proposé, jamais lancé |
| F6 Preuve par l'échec / d'absence |
DC4-T1 / T1-fix (clone sans addon), UA-T5 (essai de compilation 5.8), DC2 (compilation sans addon) |
N1 minimum |
copie jetable → constat brut |
clone, Build.bat |
DC4-T1 haiku a contourné la consigne pour réussir (DC4-BUILD l. 1) ; UA-T5 sur moteur incomplet : section NON PROBANTE (UA-ESSAI.md l. 81) ; écart à la consigne (Mcp non désactivé, UA-ESSAI § 2) |
« l'échec EST le résultat » ; vérifier que l'environnement est complet |
constat brut + inventaire de toute modification de la copie |
consigne anti-contournement ; contrôle des ajouts à la réception ; check « installation complète » |
G — Débogage
| Type |
Ex. |
Niv. |
E/S |
Outils |
Échecs (source) |
Pièges |
Accept. |
Skill |
| G1 Sémantique moteur |
ERR-002/027 (CX-B08, ParseIntoArray("")), ERR-005 (CX-B12, FString::Find("")), ERR-034 (marges UButton), ERR-020 (broches orphelines) |
N3–N4 |
symptôme + A/B → cause dans le code moteur |
sources 4.27 / 5.5, LPCheckMeshAssignment, LPTestStringCompat |
premier portage (avant 09-29) abandonné : correctifs non fiables, contenu remis à 4.27 (mémoire migration-method) |
graphes identiques, résultats différents ; propriétés delta-sérialisées |
cas limite reproduit par un test |
méthode 10 § 3.6 ; anticipé (5.8) : rejouer LPTestStringCompat à chaque version |
| G2 Défaut runtime visuel / gameplay |
ERR-036 (plafond WallT), ERR-038, ERR-043 (PROP), ERR-008 |
N2–N3 |
retour utilisateur → cause mesurée → correctif |
-LPDumpEvery, -LPDumpPaths, -LPTrace*, LPDumpFunction -Exec |
hypothèse statique fausse (ERR-036) ; ERR-038 correctif retiré (CHG-073) |
demander d'abord si le défaut existe en 4.27 / build précédent (10 § 3.1) ; vitesse du jeu (10 § 3.2) |
relevé runtime puis impression utilisateur |
options de diagnostic (09 § 4) ; ordre : préexistant ? → conditions → mesure → correctif |
| G3 Panne de build / outillage |
AP7 (DLL périmées, guillemets), DC3 (Makefile.bin), DC1 (PowerShell 5.1) |
N1–N2 |
symptôme → cause d'environnement |
dates de fichiers, journaux UBT |
voir E1, D7 |
— |
preuve de chargement du nouveau code |
catalogue symptôme → cause (mémoire build-pitfalls) |
| G4 Plantage |
ERR-019 (BulkData IsUnlocked, ouvert) ; plantage à la fermeture après conversion (sans conséquence, mémoire) ; anticipé R1 mod 5.5 dans 5.8 |
N3 |
Saved/Crashes → pile, cause |
journaux, minidumps |
ERR-019 jamais traité |
distinguer plantage bénin connu |
reproduction et pile |
lecture d'un crash UE (callstack, LogStreaming, AsyncLoading2) |
| G5 Performance / profilage |
O9 (collision MapMarkers), 18 (sessions A/B/C), PopulateRaws 12,6 s → 1,26 s |
N1–N3 |
trace → goulets, décision |
Insights CLI, SummarizeDebugCsv, ChaosVD ; skill Cursor lifeplay-debug-build |
traces de 10 min > 50 Go de RAM (mémoire) |
jamais -csvCaptureFrames ; mesurer en Development, pas -game (19 § 2) |
gain chiffré sur le même parcours |
reprendre le skill Cursor existant dans l'arbre |
H — Intégration et publication
| Type |
Ex. |
Niv. |
E/S |
Outils |
Échecs (source) |
Pièges |
Accept. |
Skill |
| H1 Commits par phase |
CP-T1 COMMIT-CART (432 l.), CP-T1b COMMIT-PLAN, CP-T3 CP-RUN (24 commits), CP2-RUN (3 commits) |
N1 |
journal + instantanés → commits |
git, COMMIT-PLAN.json |
aucun commit côté jeu pendant S0–S8 (22 § 6) ; VQ hors commit (26 § 2) ; fichiers d'erreur de chemin à écarter, encore à la racine (LPSandboxMeasure*.cpp) (COMMIT-CART § 4.6) |
index déjà modifié (163 suppressions) ; Mods/ vide ; identité noreply |
SHA de l'arbre identiques avant / après (CP2-RUN) |
règle « commit de phase en fin de lot » ; contrôle d'arbre par SHA ; identité vérifiée |
| H2 Multi-dépôts / pin |
S3-INT, pins DC (3e9c32f → 79f0205), dépôt local Content/Modules/.git |
N1 |
commit addon → pin jeu |
git ×3 |
trois identités git pour un auteur (22 § 6) ; pin vers un commit non poussé (22 § 3) ; submodule abandonné (22 § 6) |
jamais de code sandbox dans le jeu ; addon privé ; modules jamais poussés |
pin = commit existant ; identités identiques |
ordre addon → pin → jeu ; git config user.email dans chaque dépôt |
| H3 Réécriture d'historique |
PUB1-T2/T3, PUB2-T3 (filter-branch, ≈ 11 min) |
N1 (exécution) + N2 (arbitrage) + utilisateur |
règles de retrait → historique filtré |
filter-branch, sauvegarde .git |
commit mal formé (sans effet) (PUB2-T3) ; hashes d'autres fiches invalidés (DC4-EVAL § 4) |
sauvegarde de .git d'abord ; gel des autres sessions (gabarit règle 7) |
rev-list --objects : 0 chemin interdit |
procédure sauvegarde → filtre → contrôle → simulation ; gel |
| H4 Publication / simulation |
PUB1-SIM, PUB2-SIM ; V1.1–V1.5 (tags, archives, SHA-256) |
N1 (simulation) ; push = utilisateur |
état local → table des refs, verdict |
gh auth status, ls-remote |
compte signalé (mémoire github-publication) |
jamais l'adresse Gmail, jeton, .claude/, McpAutomationBridge ; GitHub = main + tags v1.0–v1.5 |
simulation CONFORME, accord explicite |
check-list 10 § 6 et mémoire github-publication ; « rien n'est poussé sans accord » |
| H5 Opérations destructives sur l'arbre |
S3-T3 (purge du jeu), DC3 (déplacement de 57 fichiers), DC4-T1 (clone) ; anticipé U0-T3 (copie de travail 5.8, garder .mcp.json) |
N1–N2 minimum |
consigne → arbre modifié + inventaire |
robocopy, Move-Item, clone |
S3-T3 confiée à M0, sans build, junction contraire à la décision finale (22 § 4–5) |
déplacer, pas supprimer ; instantané d'abord ; ne pas écraser .mcp.json |
inventaire avant / après, build |
règles de réversibilité ; liste des fichiers à préserver (10 § 1.7) |
I — Documentation
| Type |
Ex. |
Niv. |
E/S |
Outils |
Échecs (source) |
Pièges |
Accept. |
Skill |
| I1 Journal CHG / registre ERR |
CHG-001 à 248, ERR-001 à 043 |
N1 |
changement → entrée avec retour arrière |
— |
VQ1 et VQ2 sans CHG (26 § 3) ; colonne en trop, fins de ligne (DC4-EVAL § 2) |
une entrée par changement, avec commande de retour arrière |
entrée présente, format du tableau intact |
gabarits de lignes CHG / ERR ; statuts ERR |
| I2 Docs numérotées / guides |
18, 19, 25, 26 ; renumérotation (CHG-246) ; guide moddeur (EN) |
N1 (N4 synthèse) |
constat → doc FR |
— |
doc 21 § Lots périmé, doc 23 § 6 périmé (22, 26) ; numéros en double (CHG-246) |
docs en français ; bandeau « historique 4.27 » sans réécrire le passé (27 U2) |
liens valides, index README à jour |
règles de numérotation, index, bandeau historique |
| I3 Fiches de lot / mémoire |
toutes les fiches etat/** ; mémoire projet |
N1 (fiches) ; N2 (mémoire) |
— |
— |
« une case périmée oubliée par lot » (DC4-EVAL § 2) |
en-tête « Modèle prévu | utilisé » obligatoire |
en-tête et sections du gabarit |
gabarits CART / SPEC / IMPL / BUILD / VAL / INT / EVAL |
J — Environnement
| Type |
Ex. |
Niv. |
E/S |
Outils |
Échecs (source) |
Pièges |
Accept. |
Skill |
| J1 Chaîne d'outils |
UA-T7 OUTILS ; anticipé U0-T2 / T2b (VS 2026, ToolchainVersion) |
N0 (relevé) – N3 (analyse) |
poste → écarts, actions utilisateur |
Build.bat -help, VS Installer (utilisateur) |
ban MSVC mal lu (voir B5) |
Zen partagé 5.5 / 5.8 (R8) ; installation par l'utilisateur seulement |
build de contrôle 5.5 inchangé |
exigences 5.8 ; coexistence VS 2022 / 2026 ; relevé Zen avant premier lancement |
| J2 Chemin moteur multi-version |
anticipé (5.8) U2 (Tools/Engine.ps1), UA-OUTILS § 2 (8 scripts de l'addon à UE_5.5) |
N1 |
scripts → point unique |
rg |
(anticipé) |
lanceurs .bat, mémoire |
aucun UE_5.5 codé en dur hors config |
inventaire des chemins ; un seul point de configuration |
3. Compétences transverses (à factoriser dans un skill socle)
| # |
Compétence |
Pourquoi (source) |
Contenu |
| X1 |
Preuve établi / estimé / incertain |
UA-SYNTHESE (conventions) ; verdicts PASS-STATIC, BLOCKED-UI (22, 26) |
chaque affirmation sourcée fichier:ligne ou commande ; incertain → essai nommé |
| X2 |
Protocole instantané / CHG / retour arrière |
10 § 2, mémoire migration-method |
Snapshot.ps1 avant, CHG avec rollback, retour arrière proposé jamais lancé, instantané <lot>-retour |
| X3 |
Interdits et arrêt |
DC4-T1, SB2-T0, mémoire subagents |
pas de correction d'initiative, pas de script réécrit, « l'échec est le résultat », 0 résultat = échec |
| X4 |
Comparabilité |
Rapport 09-28 § 5, 10 § 3.3, mémoire compare-before-rollback |
même build, même parcours, même cadrage, index SPAWN > 0, préexistant ? |
| X5 |
Coordination entre sessions |
DC4-EVAL § 4, PROP-CART, gabarit règle 7 |
prévenir, gel, hashes datés, une ressource partagée à la fois (builds, Binaries) |
| X6 |
Sécurité de publication et de contenu |
PUB1/PUB2, mémoire github-publication |
identité, jeton, e-mail, contenu adulte jamais recopié, rien poussé sans accord |
| X7 |
Environnement Windows |
DC1-VAL, mémoire build-pitfalls |
pwsh 7 explicite, cmd /c, guillemets (espace dans le chemin), éditeur fermé |
| X8 |
Traçabilité modèle et rôles |
22 § 4, 26 § 3, UA-PLUGINS |
« Modèle prévu | utilisé » (effort compris), VAL ≠ DOC, propriétaire de chaque étape |
| X9 |
Recomptage / recoupement |
Rapport 09-28 § 5.5, SB4-EVAL |
tout chiffre catégorique recoupé par une seconde méthode |
| X10 |
Handoff sans perte |
26 § 3 (VQ1-VAL), 22 § 3 (orphelins) |
une ligne de handoff ; points à confirmer → cases de VAL ; registre des reports |
4. Priorités (types les plus coûteux en échecs → skill en premier)
| Rang |
Type(s) |
Coût constaté |
Source principale |
| 1 |
F5 + F3 + G2 validation en jeu, A/B, défaut visuel |
2 retours arrière à tort, plusieurs heures perdues sur des sessions non comparables, un correctif retiré (ERR-038), fausses pistes |
10 § 3, Rapport 09-28 § 5, mémoire compare-before-rollback |
| 2 |
A2 + A3 contre-vérification, suivi, handoff |
succès fabriqué (DC4-T1), critères d'arrêt ignorés, VAL perdue (VQ1), orphelins, 24 commits à reconstituer après coup |
DC4-EVAL, SB4-EVAL, 26, 22, COMMIT-CART |
| 3 |
E1 + G3 compilation et pannes d'outillage |
« code 0 » trompeur (cache UBT), DLL périmées, S1 jamais compilé, script qui ferme l'éditeur sans journal |
DC4-EVAL, mémoire build-pitfalls, 22 |
| 4 |
E3 (+E4) empaquetage |
build incomplète (ERR-026), liste des villes vide (O2), suppression de sources de mods (CHG-110) |
registre, mémoire packaging-test-paths |
| 5 |
F6 + H5 preuves par l'échec et opérations destructives |
contournement (DC4-T1), essai non probant (UA-T5), purge sous-classée (S3-T3) |
DC4-BUILD, UA-ESSAI, 22 |
| 6 |
B5 + B4 recherche externe et audit |
conclusions fausses sur un environnement incomplet, ban MSVC mal lu, SPEC non vérifiée |
UA-SYNTHESE § 6, 26 § 3 |
| 7 |
D5 + F4 commandlets Blueprint et diffs |
perte silencieuse (ERR-025), essai rejeté (CX-B02), commandlet sans contrôle |
10 § 3.7, journal L4/L7b |
| 8 |
D4 UI |
PASS puis 5 correctifs, BLOCKED-UI permanent |
CHG-241, 26 |
| 9 |
H1–H4 git et publication |
identités multiples, compte signalé, réécritures concurrentes |
22 § 6, mémoire github-publication |
| 10 |
B1 inventaire rapide |
erreurs de décompte corrigées à chaque fois |
DC0-VAL, SB4-EVAL |
Pour la migration 5.8 (doc 27), les types les plus sollicités sans skill aujourd'hui sont D3, E5, E4, J1–J2,
F3 (référence 5.5 DC4) et F5 (rendu par défaut 5.8). Ordre de rédaction proposé : socle X1–X10 → E1/G3
(U2–U4) → D3 (U3) → E5/E3 (U5) → F3/F5 (U6) → E4 (U7) → H4 (U8). Le seul skill existant
(.cursor/skills/lifeplay-debug-build, Cursor) couvre G5 et se reprend tel quel dans l'arbre.