161 lines
13 KiB
Markdown
161 lines
13 KiB
Markdown
|
|
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)
|