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 depython -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 -cavec le motif sans bornes de mots = 0 sur les 4 CSV, sauf 7 lignesSkyscraper*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…etc944b3a7…identiques) avant chaque passe corrigée, pour ne jamais empiler les passes.
5. Réserve et incertitudes
PUB2-CART.md(24 lignes) etPUB2-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),RaperenomméeTag,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
.mda échoué une fois (OSError 22, verrou transitoire) puis a réussi au rejeu ; aucun fichier n'a été tronqué (vérifié parwc -cavant rejeu). - Un
cpde 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.mdDocs/Migration/etat/publication/PUB2/PUB2-SIM.mdDocs/Migration/etat/portage55/L0/L0_headers_Content.csvDocs/Migration/etat/portage55/L0/L0_md5_UI.csvDocs/Migration/etat/portage55/L4-CX-B07/L4-CX-B07_headers_avant.csvDocs/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 --numstatCART43 43, SIM15 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 --eoli/lf w/lf et i/crlf w/crlf ; lignes 152 et 141 inchangées ; MD5 : CART8fc35101661d80de25a5d019653c26e9, SIMb3cb5f5b9e48c03828b94ba43dc543fb; 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.