11 KiB
Fiche PUB-20261021-VAL — Niveau N1 — Modèle prévu sonnet | utilisé sonnet (claude-sonnet-5-5) — Agent lp-validator — Skills sk-protocol, sk-recount, debug-verification, lp-validate
PUB-20261021-VAL : contrôle du contenu avant le push du commit de publication (2026-10-21)
Lecture seule du dépôt ; seul écrit : ce fichier. Modèle : PUB-20261020-VAL.md. Règle : doc 27 l. 70 (« sans contenu de jeu ni contenu sexuel »). Diff contrôlé : git diff 56dfcfc 655b44a (vagues 10 à 13).
1. Fiches amont relues
etat\REPO\PUB\PUB-20261020-VAL.md(modèle de contrôle et de gabarit, relu en entier).- Fiche de la session (consignes de l'ordonnateur) et son message en cours de tâche (fetch réussi). Pas d'autre amont : le contenu contrôlé est le diff lui-même.
- Gabarit
lp-doc\gabarits.md: relu en tête seulement (règle « sections numérotées dans l'ordre ») ; le plan suit le modèle PUB-20261020-VAL.
2. Points à confirmer des IMPL
sans objet : aucune IMPL dans cette fiche.
3. Critères rejoués
Refs (établi, git rev-parse ue5.8 pub/ue5.8 origin/ue5.8 56dfcfc 655b44a '655b44a^{tree}') : ue5.8 = 655b44ae74eb7d03871db04ea53bf76667e84b31 ; pub/ue5.8 = origin/ue5.8 = 56dfcfc3d20e72c1b1e3d2df079ab305980fed8a ; arbre 655b44a^{tree} = 82e2709853a3257af44dd7f330a3522996236b15.
Fetch : je ne l'ai pas lancé. Information de l'ordonnateur (reçue en cours de tâche, non rejouée par moi) : le fetch a réussi à 09:3x, le serveur Forgejo est de nouveau joignable, FETCH_HEAD et origin/ue5.8 distant valent 56dfcfc, comme pub/ue5.8 : parent prévu confirmé (rapporté par l'ordonnateur, non revérifié ici ; mes rev-parse locaux concordent avec 56dfcfc).
Note : 56dfcfc n'est pas ancêtre de 655b44a (git merge-base --is-ancestor : code 1), attendu, la publication est un commit à historique séparé (git commit-tree … -p pub/ue5.8). git rev-list --count 56dfcfc..655b44a : 198 (sans portée sur la publication).
| # | Critère | Commande | Résultat | Verdict |
|---|---|---|---|---|
| 1 | PubCheck 0 constat | pwsh -NoProfile -File Tools\PubCheck.ps1 -Arbre ue5.8 -Binaires -Depot "D:/Game/LifePlay-master 5.8" </dev/null |
PubCheck : 0 constat(s), code 0 |
PASS |
| 2 | Périmètre : 72 fichiers | git diff --stat 56dfcfc 655b44a ; --name-status |
« 72 files changed, 7340 insertions(+), 97 deletions(-) » ; 53 A + 19 M = 72 | PASS |
| 3 | Contenu adulte explicite | voir § 3.2 | aucun terme dans les fichiers de jeu ni les sources ; occurrences seulement dans la VAL de la veille | PASS |
| 4 | Secrets, données personnelles | voir § 3.3 | aucun secret, e-mail, IP, nom de profil | PASS |
| 5 | Fichiers à exclure absents | voir § 3.4 | absents ; LifePlay.uproject suivi mais identique au publié |
PASS |
| 6 | Journaux de jeu de session absents | voir § 3.4 | 0 fichier .log ni journal de jeu dans le diff |
PASS |
| 7 | Binaires | voir § 3.5 | 0 binaire ajouté ou modifié | PASS |
| 8 | README inchangé | git diff --name-only 56dfcfc 655b44a -- README.md |
0 ligne (décision de l'utilisateur) | PASS |
3.2 Contenu adulte
Méthode : git diff -U0 56dfcfc 655b44a écrit dans un fichier du scratchpad (7 888 lignes), puis recherche (outil Grep, insensible à la casse, mots entiers, lignes +) de 41 termes : xxx, sex(y/ual), porn(o), fuck(ing), pussy, cock, cum, dick, penis, vagina, blowjob, orgasm, rape, dildo, boob(s), breast, nipple, genital(s), nude, naked, bondage, bdsm, anal, masturbat*, erotic, hentai, nsfw, slut, whore, clit*, semen, sperm, vulva, erection, explicit.
Sortie : 6 lignes du diff (6876, 6878, 6879, 6880, 6882 et 6923), toutes dans PUB-20261020-VAL.md (fichier ajouté par ce diff : il cite les termes cherchés et les identifiants xxx / sex / bondage de la veille : dossier D:\XxX\…, noms de widgets UI/Sex*, UI/Bondage). Citation de termes de contrôle, aucune description : cat. T, déjà jugée PASS le 2026-10-20. Aucune occurrence dans les 71 autres fichiers (sources C++, .ini, .md de lots, .csv).
Par nom de fichier : git diff --name-only 56dfcfc 655b44a filtré sur sex|nude|porn : 0 ligne.
Non lu une à une : les 7 340 lignes ajoutées (balayage lexical seulement, cf. Limites).
3.3 Secrets et données personnelles
- Jetons, mots de passe, clés (
password|passwd|token|secret|api_key|bearer|ghp_|github_pat|AKIA) sur le diff : seuls résultats = ligne 73 (mot « secret » dans une ligne de journal, voir hôte ci-dessous), et la VAL de la veille (lignes 6871-6923 : noms de variables, recommandations sans valeur,Tokensdu C++). Aucune valeur de secret. Aucun résultat dans les sources C++ du diff. - Adresses de messagerie (expression régulière usuelle « partie locale, arobase, domaine, extension ») : 0 résultat.
- Adresses réseau numériques (quatre groupes de chiffres séparés par des points) : 2 résultats, les adresses de boucle locale et « toutes interfaces » (ligne 6890, VAL de la veille, citation de la règle). Aucune autre.
- Noms de profil Windows et du propriétaire de la machine (recherche des identifiants de profil, de prénom et de nom connus du poste) : 0. Le motif générique de dossier de profil n'apparaît qu'à la ligne 6890 (motif cité dans la VAL de la veille). Les chemins
D:\Game\…(arbre de travail, buildsLifePlay_Build_5.8_*, sauvegardesLifePlay_Backup_5.5\…, moteurD:\Game\Launcher\Engine\UE_5.8) etC:\Program Filesapparaissent dans les fiches de lot : chemins de la machine sans nom de profil, du même type que ceux déjà publiés (PubCheck : 0 constat).APPDATA/%LOCALAPPDATA%: variables d'environnement, sans nom d'utilisateur (les 2 CSV contiennent%LOCALAPPDATA%\LifePlay-Revivalen clair). REL2-releve-R0.csv(97 lignes) etR1.csv(105 lignes) : relevés « Racine, Chemin, Octets, Date » (noms de fichiers :CrashReportClient.ini,GameUserSettings.ini,*.sav,*.lpcharacter.json, etc.). Noms, tailles, dates seulement ; aucun contenu de sauvegarde. Pas des journaux de jeu.- Domaine :
forgejo.edujiro5972.frfigure déjà dans l'arbre publié56dfcfc(3 fichiers :BOSS-ETAT.md,BOSS-JOURNAL.md,REP1-DOC-02.md, 6 lignes,git grep -c). Dans655b44a: 5 fichiers (ajout dePUB-20261020-VAL.md, 2 lignes, ettickets/PUB-20261020-T1.md, 1 ligne ;BOSS-JOURNAL.mdpasse de 1 à 3). Décision de l'utilisateur du 2026-10-20 17:34 (« On garde le nom forgejo.edujiro… », citée dans le diff, ligne 74) : hostname gardé. Non rouvert ici.
3.4 Fichiers à ne pas publier, journaux de jeu
Commande : git ls-tree -r --name-only 655b44a filtré sur LifePlay\.uproject|LP-PROJET\.ini|AG/ORGA2|\.log$|DC2-BUILD. Sortie brute : LifePlay.uproject (une seule ligne).
LifePlay.uproject: suivi, donc dans l'arbre ;git diff 56dfcfc 655b44a -- LifePlay.uproject | wc -l: 0, identique à la version déjà publiée. La modification locale (M LifePlay.uprojectdegit status --short) n'est pas dans655b44a. Conforme si le commit de publication prend655b44a^{tree}et non l'index ni le répertoire de travail.Docs/LP-PROJET.inietDocs/Migration/etat/AG/ORGA2/: 0 fichier dans l'arbre (filtreLP-PROJET|ORGA2: 0 ligne) ; non suivis (??dans le statut).*.log: 0. Noms contenantlog,sessionoujournaldans le diff : 3,Docs/Journal_Modifications.md,BOSS-JOURNAL.md,REPO-JOURNAL.md(journaux de projet en texte, pas des journaux de jeu). Aucun journal de session de jeu dans le diff.- Autres fichiers locaux non commités (
BOSS-JOURNAL.md,FILE.md,LifePlay.uproject) : hors du commit si l'arbre vient de655b44a. Arbre : 2 449 fichiers (git ls-tree -r --name-only 655b44a | wc -l) contre 2 396 pour56dfcfc; écart 53 = nombre de fichiers A du diff (cohérent).
3.5 Binaires
git diff --name-status 56dfcfc 655b44a filtré sur uasset|umap|exe|dll|pak|zip|7z|png|jpg|wav|mp3|bin|pdb|txt : 0 ligne. Fichiers hors .md du diff (13, git diff --numstat) : Config/DefaultGame.ini, Config/DefaultScalability.ini, 2 .csv, ModdingExtraBPLibrary.cpp, 8 fichiers Source/LifePlay (7 .cpp et 1 .h : CameraMode, ColorGrade, DirectControl, Keyboard, ModInfo, Settings x2, VideoQuality), tous texte. 59 .md + 13 autres = 72 (confirme le total). Aucun binaire ajouté, aucun modifié.
Modifications de configuration : ProjectVersion=2026.10.2.1a -> 2026.10.2.2a (DefaultGame.ini), r.Tonemapper.Sharpen=0.5 en deux sections (DefaultScalability.ini) ; rien de personnel.
4. Diff lu en entier
git diff --name-status 56dfcfc 655b44a | awk '{print $1}' | sort | uniq -c : 53 A, 19 M = 72 fichiers (recompté par --stat : « 72 files changed, 7340 insertions(+), 97 deletions(-) » ; git diff --name-status | wc -l : 72). Attendu 72 : confirmé.
Répartition par dossier : Docs/Migration/etat/REL 30, REPO 21, BOSS 9, Docs/Journal_Modifications.md 1, Config 2, Source/LifePlay 8, Plugins/ModdingExtra 1.
Méthode : balayage par motifs (§ 3.2, § 3.3) du diff complet, lecture des lignes à constat et du numstat des 13 fichiers non .md. Les 7 340 lignes n'ont pas été lues une à une.
5. Verdict : PASS
Les contrôles sont conformes : PubCheck 0 constat, 72 fichiers comme attendu, aucun contenu sexuel explicite ajouté, aucun secret, aucun nom de profil, fichiers exclus et journaux de jeu absents de l'arbre, aucun binaire, README inchangé.
Réserve non bloquante : le README annonce encore l'alpha 2026.10.2.1a alors que DefaultGame.ini porte 2026.10.2.2a : écart voulu par l'utilisateur (README, livraison et tag v2026.10.2.2a ensuite).
6. Points à confirmer par l'utilisateur
- Le commit de publication prend l'arbre de
655b44a(git commit-tree 655b44a^{tree} -p pub/ue5.8), pas le répertoire de travail : sinonLifePlay.uprojectlocal,Docs/LP-PROJET.inietetat/AG/ORGA2/seraient embarqués. - Parent
pub/ue5.8=56dfcfc: confirmé par le fetch de l'ordonnateur (serveur redevenu joignable,origin/ue5.8distant =56dfcfc). Information rapportée, non rejouée par le validateur. - Désaccord assumé entre README (2.1a) et version du jeu (2.2a) pour cette publication : accepté par l'utilisateur, à rappeler après la livraison du jeu.
Limites (non mesuré)
- Balayage lexical (anglais, français) : une phrase explicite sans l'un des termes n'est pas vue. Textures, icônes, sons : aucun dans le diff.
- Contrôle du diff
56dfcfc..655b44a, non des 2 396 fichiers déjà publiés. - Serveur distant non interrogé par le validateur (état du serveur repris de l'ordonnateur).
Fichiers à commiter
A : Docs/Migration/etat/REPO/PUB/PUB-20261021-VAL.md (ce livrable). Aucun autre fichier modifié par cette fiche. Ce fichier ne figure pas dans 655b44a (donc pas dans l'arbre contrôlé) ; commité avant la publication, il entre dans un commit suivant, pas dans cette publication.
Tours : 14 / 40
À verser : lp-validate — pour le balayage de publication, écrire le diff -U0 dans le scratchpad puis le filtrer avec Grep : les VAL de publication précédentes citent leurs propres termes de recherche et ressortent comme faux positifs. Ne jamais écrire dans une VAL les identifiants de profil recherchés, des adresses IP littérales ni un exemple d'adresse de messagerie : PubCheck les signale (constats NOM et ADRESSE).
Suite : Big Boss doit donner la commande de push (arbre de 655b44a, parent pub/ue5.8 = 56dfcfc) après réponse aux cases du § 6 ; état : contrôle terminé, PASS.