LifePlay-Revival/Docs/Migration/etat/EDIT1/EDIT1-IMPL.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

8.3 KiB

Fiche EDIT1-T1 — Niveau N3 — Modèle prévu non précisé (session mère) | utilisé claude-opus-5-5 — Agent session fille (Claude Code) — Skills sk-protocol, sk-change-safety, lp-paths, lp-doc

EDIT1-IMPL : consignes d'édition et de recherche des agents (2026-10-09)

Hors gabarit partiel : section « Preuves » ajoutée avant les sections du gabarit IMPL (le lot n'a pas de SPEC écrite ; la fiche est le message de la session « Audit des scripts agent répétés »). Emplacement : etat/EDIT1/, même niveau que etat/OUT1/ (aucune règle EDIT dans Tools/EtatDir.ps1, aucun autre dossier EDIT* dans etat/).

Origine

Audit des transcriptions du 2026-10-09 : 588 éditions de fichiers par script Python ad hoc (58 agents, dont 422 par la session principale), fonction edit() préservant les fins de ligne réécrite 131 fois ; grep en Bash ~7 700 fois contre 394 appels à l'outil Grep. Cause : crainte d'abîmer les CRLF, non fondée (voir Preuves).

Preuves (établi)

  • Essai Edit (scratchpad de la session, 2026-10-09), lu par od -c avant et après :
    • fichier CRLF + BOM UTF-8 (EF BB BF, 3 lignes CRLF), Edit qui remplace une ligne et en ajoute une avec é : BOM conservé, 4 lignes toutes en \r\n, é = 303 251 (UTF-8) ;
    • fichier mixte (\r\n, \n, \r\n), Edit sur la 1re ligne : les 3 lignes deviennent \r\n (normalisé). Conclusion : Edit garde CRLF, LF et BOM ; il ne normalise qu'un fichier mixte.
  • Fins de ligne de la copie 5.8 (git -C 'D:\Game\LifePlay-master 5.8' ls-files --eol, colonne i/) : 99 crlf, 443 lf, 2 mixed (.gitignore, Docs/Modding/ShortGuides/explanation.lpmod), 295 -text, 12 none. La fiche annonçait 87 / 426 / 0 : non retrouvé.
  • Chargement : sous-agent lp-writer de test (sans outil) : cite mot pour mot sk-protocol § 7 et la commande de lp-doc, « ERR-043 » absent. Il n'a pas vu sa nouvelle ligne d'agent : le corps des fichiers ~/.claude/agents n'est relu qu'au démarrage d'une session (incertain : non revérifié dans une session neuve).
  • Grep et dossiers ignorés (CHG-278, signalement de la session du lot 29) : depuis la racine de la copie 5.8, Grep McpAutomationBridgeSubsystem → aucun fichier, Grep Resolve-LPEtatDir → 3 fichiers suivis ; avec path = Plugins/McpAutomationBridge, Grep class → 1 589 occurrences dans 437 fichiers. git check-ignore -v : .gitignore:41 (Plugins/McpAutomationBridge/), .git/info/exclude:15 (/Plugins/Marketplace/, HyperAIStudio).

1. Fichiers modifiés

Hors dépôt (aucun dépôt git ne versionne %USERPROFILE%\.claude\agents ni %USERPROFILE%\.claude\skills\sk-* ; git rev-parse dans ~/.claude : « not a git repository ») :

Fichier Changement EDIT1
~/.claude/skills/sk-protocol/SKILL.md 46 → 55 lignes : § 7 « Fichiers : outils dédiés » (Edit / Write, jamais python - <<EOF à s.replace, sed -i, -replace … | Set-Content ; exception fichier mixte, les 2 de la copie 5.8 nommés ; Grep / Glob / Read au lieu de grep, find, head, sed -n, cat ; script répété rangé dans Saved/<lot>/ ou proposé pour Tools/). Puis CHG-278 : 59 → 62 lignes (Grep depuis la racine saute les dossiers ignorés par git, chercher par path).
~/.claude/skills/sk-windows-shell/SKILL.md Interdits : + 3 lignes (pas d'édition ni de recherche par le shell ; Set-Content réencode : 5.1 ANSI, 7 UTF-8 sans BOM).
~/.claude/agents/lp-builder.md, lp-cart.md, lp-validator.md + 1 ligne : Read, Grep, Glob ; aucune édition par script ni sed -i (renvoi § 7).
~/.claude/agents/lp-inventory.md + 2 lignes : idem, Grep output_mode: count pour compter, git et Measure-Object restent au shell.
~/.claude/agents/lp-writer.md + 2 lignes : Edit ou Write, jamais script / sed -i / Set-Content ; exception fichier mixte.
~/.claude/agents/lp-impl.md, lp-impl-max.md, opus-xhigh.md, opus-max.md, fable-top.md + 2 lignes : Edit ou Write ; Grep, Glob, Read ; script répété rangé (renvoi § 7).

Addon, Tools/claude/skills/ (versionné), contenu identique sur les deux branches (git -C D:\Game\LifePlay-Sandbox diff lot/DC3-atelier ue5.8 -- Tools/claude/skills/lp-doc Tools/claude/skills/lp-validate vide au moment des commits) :

Fichier Changement
lp-doc/SKILL.md 51 → 57 lignes : règle Edit en tête ; « au 2026-10-08 le dernier est CHG-248 » et « dernier connu ERR-043 » remplacés par deux commandes Select-String … | Measure-Object -Maximum (rejouées : 262 et 56 au moment de l'écriture).
lp-validate/SKILL.md § 1 : fichier mixte normalisé par Edit à annoncer ; édition par script = écart (+ 3 lignes). Puis report du passage FileCheck.ps1 d'OUT1 (CHG-264) sur lot/DC3-atelier, à la demande de « Commençons U7 ».

Jeu 5.8 (D:\Game\LifePlay-master 5.8, ue5.8) : Docs/Migration/Journal_Modifications.md (CHG-267, CHG-278), Docs/Migration/21_Sandbox_Addon.md (pin 5.8 → aa0c1e5), Docs/Migration/README.md (plage CHG-267 puis CHG-278).

Fins de ligne : tous les fichiers touchés étaient en LF sans BOM et le restent (tr -cd '\r' < f | wc -c = 0 avant et après ; un premier comptage par grep -c $'\r' sous Git Bash était faux, piège noté par OUT1 dans lp-validate).

Commits (rien poussé)

Dépôt Branche Commit Objet
addon D:\Game\LifePlay-Sandbox lot/DC3-atelier d350761 EDIT1 : lp-doc, lp-validate (CHG-267)
addon lot/DC3-atelier 496ff2c passage FileCheck.ps1 d'OUT1 dans lp-validate (CHG-264, intégré par EDIT1)
addon D:\Game\LifePlay-Sandbox-5.8 ue5.8 250aa41 EDIT1 : lp-doc, lp-validate (CHG-267)
addon ue5.8 aa0c1e5 passage FileCheck.ps1 d'OUT1 (pin 5.8)
jeu 5.8 ue5.8 f6df36b journal CHG-267, pin doc 21 aa0c1e5, README
jeu 5.8 ue5.8 6e8541c journal CHG-278, README (seuls fichiers indexés ; LifePlay.uproject modifié par une autre session laissé hors commit)

2. Écarts à la SPEC

  • Pas de SPEC écrite ; écarts à la fiche : chiffres de fins de ligne différents (99 / 443 / 2 mixtes au lieu de 87 / 426 / 0) ; numéro CHG-263 prévu, pris par STM entre-temps → CHG-267 ; report du passage OUT1 dans lp-validate et mise à jour du pin (demandés par « Commençons U7 », hors fiche d'origine) ; ajout CHG-278 (Grep, accord utilisateur).
  • Test de chargement fait par un sous-agent lp-writer (pas sk-probe-agent, qui ne précharge pas sk-protocol).
  • Effet de bord constaté après coup par EDIT2 (CHG-277) : § 7 prescrivait Edit aussi aux agents qui ne l'ont pas (lp-builder, lp-cart, lp-inventory, lp-validator) → 22 appels Edit refusés dans 6 agents après EDIT1. Corrigé par EDIT2 (règle « agent sans Edit »), pas par EDIT1.

3. Instantané

  • D:\Game\LifePlay_Backup_5.5\EDIT1\ : état d'avant EDIT1 des 12 fichiers hors dépôt (agents/ 10 fichiers, skills/sk-protocol/SKILL.md, skills/sk-windows-shell/SKILL.md), manifest.md5 (MD5 vérifiés, 0 écart).
  • D:\Game\LifePlay_Backup_5.5\EDIT1b\ : sk-protocol/SKILL.md avant CHG-278 (après EDIT2), manifest.md5.
  • Addon et jeu : l'historique git suffit (git revert des commits ci-dessus).
  • Attention : ces fichiers ont été modifiés depuis par EDIT2 (CHG-277) et d'autres sessions (gabarits TPL1). Recopier EDIT1\ effacerait aussi ces changements ; pour annuler EDIT1 seul, retirer les lignes citées en § 1 par Edit.

4. Ce qui n'a pas été fait

  • Vérification dans une session neuve que les agents chargent leur nouvelle ligne (voir Preuves, incertain).
  • FileCheck.ps1, cité par lp-validate (servi aux deux jeux par la jonction), n'existe que dans le jeu 5.8 : signalé à « Commençons U7 », non traité.
  • Aucune entrée dans Docs/Migration/Journal_Modifications.md du jeu 5.5 (le journal vit dans la copie 5.8).

5. Points à confirmer en VAL

  • Dans une session neuve, un sous-agent lp-impl cite sa ligne « Modifier avec Edit ou Write… ».
  • git -C D:\Game\LifePlay-Sandbox diff lot/DC3-atelier ue5.8 -- Tools/claude/skills/lp-doc Tools/claude/skills/lp-validate vide.
  • ~/.claude/skills/sk-protocol/SKILL.md § 7 contient les règles Edit, agent sans Edit (EDIT2), Grep/Glob/Read, dossiers ignorés, script répété.
  • Commande de lp-doc rejouée → dernier CHG / ERR conformes au journal et au registre.