LifePlay-Revival/Docs/Migration/etat/AG/TRACE1/TRACE1-T2-PROPOSITION.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

13 KiB

Fiche TRACE1-T2 — Niveau N2 — Modèle prévu opus | utilisé opus-5-5 (claude-opus-5-5, déclaré par l'environnement) — Agent orchestrateur TRACE1 (session principale) — Skills lp-lot, lp-paths, lp-doc, sk-change-safety

TRACE1-T2-PROPOSITION : résumé, index et passage mensuel des traces (2026-10-13, révision 1)

Proposition à soumettre à l'utilisateur par Big Boss. Rien n'est appliqué : aucun dossier créé, aucun fichier déplacé, aucun script écrit, rien de commité. Chiffres : TRACE1-T1-INV.md. Règle de départ : mémoire traces-logs-archivage (utilisateur, 2026-10-13).

Révision 1 (consigne de l'utilisateur dans cette session, 2026-10-13) : « les traces et log sont vite périssables. il n'est pas nécessaire de les conserver ad vitam. par contre un court résumé pour situer le contexte et les résultats est plus important ». Conséquences : plus de dossier d'archive à alimenter ni de recopie ; le résumé devient le livrable durable, écrit par le lot quand il connaît encore le contexte ; le fichier reste où il a été produit jusqu'à son passage en corbeille ; le vidage de la corbeille à 30 jours n'est plus un risque à traiter.

1. Périmètre proposé

Dans la règle Hors règle
Traces Insights .utrace ; profilage (Saved\Profiling : CSV, LLM, MemReport, LPDebug, ChaosVD) Transcriptions des sessions Claude (%USERPROFILE%\.claude\projects) : gardées (règle de l'utilisateur)
Journaux de commandes : Build.ps1, RunCommandlet.ps1, BuildDebug.ps1 (Saved\Logs\portage), UAT des cuissons de lot, éditeur sans interface, jeu lancé pour une fiche (<build>\…\Saved\Logs) Livrables .md / .csv de etat\ (suivis par git)
Dumps et sorties de commandlets (.txt de etat\<projet>\<lot>\ et de portage, *_assets_avant/apres.txt) Verrous et tickets du gardien (etat\REPO\), scripts et images de preuve de etat\
Plantages produits pendant une fiche (Saved\Crashes, .dmp, .runtime-xml) Les builds eux-mêmes (Q5) et les instantanés de Snapshot.ps1 (manifest.csv, Q6)
Sorties de CollectDebugArtifacts.ps1 (Backup_5.5\Dbg-*) Journaux tournants des outils d'Epic dans le profil (UBT, Zen, Launcher, CrashReportClient : Q4)

2. Où vivent les traces : sur place, pas d'archive longue

  • Une trace reste là où elle a été produite (Saved\Logs\portage, Saved\Profiling du build, etat\<projet>\<lot>\, Backup_5.5\Dbg-*) jusqu'au passage mensuel qui l'envoie à la corbeille. Aucune recopie, aucun dossier LifePlay_Traces (variante de la version initiale, abandonnée : elle conservait des fichiers que l'utilisateur juge périssables).
  • « Archivé proprement » = résumé et indexé : l'index dit où est la trace, pourquoi elle a été prise et ce qu'elle a montré ; c'est cela qui reste.
  • Rien de lourd ni aucun chemin C:\Users\<compte> n'entre dans git : seul l'index (texte) y va.

3. Index : un fichier, une ligne par fiche

Docs\Migration\etat\TRACES\TRACES-INDEX.csv, suivi par git (les .csv d'etat\ le sont déjà) : le résumé survit au fichier et à la corbeille. CSV ;, UTF-8 sans BOM, fins de ligne LF (comme etat\MAPPING.csv).

Une ligne par ensemble de traces d'une même fiche (le contexte et le résultat sont ceux de la fiche ; une fiche produit 1 à 10 fichiers : journal de build, journal de jeu, .utrace, dumps). Une trace isolée ou très lourde peut avoir sa ligne. Écart à la demande initiale de Big Boss (« une ligne par trace ») : la liste des fichiers reste rejouable par la colonne fichiers ; à trancher en Q2.

date;lot;fiche;types;fichiers;nombre;octets;statut;resume
2026-10-13;STE;STE-J6;utrace, log-jeu;LifePlay_Build_5.8_STE-J6_Development\Windows\LifePlay\Saved\{Profiling\STE-J6.utrace, Logs\LifePlay.log};2;<octets>;en place;Contexte : <…>. Résultat : <…>. Suite : <…>.

(exemple ; valeurs entre <> non relevées)

Colonne Contenu
date date de production AAAA-MM-JJ (la plus récente des traces de la ligne) : horodatage du nom, sinon dernière écriture
lot, fiche _sans-lot / — pour l'existant non attribuable
types parmi utrace, profil, log-build, log-commandlet, log-uat, log-jeu, log-editeur, dump, crash
fichiers dossier relatif à D:\Game\ et noms (ou motif <Lot>_*) ; %USERPROFILE%\… pour le profil, jamais le nom du compte
nombre, octets relevés à l'écriture de la ligne
statut en place, corbeille AAAA-MM-JJ, déjà absent
resume gabarit du § 4 ; obligatoire avant tout passage en corbeille

Écriture sans conflit entre sessions : chaque lot écrit ses lignes dans etat\<projet>\<lot>\<LOT>-TRACES.csv à sa FIN-LOT ; seul le passage mensuel les reporte dans TRACES-INDEX.csv (un rédacteur, pas de jeton à créer).

4. Gabarit de résumé (le livrable durable)

Trois phrases courtes, 400 caractères au plus :

Contexte : <pourquoi la trace a été prise : question ou hypothèse de la fiche ; conditions : copie ou build, branche, HEAD, machine calme ou non>.
Résultat : <ce qu'elle a montré, chiffré : code de sortie, erreurs / avertissements, durée, défaut trouvé ou non, verdict>.
Suite : <livrable qui l'exploite (`<LOT>-Tn-….md`) ou décision prise ; « non exploitée » sinon>.
  • Exemple (forme seulement, faits non vérifiés) : Contexte : vérifier qu'une partie de 8 min sur le build STE-J6 Development ne montre plus le défaut de la fiche H9, machine calme. Résultat : aucun défaut constaté, trace de 1,5 Go. Suite : STE-J6-TRACE.md, lot STE poursuivi.
  • Des faits et des chiffres, pas de récit ; aucun nom de compte, aucun chemin C:\Users, aucun contenu de jeu (noms, textes, assets) : l'index est dans le dépôt public.
  • Écrit par le lot producteur à sa FIN-LOT, quand le contexte est frais ; c'est l'étape qui compte. À défaut (existant, oubli), le passage mensuel le reconstitue au mieux depuis le livrable qui cite la trace (Grep du nom dans etat\), Tools\LogStats.ps1 pour un journal, sinon Contexte inconnu. : on ne garde pas un fichier faute de résumé.

5. Passage mensuel

  • Qui : une session de lot TRACE-AAAA-MM, ouverte par Big Boss ; orchestrateur Opus, commits par lp-gardien sur ticket. Quand : le 1er de chaque mois (ou la première session Big Boss du mois), hors réserve « mesure » ; pas de BUILD-GO, sauf si un fichier visé est sous la copie UE alors qu'un processus Unreal y tourne (Tools\UeState.ps1) : il attend alors le mois suivant.
  • Étapes :
    1. Reporter les <LOT>-TRACES.csv dans TRACES-INDEX.csv ; rejouer l'inventaire de TRACE1-T1 pour trouver les traces non indexées (une ligne par lot ou par dossier, statut en place).
    2. Sélection : statut en place et date antérieure au même jour du mois précédent.
    3. Compléter les résumés manquants (§ 4).
    4. Ticket au gardien : commit de l'index avant tout envoi à la corbeille (le résumé est en sûreté avant que le fichier parte).
    5. À blanc : liste, nombre, taille par disque ; garde-fou : aucun fichier plus gros que la capacité de la corbeille de son disque (D: 193 Go, C: 50 Go ; sinon Windows le supprime sans passer par la corbeille) ; écart = arrêt.
    6. Accord de l'utilisateur sur la liste chiffrée (une ligne par lot), transmis par Big Boss.
    7. Envoi à la corbeille par un script dédié (Tools\Corbeille.ps1, phase 2) qui appelle l'API Windows Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile(<chemin>, OnlyErrorDialogs, SendToRecycleBin) ; jamais rm, del ni Remove-Item. Un refus du mode automatique arrête le passage : signalement à l'utilisateur et à Big Boss, aucun contournement (doc 32 § 15.7).
    8. Contrôle : chemin absent, élément présent dans la corbeille (Shell.Application.Namespace(10)) ; statut corbeille AAAA-MM-JJ ; second commit de l'index ; registre TRACE-AAAA-MM-TACHES.md.
  • La corbeille est vidée à 30 jours par l'assistant de stockage de Windows (TRACE1-T1-INV.md § 2.5) : cohérent avec des traces périssables ; un fichier reste récupérable ≈ 30 jours après le passage.

6. Texte de la règle

6.1 Doc 32, nouveau § 15.12 « Traces et journaux des sessions »

Règle de l'utilisateur (2026-10-13), mise en place par le lot TRACE1. Les traces (Insights .utrace, profilage, dumps, sorties de commandlets, plantages d'une fiche) et les journaux de commandes (compilation, UAT, cuisson, commandlets, jeu, éditeur) sont périssables : on ne les conserve pas, on en garde un court résumé (contexte, résultat, suite). Chaque lot écrit à sa FIN-LOT etat\<projet>\<lot>\<LOT>-TRACES.csv, une ligne par fiche qui a produit des traces ; les fichiers restent où ils ont été produits. Le passage mensuel (session TRACE-AAAA-MM, le 1er du mois) reporte ces lignes dans Docs\Migration\etat\TRACES\TRACES-INDEX.csv, complète les résumés manquants, commite l'index, puis envoie à la corbeille de Windows, sur accord de l'utilisateur, les traces de plus d'1 mois ; jamais rm, del ni Remove-Item ; un refus d'autorisation arrête le passage sans contournement (§ 15.7). Hors règle : transcriptions des sessions Claude, livrables .md / .csv, builds, instantanés de Snapshot.ps1. Aucune trace ni aucun chemin C:\Users\<compte> dans un fichier commité.

6.2 lp-lot (SKILL.md, après « Livrables et registres »)

Traces et journaux (TRACE1, règle de l'utilisateur du 2026-10-13). Les traces sont périssables ; ce qui compte est leur résumé. À la FIN-LOT, avant la PASSATION, écrire etat\<projet>\<lot>\<LOT>-TRACES.csv (colonnes de TRACES-INDEX.csv) : une ligne par fiche qui a produit des traces (journaux Saved\Logs\portage\<Lot>_*, Saved\Logs et Saved\Profiling de ses builds, .txt d'etat\, sorties de CollectDebugArtifacts.ps1), avec un résumé en trois phrases : Contexte : … Résultat : … Suite : …. Ne rien déplacer, ne rien envoyer soi-même à la corbeille : c'est le passage mensuel, sur accord de l'utilisateur. Jamais de nom de compte ni de chemin C:\Users dans le CSV.

Conséquences à verser avec la règle : lp-paths (ligne « Index des traces »), exception à « sauvegardes jamais supprimées » pour les traces de Backup_5.5 (si Q6 = oui), lp-doc/gabarits.md § TRACE (renvoi au gabarit de résumé), mémoire traces-logs-archivage.

7. Questions pour l'utilisateur (liste fermée)

# Question Recommandation
Q1 Pas d'archive longue : les traces restent sur place jusqu'à la corbeille, seul le résumé est gardé ? oui (consigne de révision 1)
Q2 Index dans git (etat\TRACES\TRACES-INDEX.csv), une ligne par fiche (au lieu d'une par fichier), alimenté par un <LOT>-TRACES.csv par lot ? oui
Q3 « 1 mois » compté depuis la date de production (horodatage du nom, sinon dernière écriture) ? oui
Q4 Journaux tournants du profil (UBT, Zen, Launcher, CrashReportClient) hors règle, sauf plantages du jeu et UAT des cuissons de lot ? oui
Q5 Dossiers de build (36, ≈ 81,7 Go) hors règle ; leurs traces dedans ? oui ; rangement des builds = autre lot
Q6 Traces de Backup_5.5 (Dbg-*, builds_supprimees, *-VAL, ARCH427\…\Crashes) dans la règle, par exception à « jamais supprimées » ; instantanés manifest.csv exclus ? oui
Q7 3 CSV de dumps déjà suivis par git (portage55, 3,3 Mo) laissés tels quels ? oui
Q8 Doublons (≈ 7,3 Go de .utrace, TRACE1-T1-INV.md § 2.4) : copie de Backup_5.5 à la corbeille au premier passage, sans attendre 1 mois ? oui
Q9 Copie 5.5 (Saved\Logs\portage 1,4 Go, etat\ figé) traitée comme le reste ? oui
Q10 69 fichiers suivis par git sur ue5.8 contiennent le nom du compte (TRACE1-T1-INV.md § 2.6) : lot de nettoyage à part, avant tout push de ue5.8 ? oui, hors TRACE1

8. Suite après accord (phase 2, fiches à ouvrir au GO)

Fiche Objet Niveau
TRACE1-T3 SPEC : textes exacts, Tools\Traces.ps1 (inventaire rejouable, sélection > 1 mois, à blanc) et Tools\Corbeille.ps1, critères de VAL N2
TRACE1-T4 IMPL des deux scripts (sans envoi réel) N3
TRACE1-T5 essai sur un fichier témoin : corbeille, puis restauration manuelle par l'utilisateur ; refus du mode auto = arrêt N1
TRACE1-T6 TRACES-INDEX.csv initial : une ligne par lot ou par fiche pour l'existant (≈ 3 460 fichiers), résumés reconstitués depuis les livrables N1
TRACE1-T7 premier passage : 122 fichiers / ≈ 62 Mo de plus d'1 mois, plus les doublons (Q8), sur accord N1
TRACE1-T8 DOC : doc 32 § 15.12, lp-lot, lp-paths, gabarits, CHG, mémoire ; puis tickets au gardien N1

Tours : 2 / 40 (fiche tenue par la session principale)