10 KiB
REP1-VAL-01 : contrôle du contenu avant la première publication de ue5.8 (dépôt public)
Fiche REP1-VAL-01 — Niveau N1 — Modèle prévu sonnet | utilisé sonnet (claude-sonnet-5-5) — Agent : session « Sonnet · REP1-PUB », rôle lp-validator — Skills : sk-protocol, lp-validate. Date : 2026-10-19. Lecture seule du dépôt ; seuls écrits : ce fichier et REP1-VAL-01-fichiers.csv (même dossier).
Règle contrôlée : « GitHub sans contenu de jeu ni contenu sexuel » (Docs\27_Plan_Migration_UE58.md l. 70, règles PUB1 / PUB2 ; arbitrage etat\publication\PUB2\PUB2-ARB.md). PubCheck couvre les données personnelles ; ici : le contenu. Catégories : T mention technique (nom de variable, de tag, de module, de menu, signe de remplissage), E extrait de contenu de jeu (libellé d'interface, nom d'asset, tag), S contenu sexuel explicite (texte de scène ou phrase crue du jeu reproduite).
1. Verdict : FAIL (à retirer ou reformuler avant publication)
Deux familles de fichiers ne respectent pas la règle ; le reste est conforme à l'arbitrage PUB2 (noms de tags, libellés d'actions, variables : gardés).
| # | Fichier(s) | Pourquoi | Action proposée |
|---|---|---|---|
| 1 | Docs/Migration/etat/publication/PUB2/PUB2-CART.md |
reproduit en citation des phrases explicites ou crues extraites des fichiers de jeu (explanation.lpdesc, Change_Logs.txt, Writing_Sex_Text, UI) : 14 lignes entre guillemets avec terme fort (l. 45, 46, 47, 48, 50, 56, 105, 116, 142…) |
ne pas publier, ou réécrire les citations en descriptions (« phrase crue, 12 mots ») |
| 2 | Docs/Migration/etat/publication/PUB2/PUB2-SIM.md |
liste de blobs avec comptes de termes explicites et quelques phrases crues d'interface citées (l. 43-45, 53, 137-139) | idem |
| 3 | Docs/Migration/etat/portage55/L0/L0_headers_Content.csv, portage55/L4-CX-B07/L4-CX-B07_headers_avant.csv, …_apres.csv (8 564 lignes chacun environ) |
inventaire de tous les chemins d'assets du contenu (Content\Heavy\Daz\Anims\…), dont des noms d'animations explicites ; équivalent des journaux FileOpenOrder que PUB2-ARB a retirés de l'historique pour le même motif ; absents de origin/main |
retirer de l'arbre publié (ou publier une version sans la colonne des noms) |
Fichiers à écarter aussi par prudence (même nature, plus léger) : portage55/L0/L0_md5_UI.csv (noms d'assets d'interface).
2. Périmètre et comptes bruts
| Mesure | Valeur | Commande |
|---|---|---|
Fichiers de ue5.8 (HEAD 715efb4) |
2 169 | git ls-tree -r --name-only ue5.8 | sort |
Fichiers de origin/main (HEAD d4d9726) |
876 | git ls-tree -r --name-only origin/main | sort |
| Nouveaux (dans ue5.8, pas dans main) | 1 390 : 1 331 Docs/Migration, 6 Docs/correctifs, 14 Source/LifePlay, 38 autres de Docs/ |
comm -23 ue58 main |
| Non suivis, non ignorés (vague 2) | 40 | git ls-files -o --exclude-standard |
| Suivis et modifiés | 8 (dont LifePlay.uproject) |
git diff --name-only |
| Fichiers balayés (réunion) | 1 431, tous lisibles | scratchpad rep1\perimetre.txt |
| Extensions des nouveaux | 1 276 .md, 90 .csv, 7 .h, 7 .cpp, 6 .patch, 3 .py, 1 .jsonl |
sed 's/.*\.//' |
| Noms de fichiers du périmètre contenant un terme explicite | 0 | grep -i -E -f tierA perimetre |
Fichiers de contenu (.lpscene, .lpaction, .lpquest, .lpmod, .lpcharacter, .uasset, médias) dans le périmètre |
0 | grep -i -E "\.(lpscene|…)$" |
Le périmètre réel dépasse la liste de la fiche : les 40 non suivis comprennent aussi AG/ORGA2/, OUT/, CG/, des tickets REPO/tickets/* et Docs/LP-PROJET.ini, tous balayés.
3. Balayage mécanique
Motifs : une liste de 60 termes explicites (organes, actes, violence sexuelle, nudité, sites adultes), mots entiers, insensible à la casse (grep -I -i -o -w -E -f tierA). Résultat :
| Catégorie | Fichiers | Détail |
|---|---|---|
| S | 2 | PUB2-CART.md, PUB2-SIM.md |
| E | 9 | 4 inventaires d'assets (famille 3 ci-dessus) ; 5 fichiers qui citent des libellés ou tags de jeu : ST/STE/STE-ORG-AUDIT.md, STE-ORG4c-SPEC.md, STE-ORG5-SPEC.md (libellés d'actions d'interface et noms de tags d'animation, ex. « Close to cumming… », listes de tags), Source/LifePlay/LPBonusRewardSubsystem.cpp et .h (table de tags d'animation en C++) |
| T | 94 | variables et stats (compteurs d'orgasme, Genital, Cum), signes de remplissage « xxx » (32 fichiers), noms de modules vin_* (12 fichiers), mots d'une liste (bondage, bdsm) dans les inventaires de modules |
| Total fichiers à constat | 105 | liste complète et catégorie par fichier : REP1-VAL-01-fichiers.csv |
Comptes par terme (fichiers) : penis 26, vagina 18, orgasm 39, anal 220 (faux positifs : « analyse »), cum 96 (faux positifs : « cumul »), xxx 32, genital 24, bondage 12, bdsm 11, blowjob 5, dick 5, incest 5, boob 5, rape 3, porn 3, dildo 7 ; « fuck » 2 et « pussy » 2 : uniquement les deux fichiers PUB2.
4. Fichiers à constat (extraits décrits, jamais reproduits)
| Chemin | Ligne | Cat. | Description |
|---|---|---|---|
Docs/Migration/etat/publication/PUB2/PUB2-CART.md |
45, 46, 47 | S | citation entre guillemets de phrases de scène du guide de modding (acte, parties du corps), 10 à 15 mots chacune |
| id. | 48, 50, 56, 105, 116, 142 | S | citations de répliques crues, de journal des changements et de libellés d'interface |
…/PUB2/PUB2-SIM.md |
43-45, 53, 137 | S | comptes de termes par blob et deux répliques d'interface crues citées |
…/portage55/L0/L0_headers_Content.csv |
2979, 2983, 2988… (46 lignes à terme fort) | E | chemins d'assets d'animations de contenu pour adultes (nom de fichier seulement) |
id. L4-CX-B07_headers_avant.csv, _apres.csv |
mêmes lignes | E | idem, copies |
…/ST/STE/STE-ORG-AUDIT.md |
53, 71, 115 | E | libellés d'actions d'interface (4 variantes) du menu des scènes ; texte d'info-bulle court non graphique |
…/ST/STE/STE-ORG4c-SPEC.md |
12, 39, 105, 216 | E | libellé d'état d'interface et condition sur la variable Genital ; lecture de Blueprint |
…/ST/STE/STE-ORG5-SPEC.md |
46, 263 | E | table de tags d'animation (noms) |
Source/LifePlay/LPBonusRewardSubsystem.cpp |
283-298 | E | table C++ de noms de tags d'animation ; noms seulement, comme All_sex_tags.txt gardé par PUB2-ARB |
…/publication/PUB1/PUB1-CART.md |
32 | T | cite 5 noms de personnages de célébrités des préréglages ; pas sexuel, mais à voir côté droit à l'image |
…/EVAL2/AMEL1/R2/cas-v2.jsonl, EVAL2/data/refus.csv |
52 ; 243 | T | cas d'essai du crochet ; le terme est un mot d'une commande de test |
Docs/Journal_Modifications.md, Docs/Registre_Erreurs.md, Docs/29_…md |
— | T | noms de variables et de fonctions dans le journal |
5. Content, Source, Plugins, Config par rapport à origin/main
git diff --name-status origin/main ue5.8 -- Content Source Plugins Config : A 14, D 32, M 335.
| Dossier | Constat |
|---|---|
Source/LifePlay |
14 ajoutés (LPBonusRewardSubsystem, LPCameraModeSubsystem, LPModGuard, LPReadableTextSubsystem, LPSaveRelaunch, LPUserSettings, LPWidgetStyleLibrary, .h et .cpp) : seul LPBonusRewardSubsystem contient des termes (tags d'animation et variables, cat. E) ; LPReadableTextSubsystem : 1 mention de « Sex Moan Pitch Multiplier » en commentaire (T) |
Source/LifePlayEditorTools |
32 supprimés (commandlets de correction), 10 modifiés : aucun terme |
Plugins/LPAnimCore/…/LPCoupleSimCore.cpp |
1 mot de liste de morphs (« breast », T) |
Content/ |
292 .uasset modifiés (195 UI, 57 Structs, 27 BPs, 11 Render, etc.), 0 ajouté, 0 supprimé ; comparaison chaîne à chaîne des termes explicites entre origin/main et ue5.8 : 1 510 → 1 539 occurrences (+29), 25 fichiers en contiennent, 3 en ont moins ; 8 en ont plus (GI, PC, Person, BodyShapeMenu, CensoreBoobs, CharGen, Cursor, SexOrgasmEnergy) ; les chaînes propres à ue5.8 sont des noms de variables, de widgets, d'animations et de boutons (« Penis », « Vaginal », « Doggy »…), aucune phrase ; différence due à la resauvegarde en 5.8 (non établi) |
Config/ |
3 .ini modifiés : aucun terme |
Je n'ai pas examiné visuellement les textures, icônes ni sons (hors périmètre de la fiche, comme PUB2).
6. Commandes exactes
git ls-tree -r --name-only ue5.8 | sort > ue58.txt
git ls-tree -r --name-only origin/main | sort > main.txt
comm -23 ue58.txt main.txt > new.txt # 1 390
{ cat new.txt; git ls-files -o --exclude-standard; git diff --name-only; } | sort -u > perimetre.txt # 1 431
xargs -0 grep -I -i -l -E -f tierA.txt < existants # 105 fichiers
awk -f prose.awk (lignes à 2 termes forts ou plus)
git diff --name-status origin/main ue5.8 -- Content Source Plugins Config
git cat-file blob <ref>:<f> | tr -d '\000' | grep -a -o -i -E <motifs> | wc -l # 292 uasset, 2 refs
Les scripts et listes sont dans le scratchpad de la session (…\scratchpad\rep1\).
7. Limites
- Le balayage est lexical : une phrase explicite sans l'un des 60 termes, ou en une autre langue que l'anglais et le français, n'est pas vue. Les mots de scène dans les inventaires de modules en
.csvsont comptés sans lire chaque ligne. - Les 94 fichiers T ont été classés par motif (variable, « xxx », nom de module) et lus par échantillon (≈ 25 lignes), non intégralement.
- Le contenu des modules de jeu (hors dépôt) n'est pas dans le périmètre ; seuls leurs noms le sont.
- Les
.uassetsont lus comme chaînes ; les assets n'ont pas été ouverts.
8. Fichiers à commiter
A : Docs/Migration/etat/REPO/REP1/REP1-VAL-01.md, Docs/Migration/etat/REPO/REP1/REP1-VAL-01-fichiers.csv. Aucun autre fichier du dépôt modifié par cette fiche.
Tours : environ 27 / 25 (dépassement léger pour écrire le livrable). À verser : lp-repo — avant toute publication de Docs/Migration/etat/, exclure les inventaires portage55/**/*headers*.csv et publication/PUB2/PUB2-CART.md, PUB2-SIM.md.
Suite : Big Boss doit décider du retrait ou de la réécriture des 5 fichiers de § 1 avant la branche pub/ue5.8 ; état : balayage terminé, livrable écrit.