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 -cavant 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.
- fichier CRLF + BOM UTF-8 (
- Fins de ligne de la copie 5.8 (
git -C 'D:\Game\LifePlay-master 5.8' ls-files --eol, colonnei/) : 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-writerde test (sans outil) : cite mot pour motsk-protocol§ 7 et la commande delp-doc, « ERR-043 » absent. Il n'a pas vu sa nouvelle ligne d'agent : le corps des fichiers~/.claude/agentsn'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 ; avecpath=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(passk-probe-agent, qui ne précharge passk-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.mdavant CHG-278 (après EDIT2),manifest.md5.- Addon et jeu : l'historique git suffit (
git revertdes 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.mddu jeu 5.5 (le journal vit dans la copie 5.8).
5. Points à confirmer en VAL
- Dans une session neuve, un sous-agent
lp-implcite 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-validatevide.~/.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-docrejouée → dernier CHG / ERR conformes au journal et au registre.