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\Profilingdu build,etat\<projet>\<lot>\,Backup_5.5\Dbg-*) jusqu'au passage mensuel qui l'envoie à la corbeille. Aucune recopie, aucun dossierLifePlay_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 (
Grepdu nom dansetat\),Tools\LogStats.ps1pour un journal, sinonContexte 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 parlp-gardiensur ticket. Quand : le 1er de chaque mois (ou la première session Big Boss du mois), hors réserve « mesure » ; pas deBUILD-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 :
- Reporter les
<LOT>-TRACES.csvdansTRACES-INDEX.csv; rejouer l'inventaire deTRACE1-T1pour trouver les traces non indexées (une ligne par lot ou par dossier, statuten place). - Sélection : statut
en placeetdateantérieure au même jour du mois précédent. - Compléter les résumés manquants (§ 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).
- À 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.
- Accord de l'utilisateur sur la liste chiffrée (une ligne par lot), transmis par Big Boss.
- Envoi à la corbeille par un script dédié (
Tools\Corbeille.ps1, phase 2) qui appelle l'API WindowsMicrosoft.VisualBasic.FileIO.FileSystem.DeleteFile(<chemin>, OnlyErrorDialogs, SendToRecycleBin); jamaisrm,delniRemove-Item. Un refus du mode automatique arrête le passage : signalement à l'utilisateur et à Big Boss, aucun contournement (doc 32 § 15.7). - Contrôle : chemin absent, élément présent dans la corbeille (
Shell.Application.Namespace(10)) ; statutcorbeille AAAA-MM-JJ; second commit de l'index ; registreTRACE-AAAA-MM-TACHES.md.
- Reporter les
- 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-LOTetat\<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 (sessionTRACE-AAAA-MM, le 1er du mois) reporte ces lignes dansDocs\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 ; jamaisrm,delniRemove-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 deSnapshot.ps1. Aucune trace ni aucun cheminC:\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 deTRACES-INDEX.csv) : une ligne par fiche qui a produit des traces (journauxSaved\Logs\portage\<Lot>_*,Saved\LogsetSaved\Profilingde ses builds,.txtd'etat\, sorties deCollectDebugArtifacts.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 cheminC:\Usersdans 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)