4.9 KiB
OUTC-T6-IMPL : EtatDir.ps1, -EtatDir relatif sans dossier parasite (2026-10-11)
Fiche OUTC-T6 — Niveau N2 — Modèle prévu opus | utilisé claude-opus-5-5 — Agent orchestrateur (session OUTC) — Skills lp-lot, sk-change-safety, sk-windows-shell
Origine : demande de Big Boss du 2026-10-11 (« Corrige aussi Tools\EtatDir.ps1:30 (-EtatDir relatif → dossier
parasite), si c'est dans ton périmètre »). Dans le périmètre du lot : contrôle des dossiers parasites (M1). Correctif de
moins de 20 lignes, fait par l'orchestrateur (code moyen, sk-orchestrate § 1) ; VAL indépendante en OUTC-T4.
1. Fichiers modifiés
M Tools\EtatDir.ps1 (copie 5.8, dépôt jeu) : 18 lignes ajoutées, 3 retirées (git diff --stat).
- l. 7-11 (aide) : règle du préfixe, refus des parasites et de la racine, règle
OUT[A-Z]?\d*. - l. 26 : règle
^(PROP|SK|ETAT\d*|OUT[A-Z]?\d*)(?:-|$)(avantOUT\d*) :OUTCetOUTC-Tn→etat\OUTC\. - l. 33-39 :
-EtatDirrelatif :/→\,.\retiré, préfixeDocs\Migration\etat\ouetat\retiré (insensible à la casse) ; vide après retrait → exception (racine d'etat\). - l. 52-56 : après calcul, exception si le chemin est la racine d'
etat\ou contient, sousetat\, un segmentetatouMigration(vaut aussi pour un-EtatDirabsolu et pour les règles de lot).
Écriture : version préparée et testée dans le scratchpad (…\scratchpad\OUTC-T6\EtatDir.ps1), puis une seule
écriture Copy-Item -Force vers Tools\ (consigne de Big Boss : Build.ps1 et RunCommandlet.ps1 le dot-sourcent
pendant que STE travaille). MD5 avant 28274CB7428E4A5D25F3BAE46486C012, après 5E18EC5BDBFE9B80D55C985B15F864E4.
LF, sans BOM, 0 octet non ASCII (FileCheck.ps1 : LF=62, alertes 0). Build.ps1 analysé sans erreur
(Parser::ParseFile, 0 erreur).
2. Écarts à la SPEC
La SPEC (OUTC-SPEC.md § 2) ne prévoyait pas EtatDir.ps1 : ajout demandé par Big Boss après la SPEC. Changement de
comportement voulu, en plus du correctif : OUTC-T1 allait dans etat\OUTC-T1\ (lot hors table), il va maintenant
dans etat\OUTC\ ; un -EtatDir relatif qui désignait la racine ou un parasite lève désormais une exception au lieu de
créer le dossier.
Écart de procédure : Big Boss a ensuite demandé de remplacer le fichier « entre deux commandlets ». Le remplacement a eu
lieu à 06:32:38 (LastWriteTime), alors que UnrealEditor-Cmd PID 37900 (-run=CompileAllBlueprints, copie 5.8, lot
STE) tournait depuis 06:31:44. Je l'estime sans effet : RunCommandlet.ps1 dot-source EtatDir.ps1 et résout le
dossier aux l. 38-39, avant de lancer le commandlet, et l'écriture s'est faite en une seule copie. Big Boss en est
informé. Pour les écritures suivantes de Tools\, je vérifie d'abord que UnrealEditor-Cmd est absent.
3. Instantané
Tools\Snapshot.ps1 -Lot OUTC -Path Tools\EtatDir.ps1 → D:\Game\LifePlay_Backup_5.5\OUTC\manifest.csv (7 entrées),
copie D:\Game\LifePlay_Backup_5.5\OUTC\Tools\EtatDir.ps1.
4. Essais (17 cas, ancienne vs nouvelle version, Resolve-LPEtatDir … -NoCreate)
Sorties brutes : OUTC-T6_essais.txt (même dossier). Résumé :
Entrée (lot, -EtatDir) |
Avant | Après |
|---|---|---|
U8, STE, OUT1, OUTC, ZZZ, PUB2 (sans -EtatDir) |
U58\U8, ST\STE, OUT1, OUTC, ZZZ, publication\PUB2 |
identique |
OUTC-T1 |
etat\OUTC-T1 |
etat\OUTC |
Docs\Migration\etat\OUTC |
etat\Docs\Migration\etat\OUTC (parasite) |
etat\OUTC |
Docs/Migration/etat/U58/U8 |
parasite | etat\U58\U8 |
etat\OUTC, .\etat\OUTC |
etat\etat\OUTC, etat\.\etat\OUTC (parasites) |
etat\OUTC |
U58\etat\U8 |
parasite créé | exception « dossier parasite refusé » |
Docs\Migration\etat\Docs\Migration\etat\X |
parasite double | exception |
etat |
etat\etat |
exception (racine) |
publication\PUB2\neutral\Docs |
inchangé | inchangé (pas un parasite) |
D:\Temp\abs |
D:\Temp\abs |
identique |
absolu …\Docs\Migration\etat / …\etat\U58\etat |
acceptés | exception (racine / parasite) |
5. Ce qui n'a pas été fait
Aucun appel réel de Build.ps1 ou RunCommandlet.ps1 (ils lancent UBT ou l'éditeur : copie UE). Les appelants ne
passent -EtatDir que sur demande de l'opérateur (paramètre transmis tel quel).
6. Points à confirmer en VAL
- P1 : rejouer les 17 cas (
…\scratchpad\OUTC-T6\test.ps1 -Script Tools\EtatDir.ps1) et les 2 cas absolus ; comparer à la copie sauvegardée. - P2 :
Build.ps1,RunCommandlet.ps1,ReimportCorrectif.ps1s'analysent sans erreur et dot-sourcentEtatDir.ps1sans le modifier. - P3 : diff lu en entier ; LF, sans BOM, ASCII.
7. Fichiers à commiter (dépôt jeu, D:\Game\LifePlay-master 5.8)
M Tools/EtatDir.ps1
A Docs/Migration/etat/OUTC/OUTC-T6-IMPL.md
(OUTC-T6_essais.txt : .txt sous etat\, ignoré par git comme les autres journaux de lot.)
Tours : sans objet (fiche de l'orchestrateur)