242 lines
41 KiB
Markdown
242 lines
41 KiB
Markdown
# 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.
|