7.7 KiB
Fiche OUTIL1-V2 — Niveau N1 — Modèle prévu sonnet | utilisé sonnet — Agent lp-validator — Skills sk-protocol, sk-recount, debug-verification, lp-validate
OUTIL1-V2-VAL : validation statique de l'application des 15 textes OUTIL1 (2026-10-15)
1. Fiches amont relues
OUTIL1-TEXTES.md(lu en entier : 15 textes S1, S2, L1-L3, V1-V3, P1, B1, C1, C2, D2, O1, D1 ; décision « Approuvé tel quel »).OUTIL1-W2-DOC.md(lu en entier : tableau MD5 avant / après, écart V3-Latestcorrigé, écarts 2-4, geste du profil § 7).- Instantanés
D:\Game\LifePlay_Backup_5.5\OUTIL1-SKILLS\(8 SKILL.md + manifest.csv) etOUTIL1-SKILLS-jeu\(doc 32 + manifest.csv), comparés aux fichiers courants. - Aucune IMPL dans ce sous-lot pour W2 (fiche DOC) : pas de « point à confirmer IMPL » à reprendre.
2. Points à confirmer des IMPL / DOC amont
| Point (source) | Verdict |
|---|---|
W2 § 4.1 : V3 -Latest LifePlay faux, remplacé par chemin positionnel + -Pattern |
PASS (rejoué § 3, code 0 ; écart déclaré et autorisé) |
W2 § 4.1 : première ligne -Stats « non rejouée » |
PASS (rejouée ici : code 0, 2338 lignes) |
| W2 § 4.2 : exemplaires du profil identiques avant | reporté (profil hors périmètre ; MD5 attendus en W2 § 7) |
| W2 § 7 : copie vers le profil (sk-protocol, sk-orchestrate) | reporté (geste de l'utilisateur, non fait par W2, non vérifié) |
| W2 § 4.3 : autres modifications de l'addon étrangères à la fiche | reporté (git de l'addon non relevé ; la comparaison est aux instantanés) |
3. Critères rejoués
V1. 15 textes APRÈS présents mot pour mot, AVANT disparus
Commande : git diff --no-index <instantané> <fichier> pour chacun des 8 SKILL.md et du doc 32 (lus en entier).
| Id | Skill / fichier | APRÈS = TEXTES | AVANT disparu |
|---|---|---|---|
| S1 | sk-protocol § 7 | oui | oui |
| S2 | sk-protocol § 7 | oui | oui |
| L1 | lp-lot | oui (section ajoutée avant « Avant toute modification ») | sans objet (ancre conservée) |
| L2 | lp-lot | oui | oui |
| L3 | lp-lot | oui (bullet ajouté après « Session réutilisée ») | sans objet (ancre conservée) |
| V1 | lp-validate § 1 | oui | sans objet (ajout après l'ancre) |
| V2 | lp-validate § 1 | oui | sans objet (ajout) |
| V3 | lp-validate § 4 | oui, SAUF l'écart déclaré : 2e commande LogStats.ps1 '<copie>\Saved\Logs\LifePlay.log' -Pattern 'Error:','Fatal','Assertion failed','Ensure condition failed' -Max 10 au lieu de -Latest LifePlay -Pattern … ; CmpPie.py conforme |
oui (Select-String et cmp_pie.py disparus) |
| P1 | lp-paths | oui | sans objet (ajout) |
| B1 | lp-build § 4 | oui | sans objet (ajout) |
| C1 | lp-commandlets | oui | oui |
| C2 | lp-commandlets | oui | oui (python Tools\DiffRemplacementNoeuds.py … <profil> disparu) |
| D2 | lp-doc | oui | sans objet (ajout) |
| O1 | sk-orchestrate § 5 | oui | oui |
| D1 | doc 32 § 15.12 | oui | oui |
| Verdict V1 : 15 / 15 conformes, 1 écart déclaré (V3). |
V2. Aucun autre changement par rapport aux instantanés
Lecture de tout le diff de chaque fichier : seuls des blocs correspondant aux 15 textes apparaissent. Lignes ajoutées / retirées lues dans le diff, comparées à W2 § 1 :
| Fichier | Lu | W2 |
|---|---|---|
| sk-protocol | 6 / 3 | 6 / 3 |
| lp-lot | 18 / 2 | 18 / 2 |
| lp-validate | 14 / 2 | 14 / 2 |
| lp-paths | 1 / 0 | 1 / 0 |
| lp-build | 5 / 0 | 5 / 0 |
| lp-commandlets | 7 / 2 | 7 / 2 |
| lp-doc | 4 / 0 | 4 / 0 |
| sk-orchestrate | 6 / 1 | 6 / 1 |
| doc 32 | 3 / 1 | 3 / 1 |
| Verdict V2 : aucun ajout hors texte ; seuls ces 9 fichiers sont couverts par les manifestes d'instantané. |
V3. MD5, LF, FileCheck, PubCheck
Commande : pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\FileCheck.ps1' -Path @(<8 SKILL.md absolus>,<doc 32 absolu>)".
Sortie : 9 lignes LF, CRLF 0, CR 0, BOM -, puis fichiers=9 LF=9 alertes=0 introuvables=0, code 0. MD5 lus, tous égaux aux MD5 « après » de W2 § 1 :
- sk-protocol 582CBEAF3821FB65E41EFF8EE772B350 ; lp-lot A9EB85B4BD39E167C32F1E7F71578A49 ; lp-validate 6898D24AD6049AAD4FBB4332A3978E85 ;
- lp-paths 055ECF15B38D1FE5B78492200E9BD403 ; lp-build AE5197217DD7200AB1BE5CE5B7D36D65 ; lp-commandlets F7B48C57E34CBD2E413B4B598ECCC328 ;
- lp-doc E1077ECF921C75829BD37F4203E34590 ; sk-orchestrate 1DD4D1D16204DE6C0B3BD9E44011CF68 ; doc 32 329215D89CA04E0B89527FAC980CF135.
Commande :
pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\PubCheck.ps1' -Fichiers @(<8 SKILL.md>,<doc 32>,<OUTIL1-W2-DOC.md>,<OUTIL1-TEXTES.md>)". Sortie :PubCheck : 0 constat(s), code 0. Le présent livrable (après écriture) : PubCheckPubCheck : 0 constat(s)code 0 ; FileCheckLF, CRLF 0,fichiers=1 LF=1 alertes=0 introuvables=0code 0.
V4. Outils cités et index
Commande : ls de 27 chemins sous D:\Game\LifePlay-master 5.8\Tools\ (LogStats.ps1, CmpPie.py, NormaliserLF.py, Manifeste.py, DiffRemplacementNoeuds.py, Indicateurs.py, FicheStats.py, SauverTranscriptions.ps1, hooks\TestCrochet.py, hooks\cas-v2.jsonl, hooks\ecriture-gardien.py, Snapshot.ps1, FileCheck.ps1, PubCheck.ps1, UeState.ps1, CopieEtat.ps1, GitEtat.ps1, AuditAssets.py, AuditScriptDeps.py, BuildCollections.py, FixTextureMips.py, Traces.ps1, Corbeille.ps1, EtatDir.ps1, TracesRacines.ps1, Tests\Corbeille.essais.ps1, Tests\TracesCorbeille.essais.ps1, plus LISEZMOI.md) : tous présents, code 0.
Grep dans Tools\LISEZMOI.md : tous à l'index avec le même appel : LogStats.ps1 l. 18, FicheStats.py l. 19, Indicateurs.py l. 20, CmpPie.py l. 22 (appel et codes 0 / 1 / 2 identiques), NormaliserLF.py l. 52, Manifeste.py l. 53, SauverTranscriptions.ps1 l. 67 (-Session <id> [-Essai], codes 0 / 1 / 2), TestCrochet.py l. 80 (417 cas), DiffRemplacementNoeuds.py l. 100, AuditAssets.py à FixTextureMips.py l. 109-112, Tests\*.essais.ps1 l. 88-89. Nuance non bloquante : l'index met --detail entre crochets (facultatif) pour Indicateurs.py ; le texte O1 (approuvé) l'écrit sans crochets car obligatoire pour recouper une mesure.
Rejeu de l'appel V3 corrigé : pwsh -NoProfile -Command "& '…\Tools\LogStats.ps1' 'D:\Game\LifePlay-master 5.8\Saved\Logs\LifePlay.log' -Pattern 'Error:','Fatal','Assertion failed','Ensure condition failed' -Max 10 -Context 0" → Error: 30 lignes sur 2338, Fatal 0, Assertion failed 0, Ensure condition failed 0, code 0. Rejeu de la 1re commande (… LifePlay.log' -Stats) : Lignes : 2338, Erreurs : 30, code 0. Le journal date du 2026-10-13 : ces comptes valent pour ce fichier, pas pour une session actuelle.
4. Diff lu en entier
9 fichiers lus en entier (8 SKILL.md + doc 32) contre les instantanés ; comptes de lignes en § 3 V2. git diff --no-index rend le code 1 (différences), attendu.
5. Verdict
PASS-STATIC pour l'application du contenu (comparaison aux instantanés et à TEXTES par lecture) ; MD5, fins de ligne, PubCheck, outils et appel LogStats rejoués : PASS. Aucun texte mal appliqué. Écart V3 déclaré, justifié par l'essai de W2 (-Latest cherche <préfixe>_*.log dans Saved\Logs\portage) et confirmé ici par le rejeu du nouvel appel. Témoin en jeu : sans objet (documentation de skills, aucun comportement de jeu).
Écarts bloquants : aucun. L'effet des textes sur I15 n'est pas mesuré ici (mesure P4).
6. Points à confirmer par l'utilisateur
- Copie de
sk-protocoletsk-orchestratevers%USERPROFILE%\.claude\skills(W2 § 7), puis MD5 attendus 582CBEAF3821FB65E41EFF8EE772B350 et 1DD4D1D16204DE6C0B3BD9E44011CF68 : non vérifié ici. - CHG de l'application à réserver et ticket gardien (addon, pin, jeu) : à la charge de l'orchestrateur.
7. Fichiers à commiter
Aucun fichier suivi modifié par cette fiche. Livrable : Docs/Migration/etat/EVAL2/AMEL1/OUTIL1/OUTIL1-V2-VAL.md (A, avec le ticket de clôture de l'orchestrateur).
Tours : 10 / 30