338 lines
21 KiB
Markdown
338 lines
21 KiB
Markdown
|
|
Fiche OUTIL1-W — Niveau N1 — Modèle prévu sonnet | utilisé sonnet — Agent lp-writer — Skills sk-protocol, lp-doc, lp-lot
|
||
|
|
# OUTIL1-TEXTES : textes proposés pour les skills et le doc 32 (2026-10-14)
|
||
|
|
|
||
|
|
Hors gabarit : texte de proposition (avant / après exacts), soumis à l'utilisateur ; aucun skill n'est modifié par cette fiche.
|
||
|
|
Décision validée : « Skills + indicateur I15 ». Source des outils : `Tools\LISEZMOI.md` (relu en entier le 2026-10-14) ;
|
||
|
|
`OUTIL1-PROPOSITION.md` § 6. Skills lus dans `D:\Game\LifePlay-Sandbox-5.8\Tools\claude\skills\<nom>\SKILL.md`
|
||
|
|
(chemins relatifs ci-dessous : `skills\<nom>\SKILL.md`). Numéros de ligne = ceux des fichiers à la lecture du jour.
|
||
|
|
Indicateur I15 (déjà codé : `Tools\Indicateurs.py` l. 2183 et 2295) : appels shell qui écrivent ou lancent un script hors
|
||
|
|
`Tools\`, pour 100 appels shell ; valeur avant = P3, après = P4.
|
||
|
|
|
||
|
|
## 1. Fichiers écrits
|
||
|
|
- `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL2\AMEL1\OUTIL1\OUTIL1-TEXTES.md` (neuf).
|
||
|
|
- Aucun skill, aucun outil, aucun doc modifié.
|
||
|
|
|
||
|
|
## 2. Numéros utilisés (CHG, ERR, doc)
|
||
|
|
sans objet : ni CHG, ni ERR, ni doc numéroté pour ce livrable ; les CHG des modifications de skills seront réservés par
|
||
|
|
l'orchestrateur à l'application (les skills sont hors git du jeu : geste de l'utilisateur, `lp-lot` « Écrire des skills »).
|
||
|
|
|
||
|
|
## 3. Index, plages et registre des reports
|
||
|
|
sans objet : aucun index ni registre touché.
|
||
|
|
|
||
|
|
## 4. Écarts à la fiche
|
||
|
|
- Les skills de l'addon (`D:\Game\LifePlay-Sandbox-5.8`) et ceux du profil (`%USERPROFILE%\.claude\skills`, vus dans le
|
||
|
|
contexte de cette session) sont deux exemplaires : les textes ci-dessous visent l'exemplaire de l'addon (ancres lues
|
||
|
|
là). Le contexte chargé de `sk-protocol` § 7 diffère de l'addon sur la phrase « Script à usage répété » (le profil
|
||
|
|
dit « le ranger dans `Saved/<lot>/` ou le proposer pour `Tools/` » ; l'addon ajoute « du jeu (local, non suivi depuis
|
||
|
|
CHG-357…) ») : à tenir identiques (D-REPO2) ; l'AVANT du texte S2 est celui de l'addon.
|
||
|
|
- Doc 32 : la fiche demandait « si une règle des sessions y vit ». Aucune règle de suppression de session n'existe
|
||
|
|
(Grep `supprim` dans `Docs\32_Organisation_Agents.md`, `lp-lot`, `sk-orchestrate` : rien) ; la seule règle voisine est
|
||
|
|
§ 15.12 l. 534 (« Hors règle : transcriptions des sessions Claude »), d'où le texte D1.
|
||
|
|
- Date de la décision « Copier avant suppression » : 2026-10-14 (session EVAL ; complétée par l'orchestrateur, textes L3, D1).
|
||
|
|
|
||
|
|
## 5. Fichiers à commiter
|
||
|
|
sans objet : aucun fichier suivi par git écrit (`Docs\Migration\etat\` : le `.md` est suivi en texte, mais le livrable
|
||
|
|
d'un sous-lot OUTIL1 part avec le ticket de clôture de l'orchestrateur ; à lister par lui). Livrable à inclure :
|
||
|
|
`Docs/Migration/etat/EVAL2/AMEL1/OUTIL1/OUTIL1-TEXTES.md` (A).
|
||
|
|
|
||
|
|
## 6. Lignes « À verser »
|
||
|
|
sans objet : la fiche rédige les textes à verser ; elle n'en verse aucun.
|
||
|
|
|
||
|
|
## Constats
|
||
|
|
|
||
|
|
### C1. Phrases existantes qui recommandent d'improviser un script pour une tâche couverte par un outil
|
||
|
|
| # | Fichier : ligne | Phrase | Tâche couverte par | Traitement |
|
||
|
|
|---|---|---|---|---|
|
||
|
|
| a | `skills\lp-validate\SKILL.md` : 92 | « comparer à 5.5 avec `etat/U58/U3/cmp_pie.py` » | `Tools\CmpPie.py` | texte V3 |
|
||
|
|
| b | `skills\lp-validate\SKILL.md` : 87 | `Select-String … LifePlay.log … \| Group-Object Line` (one-liner de comptage d'erreurs) | `Tools\LogStats.ps1 -Stats` / `-Pattern` | texte V3 |
|
||
|
|
| c | `skills\lp-lot\SKILL.md` : 100-101 | « ou script écrit quand son outillage le permet » (après un refus à tort) | tout outil de l'index | texte L2 |
|
||
|
|
| d | `skills\sk-protocol\SKILL.md` : 86-87 | « Script à usage répété : … le ranger dans `Saved/<lot>/` ou le proposer pour `Tools/` » (n'impose pas de chercher d'abord ; `Saved/<lot>/` loge des scripts hors index) | `Tools\LISEZMOI.md` | texte S2 |
|
||
|
|
| e | `skills\lp-commandlets\SKILL.md` : 60 | `python Tools\DiffRemplacementNoeuds.py …` (sans `-I`) | l'outil existe ; seul l'appel diffère de l'index | texte C2 |
|
||
|
|
| f | `skills\lp-validate\SKILL.md` : 45-49 | lecture d'une roue Python « par un script fourni par la fiche (… `Saved/<lot>/` ou `Tools/`) » | aucun outil de l'index | signalé seulement : pas d'outil `Tools\` pour les roues ; si le besoin revient, créer l'outil (règle L1) |
|
||
|
|
Aucune phrase ne recommande un heredoc ou `python -c` : les skills les interdisent (`lp-paths` l. 77, `lp-validate` l. 50-52).
|
||
|
|
|
||
|
|
### C2. Textes en dehors de la liste de la fiche
|
||
|
|
Aucun ajout hors cibles. Le texte V1 précise que le validateur ne lance NormaliserLF qu'à blanc (`lp-validate` l. 9-10 :
|
||
|
|
« Le validateur ne modifie ni code, ni config, ni doc validée »).
|
||
|
|
|
||
|
|
## Textes proposés
|
||
|
|
|
||
|
|
Récapitulatif : 15 textes. `sk-protocol` 2 (S1, S2) ; `lp-lot` 3 (L1, L2, L3) ; `lp-validate` 3 (V1, V2, V3) ; `lp-paths` 1 (P1) ;
|
||
|
|
`lp-build` 1 (B1) ; `lp-commandlets` 2 (C1, C2) ; `lp-doc` 1 (D2) ; `sk-orchestrate` 1 (O1) ; doc 32 1 (D1).
|
||
|
|
Indicateurs visés : I15 (S1, S2, L1, L2, B1, C1, C2, V2, V3, D2), I7a (L2, V2 : refus causés par des commandes improvisées),
|
||
|
|
I10a (V1, D2 : contrôles faits par les outils), I15 + mesure (O1), sans indicateur (P1, L3, D1 : repères, traçabilité des sessions).
|
||
|
|
|
||
|
|
---
|
||
|
|
### S1. `skills\sk-protocol\SKILL.md` § 7, bullet « Chercher et lire » (l. 81-82)
|
||
|
|
Indicateur : I15.
|
||
|
|
AVANT :
|
||
|
|
```
|
||
|
|
- Chercher et lire : **Grep**, **Glob**, **Read**, pas `grep`, `find`, `head`, `sed -n` ni `cat` en Bash. Le shell
|
||
|
|
sert à git, aux builds et aux scripts du projet.
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
- Chercher et lire : **Grep**, **Glob**, **Read**, pas `grep`, `find`, `head`, `sed -n` ni `cat` en Bash. Le shell
|
||
|
|
sert à git, aux builds et aux scripts du projet (liste, rôle, appel et codes : `Tools\LISEZMOI.md`). Avant d'écrire
|
||
|
|
un script, un heredoc ou un `python -c`, chercher l'outil dans cet index.
|
||
|
|
```
|
||
|
|
|
||
|
|
### S2. `skills\sk-protocol\SKILL.md` § 7, bullet « Script à usage répété » (l. 86-87)
|
||
|
|
Indicateur : I15.
|
||
|
|
AVANT :
|
||
|
|
```
|
||
|
|
- Script à usage répété : pas dans le scratchpad ; le ranger dans `Saved/<lot>/` ou le proposer pour `Tools/` du jeu (local, non suivi
|
||
|
|
depuis CHG-357 : instantané, CHG et livrable remplacent le commit).
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
- Script : d'abord chercher l'outil dans `Tools\LISEZMOI.md` ; l'appeler tel que l'index le donne au lieu d'en réécrire
|
||
|
|
un. Script à usage répété : il va dans `Tools\` du jeu (local, non suivi depuis CHG-357 : instantané `Snapshot.ps1`,
|
||
|
|
CHG et ligne d'index dans `Tools\LISEZMOI.md` remplacent le commit ; jamais dans le scratchpad). Script ponctuel : il
|
||
|
|
reste dans le lot (`Saved/<lot>/`) et son livrable le cite. Jamais de heredoc ni de `python -c` pour l'un ni l'autre.
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
### L1. `skills\lp-lot\SKILL.md`, nouvelle section avant « ## Avant toute modification (session principale seulement) » (l. 19)
|
||
|
|
Indicateur : I15.
|
||
|
|
AVANT (ancre, ligne 19 ; rien n'est retiré) :
|
||
|
|
```
|
||
|
|
## Avant toute modification (session principale seulement)
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
## Outils avant script (AMEL1, OUTIL1)
|
||
|
|
Avant d'écrire un script, chercher l'outil dans `Tools\LISEZMOI.md` (nom, rôle, appel type, codes de sortie) : mesure
|
||
|
|
(`LogStats.ps1`, `CmpPie.py`, `Indicateurs.py`), build, état de la copie (`UeState.ps1`, `CopieEtat.ps1`, `FileCheck.ps1`,
|
||
|
|
`NormaliserLF.py`, `Manifeste.py`, `GitEtat.ps1`), traces, crochets (`hooks\`), essais (`Tests\`). Un script à usage
|
||
|
|
répété va dans `Tools\` (instantané `Snapshot.ps1` avant d'écrire, CHG, ligne d'index dans `Tools\LISEZMOI.md`, en-tête
|
||
|
|
`.SYNOPSIS` ou docstring, codes 0 / 1 / 2, fins de ligne LF) ; un script ponctuel reste dans le lot (`Saved/<lot>/`,
|
||
|
|
cité par le livrable). Jamais de heredoc ni de `python -c` (`sk-windows-shell`). Repère de l'évaluation : indicateur I15
|
||
|
|
(appels shell qui écrivent ou lancent un script hors `Tools\`, pour 100 appels shell).
|
||
|
|
|
||
|
|
## Avant toute modification (session principale seulement)
|
||
|
|
```
|
||
|
|
|
||
|
|
### L2. `skills\lp-lot\SKILL.md`, bullet « Refus du crochet `ecriture-gardien` », refus à tort (l. 99-101)
|
||
|
|
Indicateurs : I15, I7a.
|
||
|
|
AVANT :
|
||
|
|
```
|
||
|
|
l'agent reformule sa commande sans l'écriture visée (outil Grep, Read, ou script écrit quand son outillage
|
||
|
|
le permet, `sk-windows-shell`) ; s'il ne peut pas, il s'arrête et rend compte, comme pour un refus utile.
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
l'agent reformule sa commande sans l'écriture visée (outil Grep, Read, ou l'outil de `Tools\LISEZMOI.md` qui
|
||
|
|
couvre la tâche ; sinon un script ponctuel du lot, jamais un heredoc ni un `python -c`, `sk-windows-shell`) ; s'il ne
|
||
|
|
peut pas, il s'arrête et rend compte, comme pour un refus utile.
|
||
|
|
```
|
||
|
|
|
||
|
|
### L3. `skills\lp-lot\SKILL.md`, bullet « Session réutilisée (R12) » (l. 91-93), suppression d'une session
|
||
|
|
Indicateur : sans objet (traçabilité des transcriptions, règle de l'utilisateur « Copier avant suppression »).
|
||
|
|
AVANT :
|
||
|
|
```
|
||
|
|
`PASSATION` cite le titre. Une session saturée (≥ 250 k) ne se réutilise pas : elle passe la main (bullet précédent).
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
`PASSATION` cite le titre. Une session saturée (≥ 250 k) ne se réutilise pas : elle passe la main (bullet précédent).
|
||
|
|
- Suppression d'une session (décision de l'utilisateur « Copier avant suppression », 2026-10-14) : avant de la
|
||
|
|
supprimer dans l'application, copier ses transcriptions :
|
||
|
|
`pwsh -NoProfile -File Tools\SauverTranscriptions.ps1 -Session <cliId ou local_…>` (`-Essai` à blanc d'abord ; code 0 fait,
|
||
|
|
1 session inconnue, 2 erreur). La copie va dans `TRANSCRIPTIONS\sessions\<cliId>\` avec `manifest.csv` (Rel, Octets,
|
||
|
|
MD5, Date) et suit `priorCliSessionIds` ; rien n'est supprimé côté sauvegarde. Sans code 0 relu, la session ne se
|
||
|
|
supprime pas. La suppression elle-même reste le geste de l'utilisateur.
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
### V1. `skills\lp-validate\SKILL.md` § 1, après le bullet « Fins de ligne » (fin de l. 39-40)
|
||
|
|
Indicateurs : I10a, I15.
|
||
|
|
AVANT :
|
||
|
|
```
|
||
|
|
Fichier CRLF : `LF seul` doit valoir 0. Fichier LF : `CRLF` doit valoir 0. Fichier mixte (copie 5.8 : `.gitignore`,
|
||
|
|
`Docs/Modding/ShortGuides/explanation.lpmod`) : l'outil Edit le normalise, l'écart doit être annoncé par le livrable.
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
Fichier CRLF : `LF seul` doit valoir 0. Fichier LF : `CRLF` doit valoir 0. Fichier mixte (copie 5.8 : `.gitignore`,
|
||
|
|
`Docs/Modding/ShortGuides/explanation.lpmod`) : l'outil Edit le normalise, l'écart doit être annoncé par le livrable.
|
||
|
|
Compter les CR d'un fichier ou d'un dossier de textes (`etat\`) : `python -I -X utf8 Tools/NormaliserLF.py [--ext .csv,.md]
|
||
|
|
[--recursif] <fichier ou dossier>` ; à blanc par défaut, il n'écrit rien (code 0 conforme, 1 fichiers à corriger, 2
|
||
|
|
erreur). Le validateur ne le lance jamais avec `--appliquer` (il ne modifie rien) : la correction est une fiche IMPL
|
||
|
|
(instantané, puis `--appliquer`).
|
||
|
|
```
|
||
|
|
|
||
|
|
### V2. `skills\lp-validate\SKILL.md` § 1, après le bullet « Fuite de donnée personnelle (R6) » (l. 58-61)
|
||
|
|
Indicateurs : I15, I7a.
|
||
|
|
AVANT (fin du bullet, l. 60-61) :
|
||
|
|
```
|
||
|
|
absolus). Attendu : `PubCheck : 0 constat(s)`, code 0. Code 1 : écart numéroté (catégorie et `fichier:ligne`, jamais la
|
||
|
|
valeur) ; code 2 : `BLOCKED-pubcheck`. Citer la commande et la sortie dans la VAL.
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
absolus). Attendu : `PubCheck : 0 constat(s)`, code 0. Code 1 : écart numéroté (catégorie et `fichier:ligne`, jamais la
|
||
|
|
valeur) ; code 2 : `BLOCKED-pubcheck`. Citer la commande et la sortie dans la VAL.
|
||
|
|
- **Crochet `ecriture-gardien` modifié** (lot qui touche `Tools\hooks\ecriture-gardien.py` ou `cas-v2.jsonl`) : rejouer la
|
||
|
|
batterie après toute modification, sans exécuter les commandes des cas :
|
||
|
|
`python -I -X utf8 Tools/hooks/TestCrochet.py` (crochet par défaut : celui du profil ; un fichier en argument pour le
|
||
|
|
tester avant installation). Attendu : `conformes : 417 / 417` (code 0 ; 1 un écart ; 2 usage). Comparer aussi le MD5
|
||
|
|
de la copie du profil à celui de la référence : `(Get-FileHash -Algorithm MD5 Tools\hooks\ecriture-gardien.py).Hash`.
|
||
|
|
Un autre nombre de cas = batterie modifiée sans mise à jour de `Tools\LISEZMOI.md` : écart.
|
||
|
|
```
|
||
|
|
|
||
|
|
### V3. `skills\lp-validate\SKILL.md` § 4 (l. 84-92), journal de l'éditeur et comparaison PIE
|
||
|
|
Indicateurs : I15 (le one-liner `Select-String` et `cmp_pie.py` hors `Tools\`).
|
||
|
|
AVANT :
|
||
|
|
```
|
||
|
|
```powershell
|
||
|
|
Select-String -Path '<copie>\Saved\Logs\LifePlay.log' -Pattern 'Error:|Fatal|Assertion failed|Ensure condition failed' | Group-Object Line | Sort Count -Desc
|
||
|
|
```
|
||
|
|
```
|
||
|
|
(AVANT ci-dessus : le bloc PowerShell, l. 86-88.) Puis, l. 89-92 :
|
||
|
|
```
|
||
|
|
a changé en 5.8 ; comparer à 5.5 avec `etat/U58/U3/cmp_pie.py` (clé Blueprint / fonction / nœud / propriété), jamais en
|
||
|
|
texte brut. Référence U3 : 47 signatures en 5.8, 3 propres à 5.8.
|
||
|
|
```
|
||
|
|
APRÈS (bloc l. 86-88 remplacé, puis l. 91-92) :
|
||
|
|
```
|
||
|
|
```powershell
|
||
|
|
pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\LogStats.ps1' '<copie>\Saved\Logs\LifePlay.log' -Stats"
|
||
|
|
pwsh -NoProfile -Command "& 'D:\Game\LifePlay-master 5.8\Tools\LogStats.ps1' -Latest LifePlay -Pattern 'Error:','Fatal','Assertion failed','Ensure condition failed' -Max 10"
|
||
|
|
```
|
||
|
|
```
|
||
|
|
et
|
||
|
|
```
|
||
|
|
a changé en 5.8 ; comparer à 5.5 avec `python -I -X utf8 Tools/CmpPie.py --cible <j58> --ref <j55> [<j55> ...]` (signature
|
||
|
|
Blueprint / fonction / nœud / propriété ; code 0 aucune signature nouvelle, 1 au moins une, 2 usage), jamais en texte
|
||
|
|
brut. Référence U3 : 47 signatures en 5.8, 3 propres à 5.8.
|
||
|
|
```
|
||
|
|
Réserve (incertain) : `-Latest LifePlay` suppose que le motif de nom désigne `LifePlay.log` ; l'appel exact du `-Latest` est à
|
||
|
|
rejouer par l'orchestrateur avant application (essai : lancer la commande, attendre un compte non nul).
|
||
|
|
|
||
|
|
---
|
||
|
|
### P1. `skills\lp-paths\SKILL.md`, tableau « Dossiers clés », avant la ligne « Livrables de lot » (l. 32)
|
||
|
|
Indicateur : sans objet (repère de chemins ; soutient I15).
|
||
|
|
AVANT (ancre, ligne 32 ; rien n'est retiré) :
|
||
|
|
```
|
||
|
|
| Livrables de lot | `Docs\Migration\etat\<projet>\<lot>\` (`lp-lot`) |
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
| Outils du jeu (local, non suivi, CHG-357) | `Tools\` ; **index** `Tools\LISEZMOI.md` (nom, rôle, appel type, codes de sortie) ; `Tools\hooks\` : copies de référence des crochets du profil (`ecriture-gardien.py`, `lp-mcp-garde-lecture.py`, `pre-push`), batterie `TestCrochet.py` + `cas-v2.jsonl` ; `Tools\Tests\` : suites d'essais à blanc (`Corbeille.essais.ps1`, `TracesCorbeille.essais.ps1`) ; sauvegarde : `D:\Game\LifePlay_Backup_5.5\TOOLS-REF\` |
|
||
|
|
| Livrables de lot | `Docs\Migration\etat\<projet>\<lot>\` (`lp-lot`) |
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
### B1. `skills\lp-build\SKILL.md` § 4, après le bullet « Le Shipping n'écrit aucun journal… » (l. 70-71)
|
||
|
|
Indicateur : I15.
|
||
|
|
AVANT :
|
||
|
|
```
|
||
|
|
- Le Shipping n'écrit aucun journal (`bUseLoggingInShipping` absent de `Source/LifePlay.Target.cs`) : une mesure
|
||
|
|
`LogStats` se fait sur un Development empaqueté `-skipcook` avec la même cuisson (U8-T5b).
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
- Le Shipping n'écrit aucun journal (`bUseLoggingInShipping` absent de `Source/LifePlay.Target.cs`) : une mesure
|
||
|
|
`LogStats` se fait sur un Development empaqueté `-skipcook` avec la même cuisson (U8-T5b).
|
||
|
|
- Mesurer un journal : `pwsh -NoProfile -File Tools\LogStats.ps1 <journal> -Stats` (trame, F5 par socket et par groupes de 5,
|
||
|
|
DESTROY par trame, hitch `LPDebug`) ; comparer deux journaux : `pwsh -NoProfile -Command "& '<copie>\Tools\LogStats.ps1'
|
||
|
|
-Compare a,b"`. Comparer les erreurs PIE Blueprint de deux jeux de journaux (5.8 contre 5.5) :
|
||
|
|
`python -I -X utf8 Tools/CmpPie.py --cible <j58> --ref <j55> [<j55> ...]` (code 0 aucune signature nouvelle, 1 au moins
|
||
|
|
une, 2 usage). Pas de script de comptage écrit pour l'occasion : liste complète dans `Tools\LISEZMOI.md`.
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
### C1. `skills\lp-commandlets\SKILL.md` § « Lancer », bullet « Relire un journal » (l. 25-27)
|
||
|
|
Indicateur : I15.
|
||
|
|
AVANT :
|
||
|
|
```
|
||
|
|
- Relire un journal : `.\Tools\LogStats.ps1 -Latest <Lot>_<Commandlet> -Pattern ': Error: ', 'LogLP' -Max 10`
|
||
|
|
(dernier journal, nombre de lignes par motif, extraits avec contexte ; `-Tail N` pour la fin, `-Stats` pour les
|
||
|
|
compteurs normalisés). Exemple : `-Latest OUT1_LPTestStringCompat -Pattern ': Warning: '` → la ligne `3120 cas`.
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
- Relire un journal : `.\Tools\LogStats.ps1 -Latest <Lot>_<Commandlet> -Pattern ': Error: ', 'LogLP' -Max 10`
|
||
|
|
(dernier journal, nombre de lignes par motif, extraits avec contexte ; `-Tail N` pour la fin, `-Stats` pour les
|
||
|
|
compteurs normalisés et les familles trame / F5 / DESTROY / hitch). Exemple : `-Latest OUT1_LPTestStringCompat -Pattern ': Warning: '` → la ligne `3120 cas`.
|
||
|
|
Comparer les erreurs PIE Blueprint de deux jeux de journaux : `python -I -X utf8 Tools/CmpPie.py --cible <j58> --ref <j55>
|
||
|
|
[<j55> ...]` (signature Blueprint / fonction / nœud / propriété ; code 0 aucune signature nouvelle, 1 au moins une). Liste
|
||
|
|
complète des outils : `Tools\LISEZMOI.md`.
|
||
|
|
```
|
||
|
|
Note : le « → » de l'exemple existe déjà dans le skill (ancre inchangée) ; il est cité tel quel.
|
||
|
|
|
||
|
|
### C2. `skills\lp-commandlets\SKILL.md` § « Python éditeur », dernière ligne (l. 60)
|
||
|
|
Indicateur : I15.
|
||
|
|
AVANT :
|
||
|
|
```
|
||
|
|
Diff indépendant d'un rebranchement : `python Tools\DiffRemplacementNoeuds.py <avant.txt> <apres.txt> <profil>`.
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
Diff indépendant d'un rebranchement : `python -I Tools/DiffRemplacementNoeuds.py <avant.txt> <apres.txt> [L7a]` (appel de
|
||
|
|
l'index `Tools\LISEZMOI.md`, rubrique Fichiers et paquets ; profils L7a, L7b, CX-B12). Avant d'écrire un script d'audit
|
||
|
|
éditeur, regarder `AuditAssets.py`, `AuditScriptDeps.py`, `BuildCollections.py`, `FixTextureMips.py` (même index).
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
### D2. `skills\lp-doc\SKILL.md`, « Contrôles avant de rendre » (l. 69-74), manifeste d'un dossier
|
||
|
|
Indicateurs : I10a, I15.
|
||
|
|
AVANT (fin du premier paragraphe) :
|
||
|
|
```
|
||
|
|
motif) ; liens relatifs valides ; index à jour ; rien de la « liste interdite » de publication (`lp-repo` § 3) ;
|
||
|
|
fichiers écrits listés dans la section « Fichiers à commiter » du livrable DOC (le gardien les commite aussitôt).
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
motif) ; liens relatifs valides ; index à jour ; rien de la « liste interdite » de publication (`lp-repo` § 3) ;
|
||
|
|
fichiers écrits listés dans la section « Fichiers à commiter » du livrable DOC (le gardien les commite aussitôt).
|
||
|
|
Un dossier entier déplacé, renuméroté ou rangé (ex. `etat\`) : `python -I -X utf8 Tools/Manifeste.py scan <racine>
|
||
|
|
<avant.txt>` avant, `... scan <racine> <apres.txt>` après, puis `... compare <avant.txt> <apres.txt>` (chemin, taille, mtime,
|
||
|
|
sha256 ; code 0 identiques, 1 différences, 2 erreur) ; les différences citées au livrable DOC. Pas de script de comptage
|
||
|
|
improvisé : `Tools\LISEZMOI.md`.
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
### O1. `skills\sk-orchestrate\SKILL.md` § 5 « Indicateurs » (l. 113-114), mesure d'organisation
|
||
|
|
Indicateurs : I15 (et mesure des autres I.. de l'évaluation).
|
||
|
|
AVANT :
|
||
|
|
```
|
||
|
|
## 5. Indicateurs (relevés à l'évaluation du lot)
|
||
|
|
Taux de reprises (`-fix`) / fiches lancées · prolongations, relais et escalades, avec leur cause (budget, capacité, connaissance, consigne) · lignes `À verser` produites et versées · fiches coupées par `maxTurns` sans compte rendu (doit valoir 0) · échecs fabriqués détectés (succès inventé, compte faux, critère ignoré) · fiches avec en-tête complet · durée et coût vs estimation · tours, pic de contexte et jetons par fiche (fiches hors budget de taille). Chaque échec produit une ligne dans le skill concerné.
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
## 5. Indicateurs (relevés à l'évaluation du lot)
|
||
|
|
Taux de reprises (`-fix`) / fiches lancées · prolongations, relais et escalades, avec leur cause (budget, capacité, connaissance, consigne) · lignes `À verser` produites et versées · fiches coupées par `maxTurns` sans compte rendu (doit valoir 0) · échecs fabriqués détectés (succès inventé, compte faux, critère ignoré) · fiches avec en-tête complet · durée et coût vs estimation · tours, pic de contexte et jetons par fiche (fiches hors budget de taille) · scripts improvisés (indicateur I15 : appels shell qui écrivent ou lancent un script hors `Tools\`, pour 100 appels shell). Chaque échec produit une ligne dans le skill concerné.
|
||
|
|
Toute mesure d'organisation (indicateurs AMEL1 I1a à I15 et G-a à G-d, sur une fenêtre de temps) se fait par
|
||
|
|
`python -I -X utf8 Tools\Indicateurs.py --debut "AAAA-MM-JJ HH:MM:SS" --fin "AAAA-MM-JJ HH:MM:SS" [--coupure "…"] --sortie <fichier.md> --detail <dossier>`
|
||
|
|
(code 0 tous calculés, 1 au moins un non mesurable, 2 argument invalide) : `--detail` écrit les CSV de détail ; une
|
||
|
|
mesure sans `--detail` ne se recoupe pas. Pas de script de relevé écrit pour la circonstance : `Tools\LISEZMOI.md`
|
||
|
|
(`FicheStats.py` pour les tours et jetons par fiche d'un lot).
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
### D1. `Docs\32_Organisation_Agents.md` § 15.12, phrase « Hors règle » (l. 534)
|
||
|
|
Indicateur : sans objet (traçabilité des sessions).
|
||
|
|
AVANT :
|
||
|
|
```
|
||
|
|
arrête le passage sans contournement (§ 15.7). Hors règle : transcriptions des sessions Claude, livrables `.md` /
|
||
|
|
```
|
||
|
|
APRÈS :
|
||
|
|
```
|
||
|
|
arrête le passage sans contournement (§ 15.7). Hors règle : transcriptions des sessions Claude (copiées avant la
|
||
|
|
suppression d'une session par `Tools\SauverTranscriptions.ps1 -Session <id>`, décision de l'utilisateur « Copier avant
|
||
|
|
suppression », 2026-10-14 ; `lp-lot`), livrables `.md` /
|
||
|
|
```
|
||
|
|
Le doc 32 est un doc numéroté suivi par git : sa modification demande une entrée CHG (numéro réservé dans `NUMEROS.md`),
|
||
|
|
puis un ticket au gardien ; retour arrière : `git revert` du commit du ticket.
|
||
|
|
|
||
|
|
---
|
||
|
|
Retour arrière commun des textes S1 à O1 (skills hors git du jeu) : `Snapshot.ps1 -Lot OUTIL1-SKILLS` avant d'écrire
|
||
|
|
(`-ProjectRoot D:\Game\LifePlay-Sandbox-5.8`), puis `Restore.ps1 -Lot OUTIL1-SKILLS` ; les skills de l'addon sont suivis dans
|
||
|
|
l'addon (`git revert` par le gardien). Écrire des skills : le mode auto le refuse souvent, geste de l'utilisateur avec
|
||
|
|
`Get-FileHash` avant / après (`lp-lot`).
|
||
|
|
|
||
|
|
Tours : 11 / 30
|