LifePlay-Revival/Docs/Migration/etat/REPO/PUB/PUB-20261020-VAL.md
2026-10-21 09:36:04 +02:00

9.3 KiB

Fiche PUB-20261020-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-20261020-VAL : contrôle du contenu avant le push du commit de publication (2026-10-20)

Lecture seule du dépôt ; seul écrit : ce fichier. Modèle : REP1-VAL-01.md. Règle : doc 27 l. 70 (« sans contenu de jeu ni contenu sexuel »). Diff contrôlé : git diff 8084622 b5feae4.

1. Fiches amont relues

  • etat\REPO\REP1\REP1-VAL-01.md (modèle de contrôle, catégories T / E / S).
  • Fiche de la session (rubriques 1 à 5). REP1-T4.md et PUB3-T3-SPEC.md § 7 (procédure) : non relus ici, la procédure ne change pas le contenu contrôlé.
  • Pas d'IMPL amont : section 2 sans objet : contrôle de contenu, aucune IMPL ni point à confirmer.

2. Points à confirmer des IMPL

sans objet : aucune IMPL dans cette fiche.

3. Critères rejoués

Refs (établi, git rev-parse HEAD ue5.8 pub/ue5.8 origin/ue5.8) : ue5.8 = HEAD = b5feae46e615724389a4008edc190ae03eec745d ; pub/ue5.8 = origin/ue5.8 = 8084622450e0cce9c9dafcfea77c9afbd685d3e6.

# 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 Contenu adulte explicite voir § 3.2 aucune phrase explicite ajoutée PASS
3 Secrets, données personnelles voir § 3.3 aucun secret ; 1 réserve (hôte) PASS avec réserve
4 Fichiers à exclure absents voir § 3.4 tous absents, sauf LifePlay.uproject (attendu) PASS
5 Binaires ajoutés voir § 3.5 0 ajouté, 6 .uasset modifiés PASS

3.2 Contenu adulte

Commande : git diff -U0 8084622 b5feae4 | grep -E '^\+' | grep -v '^+++' | grep -a -i -w -o -E '<liste de 45 termes : organes, actes, violence sexuelle, nudité, sites adultes, grossièretés>' | sort | uniq -c. Sortie brute : 4 xxx, 3 sex, 2 bondage. Aucun autre terme (ni fuck, pussy, cock, cum, dick, penis, vagina, blowjob, orgasm, rape, porn, dildo, boob, genital, nude…). Les 9 occurrences, lues une à une (lignes 5755, 7550, 7561, 7595, 7671, 14439, 14441, 14444, 14477 du diff) :

  • xxx x4 : chemin local D:\XxX\LifePlay_2023_04_Stable_64bit (dossier d'un jeu empaqueté, journal de build) : cat. T, non sexuel.
  • sex x3 : noms de widgets UI/SexAction, UI/SexInterface (liste de tabulations), « Sex Show » (nom de section du menu clavier), citation d'une remarque de l'utilisateur sur l'axe vertical d'une caméra : cat. T / E, noms d'interface, aucune description.
  • bondage x2 : nom de widget UI/Bondage : cat. T.
  • Le texte l. 7561 dit lui-même que le détail n'est pas consigné (règle du doc 27) : conforme. Contrôle par nom de fichier : git diff --name-only 8084622 b5feae4 | grep -i -E 'sex|nude|porn' : 0 ligne. Binaires : comptes de termes explicites dans les 6 .uasset modifiés, avant et après (git cat-file blob <ref>:<f> | tr -d '\000' | grep -a -o -i -E <motifs> | wc -l) : PC 57 -> 57 ; Room 4 -> 4 ; CharGen 105 -> 105 ; CharGenSlider 7 -> 7 ; MainMenu 11 -> 11 ; VisualMorph 2 -> 2. Aucun terme nouveau. Les identifiants déjà admis dans REP1-VAL-01 (SexOn, vin_*, noms de variables) n'apparaissent pas comme ajouts du diff au-delà des 9 lignes ci-dessus.

3.3 Secrets et données personnelles

  • Jetons, mots de passe, clés (password|passwd|mdp|token|secret|api[_-]?key|bearer|BEGIN … PRIVATE|ghp_|github_pat|AKIA|sk-…) sur les lignes ajoutées : aucune valeur. Les seules occurrences de « PASSWORD / PASSWD » sont des noms de variables et des recommandations sans valeur (STM1-SPEC-07.md l. 408-413 : POSTGRES_PASSWORD, FORGEJO__database__PASSWD, FORGEJO_DB_PASSWD=…, '<nouveau>'). git grep -n -i -E 'POSTGRES_USER|DB_USER|USER:|_USER=|PASSWD|PASSWORD|password' b5feae4 -- STM1-SPEC-07.md STM1-SPEC-08.md : 4 lignes, toutes ci-dessus ; aucun nom d'utilisateur de base. « Tokens » dans le C++ = TArray<FString> Tokens (analyse de ligne de commande), sans rapport.
  • Fiches STM1-SPEC-07 et suivantes : pas de mot de passe de serveur (Forgejo, base). Établi.
  • E-mails : grep -o -E '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}' sur les lignes ajoutées : 0 résultat.
  • Adresses IP hors 127.0.0.1 et 0.0.0.0 : 0. Chemins de profil (X:\Users\<nom>) : 0. Nom de profil Windows : 0.
  • Domaines cités : sites de documentation et de référence publics (docker.io, github.com, openstreetmap, etc.) et forgejo.edujiro5972.fr (6 lignes, 3 fichiers : BOSS-ETAT.md, BOSS-JOURNAL.md, REP1\REP1-DOC-02.md). Absent de l'arbre 8084622 (git grep -c : 0 résultat) : nouveauté de ce commit. Réserve : c'est le nom d'hôte du serveur auto-hébergé de l'utilisateur, donné aussi par STM1-SPEC-07.md (noms de conteneurs, ports 80 / 443 / 2222, procédure de redéploiement). Ce n'est ni un secret ni une donnée personnelle au sens de PubCheck (0 constat), mais c'est une information d'infrastructure ; case en § 6.
  • Identité Git : la ligne citée …@users.noreply.github.com est le gabarit de contrôle C3, sans adresse réelle.

3.4 Fichiers à ne pas publier

Commande : git ls-tree -r --name-only b5feae4 | grep -i -E 'LifePlay\.uproject|LP-PROJET\.ini|AG/ORGA2|\.log$|DC2-BUILD'. Sortie brute : LifePlay.uproject (une seule ligne).

  • Docs/LP-PROJET.ini : absent de l'arbre (non suivi : ?? Docs/LP-PROJET.ini dans git status --short).
  • Docs/Migration/etat/AG/ORGA2/ : absent (non suivi, ??).
  • *.log (dont etat\BOSS\COMMUN-*) : 0 fichier suivi.
  • Docs/Migration/etat/sandbox/DC2/DC2-BUILD.md : absent.
  • LifePlay.uproject : suivi, donc présent dans l'arbre, mais c'est la version commitée (publique, présente aussi dans 8084622), non la copie locale. git diff 8084622 b5feae4 -- LifePlay.uproject | wc -l : 0 (identique à ce qui est déjà publié). La modification locale ( M LifePlay.uproject du statut) n'est pas dans le commit b5feae4. Conforme, à condition que le commit de publication prenne l'arbre de b5feae4 et non l'index ou le répertoire de travail.
  • Autres fichiers modifiés localement et non commités (BOSS-ETAT.md, BOSS-JOURNAL.md, STM1-TACHES.md, FILE.md) : hors du commit si l'arbre vient de b5feae4. Arbre : 2 396 fichiers (git ls-tree -r --name-only b5feae4 | grep -c .) contre 2 215 pour 8084622.

3.5 Binaires ajoutés

git diff --name-status 8084622 b5feae4 | grep -i -E 'uasset|umap|\.(png|jpg|wav|mp3|zip|dll|exe|bin)$' : 6 lignes, toutes M, aucune A. Aucun binaire ajouté ; aucun média, archive, DLL ni exécutable.

Fichier (modifié) Taille avant (octets) Taille après (octets)
Content/BPs/PC.uasset 3 420 303 3 410 606
Content/BPs/Room.uasset 6 428 769 6 392 085
Content/UI/CharGen.uasset 5 054 038 5 063 130
Content/UI/CharGenSlider.uasset 455 140 447 967
Content/UI/MainMenu.uasset 2 260 418 2 245 771
Content/UI/VisualMorph.uasset 327 185 333 578

Source : git cat-file -s <ref>:<fichier>. Le plus gros reste sous 6,5 Mo.

4. Diff lu en entier

git diff --name-status 8084622 b5feae4 | awk '{print $1}' | sort | uniq -c : 181 A, 25 M, soit 206 fichiers (confirme git diff --stat : « 206 files changed, 16599 insertions(+), 79 deletions(-) »). Hors .md : 27 fichiers (Config/DefaultInput.ini, 6 .uasset, 15 sources Source/LifePlay, 5 sources Source/LifePlayEditorTools). Méthode : balayage des lignes ajoutées par motifs (§ 3.2, § 3.3) et lecture des lignes à constat. Les 16 599 lignes n'ont pas été lues une à une ; les sources C++ ne contiennent aucun des termes cherchés.

5. Verdict : PASS (avec une réserve, § 6)

Les cinq contrôles de la fiche sont conformes. PubCheck : 0 constat. Aucun contenu sexuel explicite ajouté. Aucun secret. Les fichiers exclus sont absents. Aucun binaire ajouté.

PubCheck sur ce livrable : voir ligne finale.

6. Points à confirmer par l'utilisateur

  • Le nom d'hôte forgejo.edujiro5972.fr (3 fichiers etat/) peut apparaître dans le dépôt qui le reçoit. Si le dépôt de destination est public et que l'hôte doit rester discret, retirer ces lignes avant le commit (décision de l'utilisateur, non bloquante pour PubCheck).
  • Le commit de publication prend l'arbre de b5feae4 (git commit-tree b5feae4^{tree} -p pub/ue5.8), pas le répertoire de travail : sinon LifePlay.uproject local et Docs/LP-PROJET.ini seraient embarqués.

Limites (non mesuré)

  • Balayage lexical (anglais, français) : une phrase explicite sans l'un des termes n'est pas vue. Textures, icônes, sons non examinés. Contenu des modules hors dépôt hors périmètre.
  • Le contrôle du contenu porte sur le diff 8084622..b5feae4, non sur les 2 215 fichiers déjà publiés (cf. REP1-VAL-01).

Fichiers à commiter

A : Docs/Migration/etat/REPO/PUB/PUB-20261020-VAL.md (ce livrable). Aucun autre fichier modifié par cette fiche.

Tours : 10 / 40 À verser : lp-repo — avant le commit de publication, prendre l'arbre par b5feae4^{tree} : LifePlay.uproject et Docs/LP-PROJET.ini locaux ne sont pas dans le commit. Suite : Big Boss doit donner la commande de push (arbre de b5feae4, parent pub/ue5.8) après réponse aux deux cases du § 6 ; état : contrôle terminé, PASS.