21 KiB
ETAT-INVENTAIRE-PROPOSITION — réorganisation de Docs\Migration\etat\ par projet / lot
Fiche ETAT-T1 — Niveau N1 — Modèle prévu lp-inventory | utilisé Sonnet 5.5 (identifiant claude-sonnet-5-5, non vérifiable depuis l'agent) — Agent lp-inventory — Skills lp-paths, lp-doc, sk-protocol (+ sk-recount)
Date : 2026-10-09. Lecture seule partout sauf ce livrable. Aucun déplacement, renommage, suppression, commande git. Lot U7 ouvert : etat/U58/U7/ exclu de tout plan.
Racine de travail : R5 = D:\Game\LifePlay-master 5.5\Docs\Migration\etat ; copie 5.8 : R8 = D:\Game\LifePlay-master 5.8\Docs\Migration\etat.
Preuve : « établi » = sortie de commande rejouable (commande donnée) ; « estimé » = déduit (raisonnement donné) ; « incertain » = à trancher.
1. Comptes (établi)
Commandes (Git Bash, depuis R5) et sorties brutes :
| Quoi | Commande | Résultat |
|---|---|---|
| Fichiers à la racine | find . -maxdepth 1 -type f | wc -l |
288 |
| Dossiers à la racine | find . -maxdepth 1 -mindepth 1 -type d | wc -l |
9 |
| Fichiers, tout l'arbre | find . -type f | wc -l |
537 |
| Dossiers sous la racine (récursif) | find . -mindepth 1 -type d | wc -l |
59 (60 avec la racine) |
| Taille | du -sh etat |
76 Mo |
| Suivi git | git ls-files Docs/Migration/etat | wc -l ; git check-ignore -v |
0 suivi ; ignoré par .gitignore:74 /Docs/Migration/etat/ |
| Copie de secours | ls D:\Game\LifePlay_Backup_5.5\etat |
existe (mentionnée README ; contenu non comparé, incertain) |
Par dossier de premier niveau (for d in */; do find $d -type f \| wc -l; done) : sandbox 70, U58 122, VQ 12, PUB2 11, L4-CX-B02_essai1_rejete 10, PROP 9, SK 6, commit_plan 5, PUB1 4 = 249. Contrôle : 288 + 249 = 537 (confirmé).
Détail : sandbox = DC0 3, DC1 5, DC2 6, DC3 6, DC4 10, S0 2, S1 4, S2 3, S3 5, S4 3, S5 3, S6 1, S7 4, S8 1, SB0 1, SB1 4, SB2 6, SB4 3 (somme 70). U58 = UA 8, U0 7, U1 8, U2 7, U3 8, U4 23, U5 9, U6 16, U7 36 (somme 122). VQ = VQ0..VQ5 (2+3+3+2+1+1 = 12).
Types à la racine : 273 .txt, 14 .csv, 1 .md (find . -maxdepth 1 -type f ! -name '*.txt' liste 15 non-txt : 14 csv + COMMIT-CART.md).
Copie 5.8 (R8) : 316 fichiers à la racine, 455 au total, 40 sous-dossiers (find, mêmes commandes). Mêmes 9 dossiers ; R8\U58 = 12 fichiers (contre 122 en 5.5) ; sandbox 70, etc. Différence de racine (diff <(ls R5) <(ls R8)) : 4 fichiers seulement en 5.5 (AP7 ×2 du 08/10 soir, U1 ×2) ; 32 seulement en 5.8 (AP7 ×3 du 08/10, U2..U7 : *_Build_*, *_BuildLog_*, *_LPTestStringCompat_*, U5_*, dont 7 U7_* écrits par Tools\Build.ps1 pendant U7). 316 = 288 − 4 + 32 (confirmé). Proposition : ne pas fusionner R8 avec R5, ne pas le déplacer tant que U7 est ouvert.
2. Classement et projets proposés
Noms de projet (justification) :
portage55/: lots L0–L7 du portage 4.27 → 5.5 ; docs 04 (lots L0..L7), 05 (CX-B/CX-C), 07 (architecture), journal. Nom cohérent avec l'exemple de la demande.anim/: AP1–AP7, doc 20 « Chaîne d'animations » (la demande donneetat/anim/AP5/).sandbox/: existant, S0–S8, SB0–SB4, DC0–DC4 ; docs 21, 22, 23, 24. Y ajouter PairCol (doc 21 le cite) ; DOC-MOD relève du doc 23 →sandbox/DOC-MOD(oumodding/, à décider).U58/: existant ; docs 27, 28.VQ/: existant ; docs 25, 26.SK/: existant ; doc 28 § 5 (lot SK).publication/(nouveau) : PUB1, PUB2, commit_plan, COMMIT-CART ; doc 27 (règles PUB1/PUB2, ligne 67), mémoirelifeplay-github-publication. Aucun CHG propre (commits git6f7155a,2cf416c,bfc6c3a,32fe84f).post-v1/(nouveau) : correctifs isolés hors portage initial sans doc NN dédié : PawnGlobal, PawnDyn, PROP, STUDIO-EST. Estimé : à défaut de doc, rattachement via Journal ;Docs/Migration/correctifs/existe déjà (patchs P01–P06), donc éviter ce nom.
Tableau projet → lot → doc NN → CHG → dossier cible → nb fichiers
Doc « J » = Journal seul. CHG = colonne « Lot » de Journal_Modifications.md (commande : awk -F'|' '/^\| CHG-/{print $2,$4}' Journal_Modifications.md). « racine » = fichiers à déplacer depuis la racine de R5.
| Projet | Lot (préfixe) | Doc NN | CHG | Dossier cible | Fichiers |
|---|---|---|---|---|---|
| portage55 | L0 | 02, 03, 04 | 001–006 | portage55/L0/ |
8 (7 csv L0_* + L0_ref427.csv ; voir § 4) |
| portage55 | L1 | 04, 05 | 007–010 | portage55/L1/ |
2 |
| portage55 | L2 | 04, 05 | 011–013 | portage55/L2/ |
1 |
| portage55 | L4-CX-B01 | 04, 05 | 018 | portage55/L4-CX-B01/ |
7 |
| portage55 | L4-CX-B02 essai 1 (dossier existant) | 05 | 019–020 | portage/L4-CX-B02/essai1_rejete/ (renommer en portage55/L4-CX-B02/essai1_rejete/) |
10 (dossier) |
| portage55 | L4-CX-B02b | 05 | 022 | portage55/L4-CX-B02b/ |
10 |
| portage55 | L4-CX-B03 | 05 | 023 | portage55/L4-CX-B03/ |
5 |
| portage55 | L4-CX-B04 | 05 | 024 | portage55/L4-CX-B04/ |
10 |
| portage55 | L4-CX-B07 | 05 | 035 | portage55/L4-CX-B07/ |
12 |
| portage55 | L4-CX-B08 | 05 | 029 | portage55/L4-CX-B08/ |
4 |
| portage55 | L5-diag | 04, 05 | 027–030 (lot L5) | portage55/L5-diag/ |
21 |
| portage55 | L6e (+ L6e-CX-B09, B09b, B09c) | 04 | 032, 033 | portage55/L6e/ (sous-préfixes conservés dans les noms) |
17 (2 + 11 + 3 + 1) |
| portage55 | L6f | 04 | 034 | portage55/L6f/ |
13 |
| portage55 | L7a | 04, 05, 07 | 036 | portage55/L7a/ |
8 |
| portage55 | L7b | 04, 05 | 037–039 | portage55/L7b/ |
6 |
| portage55 | L7d | 04, 07 | 050 | portage55/L7d/ |
9 |
| portage55 | L7h | 04, 07 | 044 | portage55/L7h/ |
8 |
| portage55 | L7i (+ L7i_CX-B12_assets.txt) |
04, 05, 07 | 040–043 | portage55/L7i/ |
19 |
| portage55 | L7j | 04, 05, 07 | 052–054 | portage55/L7j/ |
4 |
| portage55 | L7l | 04, 05, 07 | 053–057 | portage55/L7l/ |
2 |
| anim | AP2 | 20 | 206 | anim/AP2/ |
2 |
| anim | AP3 | 20 | 207 | anim/AP3/ |
5 |
| anim | AP4 | 20 | 208 | anim/AP4/ |
7 |
| anim | AP5 (+ AP5_Room_Dailies_CDO.txt) |
20 | 209 | anim/AP5/ |
18 |
| anim | AP6 | 20 | 210–211 | anim/AP6/ |
5 |
| anim | AP7 | 20 (23, 28 le citent) | 221–224 | anim/AP7/ |
50 |
| sandbox | DC2 (racine) | 24 | 235 | sandbox/DC2/ (dossier existant, 6 fichiers) |
+4 |
| sandbox | DC3 (racine) | 24 | 236 | sandbox/DC3/ (existant, 6) |
+1 |
| sandbox | PairCol | 21 (§ lots S4, LPPairCollisionTest) |
122–139 | sandbox/PairCol/ |
10 |
| sandbox | DOC-MOD | 23 | 225–227 | sandbox/DOC-MOD/ (ou modding/DOC-MOD/) |
4 |
| sandbox | S0–S8, SB0–SB4, DC0–DC4 (déjà rangés) | 21, 22, 24 | 212–220 ; 228–232 ; 233–236, 245 | inchangé sandbox/<lot>/ |
70 (existants) |
| post-v1 | PawnGlobal | J seul | 144 | post-v1/PawnGlobal/ |
3 |
| post-v1 | PawnDyn | J seul | 145 | post-v1/PawnDyn/ |
4 |
| post-v1 | PROP (dossier existant) | J, Registre (ERR-043) | 244 | post-v1/PROP/ (ou inchangé : 5 citations Docs) |
9 (dossier) |
| post-v1 | STUDIO-EST | aucun (voir § 3) | aucun | post-v1/STUDIO-EST/ |
6 |
| publication | PUB1 (dossier existant) | 27 (l. 67) | aucun | publication/PUB1/ |
4 (dossier) |
| publication | PUB2 (dossier existant) | 27 (l. 67) | aucun | publication/PUB2/ |
11 (dossier) |
| publication | commit_plan (dossier) + COMMIT-CART.md | aucun | aucun | publication/commit_plan/ |
5 + 1 |
| U58 | UA, U0–U6 (existants) | 27, 28 | 248 ; 249–250 ; 251 (U1) | inchangé U58/<lot>/ |
86 |
| U58 | U7 (EN COURS) | 27, 28 | — | ne pas toucher U58/U7/ |
36 |
| U58 | U1 (racine : U1_LPAuditBlueprintCalls_*) |
27, 28 | 251 | U58/U1/ (dossier existant, 8) |
+2 |
| VQ | VQ0–VQ5 (existants) | 25, 26 | 237–240, 241–242 (VQ-fix) ; VQ1/VQ2 : pas de ligne propre dans la colonne Lot | inchangé VQ/<lot>/ |
12 |
| SK | SK-ARBRE, SK-T1.. (existant) | 28 § 5 | aucun libellé « SK » dans la colonne Lot (249 cite les fiches etat/) |
inchangé SK/ |
6 |
Contrôle de somme des fichiers racine à déplacer : portage55 (8+2+1+7+10+5+10+12+4+21+17+13+8+6+9+8+19+4+2 = 166) ; anim (2+5+7+18+5+50 = 87) ; sandbox racine (4+1+10+4 = 19) ; post-v1 (3+4+6 = 13) ; publication (COMMIT-CART 1) ; U58 (2). Total 166 + 87 + 19 + 13 + 1 + 2 = 288 (égal au compte racine, confirmé). Dossiers existants à ne pas éclater : 9, dont 1 (L4-CX-B02_essai1_rejete) à rattacher à portage55/L4-CX-B02/.
Commande de classement rejouable (compte par lot, racine) :
find . -maxdepth 1 -type f | sed 's|./||' | sed -E 's/^(L[0-9][a-z]?(-CX-B[0-9]+[a-z]?|-diag)?|L6e-CX-B09[bc]?|AP[0-9]|DC[0-9]|DOC-MOD|PairCol|PawnDyn|PawnGlobal|STUDIO-EST|U1|COMMIT-CART)[_.-].*/\1/; s/^L7i_CX-B12.*/L7i/' | sort | uniq -c
Sortie (lot=n) : AP2=2 AP3=5 AP4=7 AP5=18 AP6=5 AP7=50 COMMIT-CART=1 DC2=4 DC3=1 DOC-MOD=4 L0=8 L1=2 L2=1 L4-CX-B01=7 L4-CX-B02b=10 L4-CX-B03=5 L4-CX-B04=10 L4-CX-B07=12 L4-CX-B08=4 L5-diag=21 L6e=2 L6e-CX-B09=11 L6e-CX-B09b=3 L6e-CX-B09c=1 L6f=13 L7a=8 L7b=6 L7d=9 L7h=8 L7i=19 L7j=4 L7l=2 PairCol=10 PawnDyn=4 PawnGlobal=3 STUDIO-EST=6 U1=2 (somme 288).
Remarques : les préfixes cités dans la fiche (DATA, UI, SKIN, O7, ERR, H1–H3, L3, L6a, L7c/e/g/k, AP1) n'ont aucun fichier à la racine (ls \| grep -cE '^(DATA\|UI\|SKIN\|O7\|ERR\|H[123]\|L3\|L6a\|L7c\|L7e\|L7g\|L7k\|AP1)' → 0). Les « résumés *_Build_* » ne sont présents à la racine de R5 que sous forme AP5/AP6/AP7_Build_* (13) ; ceux de U2–U7 sont dans R8.
3. Orphelins et inconnus
Aucun fichier de la racine ni de sous-dossier n'est sans rattachement (288/288 classés). Éléments au rattachement fragile :
| Élément | Fichiers | Problème | Rattachement proposé (estimé) |
|---|---|---|---|
STUDIO-EST_LPDumpFunction_20261007-0925..0930* |
6 | ni CHG ni doc NN (grep STUDIO dans Docs\Migration\*.md : 0 ligne propre) ; dumps CharGen du 2026-10-07 09:26, lot STUDIO-EST |
post-v1/STUDIO-EST/ ; à confirmer par l'utilisateur (entre doc 07 « studio » et 20) |
COMMIT-CART.md, commit_plan/ (5) |
6 | fiches CP-T1/T3 du 2026-10-07 ; aucune citation dans les docs NN ni le Journal | publication/ (estimé : plan de commits par phase avant PUB1/PUB2) |
PUB1/, PUB2/ |
15 | sans CHG ; une seule citation (doc 27, l. 67) | publication/ |
PawnGlobal_*, PawnDyn_* |
7 | CHG-144/145 seulement, aucun doc NN | post-v1/ |
AP5_Room_Dailies_CDO.txt |
1 | seul fichier AP sans horodatage | anim/AP5/ |
L4-CX-B02_essai1_rejete/ |
10 | essai annulé (CHG-019 « annulé par Restore ») ; nom de dossier cité 1 fois (Journal) | portage55/L4-CX-B02/essai1_rejete/ |
| Journal vs. U2–U6 | — | README dit « CHG-001 à CHG-251 » ; U2–U6 clos selon la mémoire, mais aucune CHG > 251 dans le Journal du dépôt 5.5 (dernière : U1, 251) |
à vérifier : CHG U2–U6 peut-être seulement dans la copie 5.8 (R8/Journal 5.8 : 66 citations etat/ contre 65, signe d'une entrée de plus). Incertain. |
4. Références cassables (établi, chiffrées)
Motif : etat[/\\]+[A-Za-z0-9_.<>$%{}()*-]+ (grep -rhoE, ici P). Chaque cellule = nombre d'occurrences ; « sous-dossier » = cible déjà dans un dossier (sandbox, VQ, U58, PROP, PUB1/2, SK, commit_plan) ; « racine » = cible fichier ou motif à la racine ou gabarit <lot>.
| Corpus | Fichiers citant | Occurrences | sous-dossier | racine |
|---|---|---|---|---|
R5\..\*.md Docs 5.5 (hors etat) |
13 | 140 (112 lignes) | 90 | 50 |
Docs 5.8 (hors etat) |
13 | 141 | 91 | 50 |
Mémoire ...\memory\ |
6 | 9 | 7 | 2 (gabarits etat\<Lot>_..., etat/<projet>) |
Skills addon LifePlay-Sandbox\Tools\claude\skills |
9 | 23 | 14 | 9 (gabarits) |
Skills %USERPROFILE%\.claude\skills |
0 | 0 | 0 | 0 |
Tools\*.ps1 5.5 |
4 | 5 | 0 | 5 |
Tools\*.ps1 5.8 |
4 | 7 | 0 | 7 |
Addon Tools (*.ps1, *.py, hors skills) |
0 | 0 | — | — (seul etat.json d'AnimPipeline.ps1, sans rapport) |
Code 5.5 (Source, Plugins\*.h/.cpp, Config) |
4 | 4 | 3 (VQ ×2, sandbox/S5) | 1 (Source\LifePlay\LPModDailies.h:5 cite etat/L6f_dump_Person.txt) |
Addon (Plugins\*.h/.cpp 12, Docs 7, README.md 1) |
— | 20 | 20 (sandbox/SB1, SB2, S1, S3) |
0 |
Commandes : grep -rcE "$P" <chemin> [--exclude-dir=etat] (par fichier) et grep -rhoE "$P" ... \| wc -l (occurrences) ; partage sous-dossier/racine : sed -E 's/etat[\/\\]+//' | awk sur le premier segment. Écart non élucidé : le détail par fichier Docs racine donne 51 (02:1, 03:2, 04:1, 09:1, Journal:46) contre 50 par le partage par segment ; la différence d'une unité tient au traitement d'un jeton, à retrancher en rejouant (incertain, impact nul sur la décision).
Citations par nom exact d'un fichier de la racine (sans préfixe etat/) : grep -rhoFf rootfiles.txt Docs\Migration (hors etat) Source ... → 53 occurrences, 51 noms distincts : lots L4 19, L7i 4, L7b 4, L7a 3, L7d 3, L6f 3 (dont LPModDailies.h), AP5 5, AP6 2, AP7 2 (dont 28_Synthese...md:185), L1 2, L5 2, L6e 2, L0 1. Elles se superposent aux 50 citations « racine » du tableau (Journal en grande majorité : 46 lignes).
Ce qu'un déplacement des 288 fichiers casserait, par nature :
- Journal (46 occurrences racine, 65 au total) et docs 02/03/04/09 : chemins historiques (preuves de CHG). Ne pas réécrire (le Journal est une trace) : parade = table de correspondance.
- Scripts à chemin dur (cassent à l'exécution) :
Tools\CheckIntegrity.ps1:25litDocs\Migration\etat\L0_ref427.csv(5.5 seulement ; 5.8 sans CheckIntegrity dans la liste citante). Rupture immédiate de-Ref427. - Scripts qui écrivent à la racine par défaut (créeraient de nouveau le désordre) :
RunCommandlet.ps1(5.5 :28, 5.8 :36 :Docs\Migration\etat\$name.txt) ;Build.ps15.8 (:52${Lot}_BuildLog_, :61${Lot}_Build_; 5.5 n'a pas deBuild.ps1,ls Tools) ;ReimportCorrectif.ps1(5.5 :34$etat, écritures :48_dump_, :62_dryrun, :70_application, :80_diff) ; exemple d'aideAssetHeaders.ps1:13(etat\headers_BPs.csv, doc seulement). ReimportCorrectif.ps1:Remove-Item (Join-Path $etat "${Id}_<Commandlet>_*.txt")(5.5 :50, :64, :71) : nettoyage par motif à la racine ; si le script écrit ailleurs sans adapter ces motifs, les résumés de commandlet s'accumuleraient (risque, pas rupture).- Skills et mémoire (gabarits, 11 occurrences / 9 fichiers) :
lp-build:31,lp-commandlets:22,lp-validate:50(nom de sortieetat\<lot>_...),lp-doc(2),lp-lot(2 dont :48),lp-paths:33,43,memory\lifeplay-build-pitfalls.md:15,modele-sequencage.md:123.lp-pathsetlp-lotdisent déjàetat\<projet>\<lot>\pour les livrables ; seuls les résumés auto de commandlet (<Lot>_<Commandlet>_<horodatage>.txt) restent annoncés à la racine. - Code : un seul commentaire cassé (
LPModDailies.h:5). Les 19 commentairessandbox//VQ/ne bougent pas si ces dossiers restent en place (recommandé). - Copie 5.8 : mêmes docs (141) ;
R8continue d'être alimentée parBuild.ps1à la racine pendant U7.
Parade proposée
- Table de correspondance
etat/MAPPING.csv(ancien → nouveau, une ligne par fichier + une ligne par motifL5-diag_dump55_*), et la même table résumée par préfixe dans le document d'inventaire (§ 5). Le Journal et les docs restent intacts ; le lecteur applique la table. Alternative non retenue : réécrire 46 lignes du Journal (perte de traçabilité). - Mise à jour des scripts (hors portée de cette fiche) :
CheckIntegrity.ps1:25→etat\portage55\L0\L0_ref427.csv;RunCommandlet.ps1,Build.ps1,ReimportCorrectif.ps1: ajouter une fonction commune qui déduit le dossier du préfixe de lot (^AP\d→anim\<lot>,^L\d→portage55\<lot>,^U\d→U58\<lot>, etc.) ou un paramètre-EtatSub, créée si absente ; adapter lesRemove-Itemaux nouveaux chemins. À faire en lot propre (deux copies, 5.8 en dernier, après U7), avec test à blanc (-DryRunsi présent, sinon commandlet de test sur un lot jetable). - Skills/mémoire : remplacer dans 7 skills et 2 mémoires les gabarits
etat\<Lot>_<Commandlet>_...paretat\<projet>\<lot>\...; skills dans l'addon (commit addon puis pin, comme pourlp-*). - Code : corriger le seul commentaire
LPModDailies.h:5dans un lot de code, ou le laisser (commentaire). - Pas de jonctions/liens individuels (288) : refusés, fragiles sous Windows et hors git.
5. Plan de déplacement proposé (étapes ; rien n'est exécuté)
Contrainte de mémoire : mv seulement vers LifePlay_Backup_5.5\<lot> avec chemin rapporté, rm interdit. En conséquence, copier vers la nouvelle structure puis déplacer les originaux vers D:\Game\LifePlay_Backup_5.5\etat_reorg_<date>\ (équivaut à un déplacement tout en respectant la règle) ; décision utilisateur requise sur ce mode (ou autorisation d'un Move-Item interne).
- Décisions utilisateur : noms de projets (§ 2), sort de
PROP/PUB1/PUB2(rangés à plat ou souspost-v1/publication), nom du document d'inventaire, mode copie+archive. - Instantané :
robocopy/copie deR5versD:\Game\LifePlay_Backup_5.5\etat_reorg_<date>\avant\; manifestemanifest.csv(chemin, taille, SHA256 :Get-ChildItem -Recurse -File | Get-FileHash) ; attendu 537 lignes. Même chose pourR8(316 + 139 = 455), U7 exclu des déplacements mais inclus dans l'instantané. - Ouvrir un lot (
lp-lot) avec entrée CHG dans le Journal (retour arrière = restauration du manifeste). - Générer
MAPPING.csvà blanc (script en lecture seule) : ancien chemin → nouveau chemin ; contrôles : 288 lignes racine, aucun doublon de cible, aucune cible dansU58\U7\. - Copier par projet, dans l'ordre de risque croissant :
anim(87),publication(16 dont les dossiers PUB),post-v1(13),sandboxracine (19),portage55(166 + 10 de l'essai 1),U58\U1(2). Après chaque projet : recompte (find <cible> -type f \| wc -l) et hachage contre le manifeste. - Adapter les scripts (parade 2) et les 7 skills / 2 mémoires (parade 3), tester sur un lot jetable ; ne pas toucher à
U58\U7\ni auxU7_*de la racine 5.8. - Recompter : 537 fichiers au total en 5.5, racine vide de fichiers (hors
README/MAPPING/inventaire), 0 fichier hors manifeste,grepdes chemins cassés (§ 4) : le compte « racine » des citations doit être couvert parMAPPING.csvà 100 %. - Archiver les originaux (mouvement vers
etat_reorg_<date>\avant\déjà copié, jamais de suppression) ; mettre à jourREADME.md(ligneetat/),lp-paths,lp-lot. - Après clôture de U7 (porte G-U7) : refaire les étapes 1–7 pour
U58\U7(36 fichiers) et pourR8(316 racine), avec le mêmeMAPPING, ou laisserR8telle quelle (alimentée parBuild.ps1) ; décision utilisateur. Ne pas fusionnerR8dansR5.
6. Squelette du futur document d'inventaire (etat/README.md ou etat/INVENTAIRE.md : choix de l'utilisateur)
Recommandation (estimée) : etat/INVENTAIRE.md, car etat/ est hors git et README.md est ambigu avec Docs\Migration\README.md.
# INVENTAIRE — etat/ (preuves locales, hors dépôt)
Fiche <Id> — Niveau — Modèle prévu | utilisé — Agent — Skills (en-tête sk-protocol)
Date de relevé : <date> ; commande de dénombrement : <find ...> ; compte brut : <n fichiers, m dossiers>
Règle : etat/<projet>/<lot>/ ; fichiers nommés <lot>_<sujet>[_<horodatage>].<ext> ; rien à la racine.
## 1. Projets (un par ligne)
| Projet | Dossier | Doc NN | Journal (CHG) | Registre (ERR) | Statut du lot | Fichiers |
## 2. Lots
| Projet | Lot | Dossier | Doc NN § | CHG | Date | Fichiers | Sauvegarde (Backup_5.5\<lot>) |
## 3. Table de correspondance ancien → nouveau (préfixe → dossier ; détail : MAPPING.csv)
| Ancien motif (racine) | Nouveau dossier | Citations connues (Docs/Journal/skills/scripts) |
## 4. Conventions des scripts (RunCommandlet, Build, ReimportCorrectif) : dossier par défaut, paramètre -EtatSub
## 5. Orphelins et rattachements à confirmer
## 6. Copies : R8 (5.8) — politique (non fusionnée), copie de secours LifePlay_Backup_5.5\etat
## 7. Historique des réorganisations (date, CHG, manifeste, SHA du manifeste)
Compte rendu sk-protocol / sk-recount
- Recomptes croisés : (1) 537 = 288 + 249 (racine + somme des dossiers) ; (2) 288 = somme des préfixes (
uniq -c) = somme du tableau § 2 (166 + 87 + 19 + 13 + 1 + 2) ; (3)R8316 = 288 − 4 + 32 ; (4)sandbox70 etU58122 recomptés par sous-dossier. - Un écart d'une unité non élucidé : 50 contre 51 citations racine dans les docs 5.5 (méthodes différentes), sans effet sur la parade.
- Incertitudes : contenu exact de la copie
LifePlay_Backup_5.5\etatnon comparé ; CHG des lots U2–U6 non trouvées dans le Journal 5.5 ; rattachement de STUDIO-EST, COMMIT-CART/commit_plan, PawnDyn/PawnGlobal estimé faute de doc NN ; modèle utilisé non vérifiable. - Écarts à la fiche : aucun interdit franchi ; fichier écrit : ce livrable seul. Fichiers temporaires dans le dossier scratchpad de la session (
rootfiles.txt), hors projet.
Suite : l'orchestrateur doit trancher les décisions de l'étape 0 (noms de projets, mode copie+archive, nom du document d'inventaire), puis ouvrir un lot ETAT-T2 (script de génération de MAPPING.csv à blanc, lecture seule), état : inventaire et proposition livrés, rien déplacé.