LifePlay-Revival/Docs/Migration/etat/REPO/REP1/REP1-IMPL-01.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

7.8 KiB

REP1-IMPL-01 : reformulation des 6 fichiers en FAIL du contrôle de contenu

Fiche REP1-IMPL-01 — Niveau N1 — Modèle prévu sonnet | utilisé sonnet (claude-sonnet-5-5) — Agent lp-writer (session « Sonnet · REP1 ») — Skills lp-doc, sk-protocol, sk-windows-shell. Date : 2026-10-19.

Décision de l'utilisateur, citée telle que transmise par Big Boss (session Big Boss, 2026-10-19) : « Reformuler les fichiers ». Règle : doc 27 l. 70, GitHub sans contenu de jeu ni contenu sexuel. Entrée : REP1-VAL-01.md et REP1-VAL-01-fichiers.csv (même dossier). Instantané pris par Big Boss : D:\Game\LifePlay_Backup_5.5\REP1\ (manifest.csv, les 6 fichiers).

1. Résultat : réussi, avec une réserve (§ 5)

2. Ce qui a été fait

  • 4 CSV (portage55\L0\L0_headers_Content.csv, L0\L0_md5_UI.csv, L4-CX-B07\L4-CX-B07_headers_avant.csv, …_apres.csv) : chaque composant de chemin (dossier ou nom de fichier, extension gardée) contenant un terme du contrôle est remplacé par un jeton stable <asset-E-NNNN> ; même nom, même jeton dans les 4 fichiers. Les autres colonnes et le nombre de lignes ne changent pas.
  • Table nom → jeton : D:\Game\LifePlay_Backup_5.5\REP1\correspondance-assets.csv (hors git ; 177 noms, 178 lignes avec l'en-tête).
  • 2 .md (publication\PUB2\PUB2-CART.md, PUB2-SIM.md) : chaque citation de phrase du jeu (segment « … » ou entre accents graves) est remplacée par une description de sa nature, par exemple « [réplique de dialogue, non cité] ». Méthode, comptes, chemins et noms techniques sont gardés.
  • Script ponctuel du lot (dossier Saved\REP1\, non suivi) : anonymiser.py, neutraliser_md.py, termes.txt (motif du VAL). Pas de heredoc ni de python -c.

3. Mesuré (sorties collées)

Sortie de anonymiser.py (2e passage, mode sous-chaîne) :

L0_headers_Content.csv lignes 8565 remplacees 172
L4-CX-B07_headers_avant.csv lignes 8565 remplacees 172
L4-CX-B07_headers_apres.csv lignes 8565 remplacees 172
L0_md5_UI.csv lignes 197 remplacees 3
noms distincts 177

(8565 = 8564 lignes + élément vide final du découpage ; le 1er passage, mode mot entier du VAL, avait remplacé 71 / 71 / 71 / 2 lignes et 5 noms ; total cumulé : 220 / 220 / 220 / 5 lignes modifiées.)

Contrôle final (wc -l, tr -cd '\r' | wc -c, grep -c -i -w -E -f termes.txt, md5sum) :

PUB2-CART.md strict:24 CR:0 lignes:152 md5:e88e585bc0461bc8758a13e7f87352f0
PUB2-SIM.md strict:15 CR:141 lignes:141 md5:530906a9e8997b656e76e0b50eac46f1
L0_headers_Content.csv strict:0 CR:8564 lignes:8564 md5:ebf6009ff91b6f4e75de8eb9718b0f63
L0_md5_UI.csv strict:0 CR:196 lignes:196 md5:aaad3c6b64618572c65de86bc3a60d64
L4-CX-B07_headers_avant.csv strict:0 CR:8564 lignes:8564 md5:139c6bb994cb1c282c1987127038e9ac
L4-CX-B07_headers_apres.csv strict:0 CR:8564 lignes:8564 md5:3cb9ac48f615f27e98bfb2a131b7cacd

Lignes avant (HEAD, git show HEAD:<f> | wc -l) : 8564, 196, 152, 141 ; après : identiques (CSV : 8564 / 8564 / 8564 / 196).

git diff --numstat :

220	220	Docs/Migration/etat/portage55/L0/L0_headers_Content.csv
5	5	Docs/Migration/etat/portage55/L0/L0_md5_UI.csv
220	220	Docs/Migration/etat/portage55/L4-CX-B07/L4-CX-B07_headers_apres.csv
220	220	Docs/Migration/etat/portage55/L4-CX-B07/L4-CX-B07_headers_avant.csv
42	42	Docs/Migration/etat/publication/PUB2/PUB2-CART.md
14	14	Docs/Migration/etat/publication/PUB2/PUB2-SIM.md

(aucune réécriture de fichier entier.) Fins de ligne : git ls-files --eol donne i/crlf w/crlf pour les 4 CSV et PUB2-SIM.md, i/lf w/lf pour PUB2-CART.md.

PubCheck des 6 fichiers : PubCheck : 0 constat(s).

Noms remplacés : 177 noms distincts (220 lignes par fichier d'inventaire de contenu, 5 lignes pour l'inventaire d'interface).

4. Preuves de méthode

  • Le contrôle du VAL (mot entier) donnait 71 lignes ; il ratait les noms collés (Mot_Mot, CamelCase). J'ai donc relancé en mode sous-chaîne : grep -c avec le motif sans bornes de mots = 0 sur les 4 CSV, sauf 7 lignes Skyscraper* par faux positif (« scraper » contient un mot de la liste), relues et laissées.
  • Les .md ont été restaurés à l'octet depuis l'instantané (MD5 f298fae5… et c944b3a7… identiques) avant chaque passe corrigée, pour ne jamais empiler les passes.

5. Réserve et incertitudes

  • PUB2-CART.md (24 lignes) et PUB2-SIM.md (15 lignes) donnent encore des occurrences au balayage strict. Ce sont des mentions de termes et non des citations de phrases : liste de vocabulaire de la méthode, comptes par terme (pussy 410), noms de tags et de variables (Filter(Aggressive,Anal), Rape renommée Tag, TEXT("masturbate")), mots de listes de mots-clés. Le brief demandait de garder méthode, comptes et noms techniques. Le motif du VAL reste donc non nul sur ces deux fichiers ; si l'utilisateur veut zéro occurrence littérale, il faut aussi neutraliser ces mentions (perte de lisibilité de la méthode). Décision à Big Boss.
  • Les natures employées dans les descriptions sont déduites de la ligne (heuristique) ; une nature peut être approximative (par exemple « phrase d'exemple de la documentation de modding » pour une phrase d'interface). Aucun contenu cité.
  • Le balayage reste lexical (60 termes anglais et français) ; une phrase sans l'un de ces termes n'est pas vue.
  • Non mesuré : les autres fichiers à constat de catégorie E (STE-ORG-AUDIT.md, STE-ORG4c-SPEC.md, STE-ORG5-SPEC.md, LPBonusRewardSubsystem.*), hors de cette fiche.

6. Écarts à la fiche

  • Un écriture du script .md a échoué une fois (OSError 22, verrou transitoire) puis a réussi au rejeu ; aucun fichier n'a été tronqué (vérifié par wc -c avant rejeu).
  • Un cp de restauration depuis l'instantané a d'abord été lancé dans une commande bloquée (timeout) puis refait ; effet final vérifié par MD5.

7. Fichiers à commiter (M)

  • Docs/Migration/etat/publication/PUB2/PUB2-CART.md
  • Docs/Migration/etat/publication/PUB2/PUB2-SIM.md
  • Docs/Migration/etat/portage55/L0/L0_headers_Content.csv
  • Docs/Migration/etat/portage55/L0/L0_md5_UI.csv
  • Docs/Migration/etat/portage55/L4-CX-B07/L4-CX-B07_headers_avant.csv
  • Docs/Migration/etat/portage55/L4-CX-B07/L4-CX-B07_headers_apres.csv
  • A : Docs/Migration/etat/REPO/REP1/REP1-IMPL-01.md

Hors git (ne pas commiter) : D:\Game\LifePlay_Backup_5.5\REP1\correspondance-assets.csv, Saved\REP1\*.

7 bis. Fix (fiche REP1-IMPL-01-fix, 2026-10-19, suite à REP1-VAL-02.md)

Décision de Big Boss : les mentions de termes (vocabulaire, comptes, tags) sont publiables, non touchées ; les restes de citations sont neutralisés à la même forme « [nature, non cité] », par Edit ligne à ligne.

  • PUB2-CART.md, lignes touchées : 45, 46, 48, 49 (2 fragments), 50, 68, 69, 70, 76, 77 (même phrase de dialogue de quête que la l. 145, vue en relisant), 118, 145. Libellés courts l. 109, 113, 115, 117, 120 gardés comme demandé.
  • PUB2-SIM.md, lignes touchées : 28, 55.
  • Mesuré : git diff --numstat CART 43 43, SIM 15 15 (depuis HEAD, cumul avec la 1re passe) ; fins de ligne : CART LF (0 CR), SIM CRLF (141 CR pour 141 lignes), git ls-files --eol i/lf w/lf et i/crlf w/crlf ; lignes 152 et 141 inchangées ; MD5 : CART 8fc35101661d80de25a5d019653c26e9, SIM b3cb5f5b9e48c03828b94ba43dc543fb ; PubCheck : PubCheck : 0 constat(s).
  • Non mesuré : un balayage de motif par un autre agent ; le brief ne demandait pas de nouveau VAL.

8. Tours, à verser, suite

Tours : environ 24 / 25. À verser : lp-repo — avant toute publication, un contrôle de contenu doit balayer aussi en mode sous-chaîne les noms d'assets (le mode mot entier rate les noms collés) ; sk-windows-shell — python - sans fichier attend sur l'entrée standard et bloque la commande. Suite : Big Boss doit trancher la réserve du § 5 (mentions de termes dans PUB2-CART/SIM) puis faire passer les 7 fichiers au gardien ; état : reformulation faite et mesurée.