LifePlay-Revival/Docs/Migration/etat/EVAL2/AMEL1/AMEL1-I2-GITIGNORE.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

9.5 KiB

Fiche AMEL1-I2 — Niveau N1 — Modèle prévu non précisé par la fiche | utilisé claude-sonnet-5-5 — Agent lp-inventory — Skills sk-protocol, sk-recount, lp-paths

AMEL1-I2-INV : règle .gitignore pour suivre les scripts de etat/ et effet mesuré (2026-10-14)

Abandonnée, décision de l'utilisateur du 2026-10-14 : « Restent ignorés » pour les scripts de etat/ ; Tools/ ignoré à son tour (« on gitignore Tools. c'est un dossier pour Agent IA », CHG-357). Les 3 lignes ci-dessous ne sont pas appliquées ; ce document reste comme trace. Le nettoyage des chemins de profil des 10 scripts (instantané AMEL1-I2) est conservé.

Lecture seule. .gitignore n'est pas modifié. Seuls écrits : ce livrable et %TEMP%\claude\amel1-i2\ (mesure.py, repo\, liste-pubcheck.txt).

1. Commandes exactes

Read  D:\Game\LifePlay-master 5.8\.gitignore                       (91 lignes)
Glob  **/*.py | **/*.ps1 | **/*.jsonl   path=...\Docs\Migration\etat
python -I -X utf8 "%TEMP%\claude\amel1-i2\mesure.py"
pwsh -NoProfile -Command '& "D:\Game\LifePlay-master 5.8\Tools\PubCheck.ps1" -Fichiers @(Get-Content -LiteralPath "$env:TEMP\claude\amel1-i2\liste-pubcheck.txt" | Select-Object -First 50); "EXIT=" + $LASTEXITCODE'
pwsh ... Select-Object -Skip 50 ...                                 (2e lot, 18 fichiers)

mesure.py (Write, dans %TEMP%\claude\amel1-i2\) fait : os.walk de etat/ ; git -C "D:\Game\LifePlay-master 5.8" check-ignore --no-index -v -n -z --stdin (avant, dépôt réel) ; git init d'un dépôt jetable %TEMP%\claude\amel1-i2\repo, fichiers vides aux mêmes chemins, .gitignore réel copié octet pour octet, puis le même check-ignore ; puis le .gitignore avec les 3 lignes insérées, et le même check-ignore (après) ; git ls-files -z -- Docs/Migration/etat.

Méthode choisie : dépôt temporaire avec le vrai moteur git (pas fnmatch, qui ne rend ni l'ordre « dernière règle gagnante » ni le ré-inclusion de répertoires). Validation de la méthode : écart entre « avant » du dépôt réel et « avant » du dépôt temporaire = 0 sur 68 scripts + 1135 témoins (methode: ecarts ... : 0 []). --no-index sert à juger la règle seule, que le fichier soit déjà suivi ou non. Un motif !... rapporté par -v est une ré-inclusion : compté « suivi », pas « ignoré » (première version du script l'avait compté ignoré : corrigée, réexécutée).

2. Lecture du .gitignore actuel (établi, .gitignore:ligne)

Ligne Règle Effet sous etat/
53 /Docs/Migration/etat/**/*.txt ignore les .txt (redondante depuis 75)
66 __pycache__/ ignore ces répertoires (mais voir 76)
75 /Docs/Migration/etat/** ignore tout fichier et répertoire sous etat/
76 !/Docs/Migration/etat/**/ ré-inclut les répertoires (sinon git ne descend pas, les exceptions fichier seraient sans effet) ; vient après 66, donc __pycache__/ est de nouveau parcouru
77 !/Docs/Migration/etat/**/*.md ré-inclut .md
78 !/Docs/Migration/etat/**/*.csv ré-inclut .csv
80 /Docs/Migration/etat/sandbox/DC2/DC2-BUILD.md après 77 : ré-ignore ce .md (adresse e-mail)

Git applique la dernière règle qui correspond. .md et .csv : 75 ignore, 77/78 ré-incluent, donc suivis. .py, .ps1, .jsonl, .txt, .pyc : seule 75 correspond (ou 53 pour .txt), donc ignorés. Preuve (sortie du script, « avant ») : les 68 scripts répondent tous 75:/Docs/Migration/etat/**.

3. Texte exact proposé

À insérer après la ligne 78 (avant le commentaire « donnee personnelle », ligne 79 actuelle, qui devient 82) ; elles doivent rester après 75 et 76, et avant 80 sans importance (80 vise un .md) :

!/Docs/Migration/etat/**/*.py
!/Docs/Migration/etat/**/*.ps1
!/Docs/Migration/etat/**/*.jsonl

Commentaire facultatif à mettre en ligne 74 ou avant : # AMEL1-I2 : scripts de lot suivis aussi (.py, .ps1, .jsonl) ; .txt, .pyc, __pycache__ restent locaux. Numéros observés dans le dépôt temporaire (sans commentaire) : 79 .py, 80 .ps1, 81 .jsonl.

Témoins (dépôt temporaire, « après », chemins fictifs) :

Chemin Avant Après Règle après
etat/ZZ/L1/b.py / etat/ZZ/b.ps1 / etat/b.jsonl ignoré suivi 79 / 80 / 81
etat/ZZ/L1/a.txt ignoré ignoré 75
etat/ZZ/L1/a.pyc ignoré ignoré 75
etat/ZZ/L1/__pycache__/a.cpython-312.pyc ignoré ignoré 75
etat/ZZ/L1/n.json, n.psm1, n.ps1.txt ignoré ignoré 75
etat/ZZ/L1/n.md, n.csv suivi suivi 77 / 78
etat/ZZ/L1/__pycache__/c.py (hypothétique) ignoré suivi 79
Tools/x.py suivi suivi aucune

Réserve : un .py placé dans un __pycache__/ serait suivi (cas non réel : Python n'y met que des .pyc). Aucun fichier de ce type n'existe (1135 témoins réels .txt/.pyc/__pycache__ : 1135 ignorés avant, 1135 après).

4. Comptes bruts (sortie de mesure.py)

INVENTAIRE py/ps1/jsonl (os.walk): 68
temoins negatifs reels (txt/pyc/__pycache__): 1135
deja suivis (ls-files) parmi les scripts: 4 [EVAL2/AMEL1/R2/cas-v2.jsonl, construire_cas.py, ecriture-gardien-v2.py, test_crochet.py]
methode: ecarts temp-avant vs reel-avant (ignore oui/non): 0 []
TOTAL devenus suivis: 68 fichiers, 1075449 octets
motifs avant (scripts): {'75:/Docs/Migration/etat/**': 68}
motifs apres (scripts): {'79:...*.py': 48, '80:...*.ps1': 19, '81:...*.jsonl': 1}

Recompte par Glob (autre méthode) : 48 .py (47 + les 4 relatifs ecriture-gardien-v2.py, construire_cas.py, test_crochet.py, cas-v2.jsonl à part : 45 chemins absolus + 3 relatifs .py), 19 .ps1, 1 .jsonl = 68. Concorde.

Extension Total Ignorés avant Ignorés après Passent à suivi Octets
.py 48 48 0 48 771 239
.ps1 19 19 0 19 128 433
.jsonl 1 1 0 1 175 777
Total 68 68 0 68 1 075 449 (≈ 1,03 Mio)

Nuance : 4 de ces 68 (dossier EVAL2/AMEL1/R2) sont déjà suivis (ajoutés de force, ls-files). Les nouveaux suivis réels sont donc 64 ; la règle les rend simplement cohérents (plus d'ajout forcé nécessaire).

Lot (etat/<projet>/<lot>) Fichiers Octets
AG/ORGA1 1 7 484
AG/P7 (hooks/ecriture-gardien.py, essais/…ps1) 2 119 610
AG/PUB3 2 8 049
AG/TRACE1 12 108 104
AG/VERR1 1 839
AG/brouillons 1 2 113
ARCH427 1 3 233
EVAL/scripts 17 193 785
EVAL2/AMEL1 (R2, 4 déjà suivis) 4 320 913
EVAL2/scripts 16 236 490
OUT1 2 20 825
ST/STE 6 46 599
U58/U3 1 1 662
U58/U7b 2 5 743
Total 68 1 075 449

Liste complète des 68 chemins et tailles : sortie du script (section LISTE), reproductible par la commande ci-dessus ; liste absolue dans %TEMP%\claude\amel1-i2\liste-pubcheck.txt.

5. PubCheck sur les 68 fichiers (2 lots : 50 + 18)

Sorties brutes : lot 1 PubCheck : 16 constat(s), EXIT=1 ; lot 2 PubCheck : 4 constat(s), EXIT=1. Total 20 constats, 10 fichiers, chaque fichier avec deux constats sur la même ligne, PROFIL et NOM (chemin de profil utilisateur contenant le nom du compte ; le nom n'est pas recopié ici). 58 fichiers sans constat, dont les 4 de R2.

Fichier (sous etat/) Ligne Constats
EVAL/scripts/eval_boss.py 15 PROFIL, NOM
EVAL/scripts/eval_commandes.py 13 PROFIL, NOM
EVAL/scripts/eval_load.py 7 PROFIL, NOM
EVAL/scripts/eval_probe.py 6 PROFIL, NOM
EVAL/scripts/eval_probe2.py 4 PROFIL, NOM
EVAL/scripts/eval_probe3.py 6 PROFIL, NOM
EVAL/scripts/eval_probe4.py 4 PROFIL, NOM
EVAL/scripts/eval_probe8.py 4 PROFIL, NOM
OUT1/OUT1_uasset_rejeu.py 2 PROFIL, NOM
ST/STE/STE-J6-TRACE/run_pass.ps1 9 PROFIL, NOM

À corriger AVANT que la règle entre : ces 10 lignes (chemin absolu du profil écrit en dur) deviendraient publiables avec le compte. Correction proposée à l'orchestrateur (non faite ici) : remplacer par %USERPROFILE% / os.path.expanduser("~") ou <compte>. Alternative : ne pas suivre ces 10 fichiers (règle plus étroite par lot) tant qu'ils ne sont pas nettoyés.

6. Écarts, établi / estimé / incertain

  • Écart au compte attendu : la fiche n'en donnait pas ; 68 trouvés (48/19/1).
  • Établi : lecture des règles (.gitignore:53,66,75-80) ; effet des 3 lignes sur les 68 scripts et 1135 témoins, par le moteur git sur dépôt jetable validé (0 écart « avant ») ; taille ; constats PubCheck.
  • Estimé : .gitignore réel a des fins de ligne mixtes (4 CRLF vers les l. 87-90 d'après sk-protocol § 7, non revérifié ici) ; Edit le ramènerait en LF : décision de l'orchestrateur sur la méthode d'écriture. L'écart du numéro de ligne (79-81) est établi seulement pour une insertion après la ligne 78.
  • Incertain / non mesuré : contenu des 58 fichiers sans constat relu seulement par PubCheck (ses motifs, pas une relecture humaine) ; autres dépôts (addon, modules) non concernés par cette règle, non mesurés ; scripts futurs ; ecriture-gardien.py (P7/hooks) et ecriture-gardien-v2.py (R2) font la même taille, 117 116 octets (non comparés au contenu) ; fichiers .py hors etat/ non concernés.

Fichiers à commiter

Aucun par cet agent hors le présent livrable (D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL2\AMEL1\AMEL1-I2-GITIGNORE.md, A, .md donc déjà suivi). .gitignore : non touché.

Tours : 7 / 40