96 lines
7.8 KiB
Markdown
96 lines
7.8 KiB
Markdown
# 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.
|