LifePlay-Revival/Docs/Migration/etat/EVAL2/AMEL1/AMEL1-TEXTES.md

718 lines
45 KiB
Markdown
Raw Normal View History

Fiche AMEL1-W — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-writer — Skills sk-protocol, lp-doc, lp-lot
# AMEL1-W-TEXTES : textes proposés (avant / après) pour R1, R5 à R9, R11 à R14 (2026-10-14)
Hors gabarit : ce livrable propose des textes, il n'en applique aucun. Les sections 1 à 6 suivent le gabarit DOC ; le corps
(les textes) est dans `## Constats`. Rien n'a été écrit dans un skill, un agent, le doc 32 ni la mémoire. Les textes
« Avant » sont recopiés des fichiers lus ce jour ; les numéros de ligne sont ceux de la lecture du 2026-10-14.
Racines : `SK` = `D:\Game\LifePlay-Sandbox-5.8\Tools\claude\skills` ; `AG` = `%USERPROFILE%\.claude\agents` ; `DOCS` =
`D:\Game\LifePlay-master 5.8\Docs` ; `ETAT` = `D:\Game\LifePlay-master 5.8\Docs\Migration\etat`.
Le complément de Big Boss (3 réserves, message du coordinateur) est intégré tel quel dans R1.
## 1. Fichiers écrits
- `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL2\AMEL1\AMEL1-TEXTES.md` (ce fichier, créé).
- Aucun autre fichier.
## 2. Numéros utilisés (CHG, ERR, doc)
sans objet : aucune entrée de journal ni de registre écrite. Les changements ci-dessous, une fois approuvés, auront chacun
leur CHG (réservé dans `ETAT\REPO\NUMEROS.md` par l'orchestrateur) et leur retour arrière (§ « Retour arrière commun »).
## 3. Index, plages et registre des reports mis à jour
sans objet : aucun doc numéroté créé ; le doc 32 n'est modifié que si l'utilisateur approuve R1 / R11 / R12 (changements D1, D2).
## 4. Écarts à la fiche
- Les consignes « script écrit par Write » ne s'appliquent pas telles quelles aux agents sans Edit (voir Contradictions C3) :
le texte proposé pour `lp-inventory` et `sk-windows-shell` en tient compte.
- Rien d'autre.
## 5. Fichiers à commiter
- A `Docs/Migration/etat/EVAL2/AMEL1/AMEL1-TEXTES.md` (dépôt du jeu 5.8, branche `ue5.8`). Aucun fichier partagé touché.
## 6. À verser
À verser : sans objet pour cette fiche (c'est elle qui prépare les versements) ; les contradictions du § C ci-dessous sont à trancher avant écriture.
Tours : 9 / 40
## Constats
### A. Synthèse : nombre de changements par fichier
| Fichier | Changements | Recommandations |
|---|---|---|
| `SK\lp-lot\SKILL.md` | 4 (L1 rôle de Big Boss et rotation, L2 brouillon, L3 PubCheck, L4 renommage) | R1, R5, R6, R12 |
| `SK\lp-lot\boss.md` | 4 (B1 rôle, B2 contrôles BUILD-FIN, B3 rotation, B4 horodatage) | R1, R5, R6, R11, R12 |
| `SK\lp-doc\gabarits.md` | 8 (G1 fiche de tests, G2 bilan, G3 entrée de bilan, G4 brouillon, G5 TACHES, G6 DOC, G7 BUILD, G8 VAL) | R1, R3, R5, R6, R8, R11 |
| `SK\lp-doc\SKILL.md` | 2 (D1 brouillon, D2 liste des gabarits et registre) | R5, R11 |
| `SK\lp-validate\SKILL.md` | 3 (V1 PubCheck, V2 témoin en jeu, V3 `python -c` à retirer) | R6, R8, R7 |
| `SK\sk-windows-shell\SKILL.md` | 2 (S1 section « code en ligne », S2 redirections) | R7 |
| `SK\lp-paths\SKILL.md` | 1 (P1 pièges de poste) | R7, R13 |
| `AG\lp-inventory.md` | 1 (A1) | R7, R13 |
| `SK\sk-orchestrate\SKILL.md` | 2 (O1 fiche `lp-cart`, O2 surcharge du modèle) | R9 |
| `SK\lp-build\SKILL.md` | 1 (LB1) | R14 |
| `AG\lp-builder.md` | 1 (AB1, seulement si l'option A de R14 est choisie) | R14 |
| `DOCS\32_Organisation_Agents.md` | 2 (DOC1 complément du § 15.9, DOC2 nouveau § 15.13) | R1, R11, R12 |
| `ETAT\BOSS\BOSS-JOURNAL.md` (hors git) | 1 (J1 règle d'horodatage) | R11 |
| **Total** | **33** | |
### B. Contradictions et points à trancher (textes actuels contre recommandations)
| # | Texte actuel | Contredit | Traitement proposé |
|---|---|---|---|
| C1 | `lp-validate/SKILL.md` l. 42 : `python -c "import json;json.load(open('LifePlay.uproject'))"` | R7 (jamais `python -c`) | changement V3 |
| C2 | `sk-windows-shell/SKILL.md` l. 31 recommande `> f 2>&1` et `Tee-Object` ; `lp-build/SKILL.md` l. 54 écrit `> "$log" 2>&1` (commande 5.5) | le crochet refuse `>` et `tee` aux agents | S2 (note) ; l. 54 de `lp-build` non modifiée, signalée (commande pour la copie 5.5, session principale) |
| C3 | `sk-protocol` § 7 : un agent sans Edit n'utilise Write que pour son livrable ; les scripts à usage répété vont dans `Saved/<lot>/` ou `Tools/` | R7 « script écrit par Write » | pour les agents sans Edit (`lp-inventory`, `lp-validator`, `lp-builder`, `lp-cart`) : Read pour un JSON ; un script n'est pas écrit par l'agent, il est fourni par la fiche (rubrique 4) ; sinon arrêt et demande. Pour les sessions principales et les agents avec Edit : script écrit par Write |
| C4 | `lp-doc/gabarits.md` l. 90-92 : les quatre colonnes de mesure du registre sont remplies « à la clôture » par `FicheStats` | R11 (colonnes Tours et statut tenues) | G5 : statut écrit à chaque réception, `FicheStats` lancé après chaque VAL PASS |
| C5 | `sk-orchestrate/SKILL.md` l. 49-50 : « Une fiche qui demande plus que le budget de son niveau est coupée en deux fiches, pas dotée d'un budget plus grand » ; `lp-builder` : `maxTurns: 50`, budget ≈ 40 | R14 (budget 60 tours) : 60 dépasse le plafond 50 de l'agent (la règle donne plafond = budget + 25 %, soit 75) | LB1 propose d'abord l'option B (VAL séparée, sans contradiction) ; l'option A (60 tours) exige `maxTurns: 75` et une exception à la règle de coupe : décision de l'utilisateur |
| C6 | `sk-orchestrate/SKILL.md` l. 20 et l. 67 autorisent la surcharge du modèle (« `haiku` par surcharge pour un relevé trivial ») | R9 (pas de surcharge sans motif écrit) | O2 : la surcharge reste permise, avec motif écrit en 2b |
| C7 | « Rotation à 250 k de contexte médian » (consigne du coordinateur) : le médian est une mesure d'ensemble (I1c, cible < 200 k), pas un seuil par session | `lp-lot` l. 68 et doc 32 § 15.9 disent « dès 250 k de contexte » (par session) | textes proposés : seuil par session = 250 k de contexte ; le médian reste la mesure de contrôle. À confirmer |
| C8 | G3 (entrée de bilan) : « citation exacte de l'utilisateur » | « aucun contenu de jeu dans les docs publiques » (`etat/` est suivi en texte par git) | G3 : la citation reste exacte ; un nom ou un texte du jeu y est remplacé par `[…]`, l'original restant dans la transcription. À confirmer |
| C9 | La règle « sessions réutilisées sous le titre du lot » n'existe que dans la mémoire (`sessions-reutilisees.md`) ; aucun skill ni doc ne la porte (Grep `réutilis\|renomm` sans résultat dans les skills et les docs 32-33) | R12 | L4, B3 et DOC2 la posent ; la mémoire renvoie ensuite au skill (usage de `lp-doc`, § Mémoire) |
| C10 | Aucune. `doc 32 § 15.3` (« Une entrée CHG ne s'écrit que quand son commit est imminent ») ne contredit pas R5 : le brouillon vit dans `etat/<projet>/<lot>/`, pas dans le journal ; les textes R5 le disent | — | — |
Retour arrière commun : pour les fichiers suivis par git (doc 32, `gabarits.md`, skills de l'addon) : `git revert` du commit du
ticket `AMEL1-<n>` ; pour un fichier non suivi (agents, `%USERPROFILE%\.claude\skills`, `BOSS-JOURNAL.md`) : restaurer depuis
l'instantané `.\Tools\Snapshot.ps1 -Lot AMEL1-<n>` pris avant l'écriture (`.\Tools\Restore.ps1 -Lot AMEL1-<n> -WhatIf`
d'abord, accord de l'utilisateur). Les deux exemplaires de skills (addon 5.8 et copie du profil) restent identiques. Écrire des
skills ou des agents : le mode auto le refuse souvent, prévoir le geste de l'utilisateur (`lp-lot`, § Avant toute modification).
---
### R1. Recentrer Big Boss (indicateurs I1a, I1b, I1c ; fiches de tests et bilans : I3, I8b)
#### L1 : `SK\lp-lot\SKILL.md`, section « Copie UE partagée, Big Boss et rotation » (l. 62-71), bullet « Rotation » (l. 68-71)
Indicateur : I1a, I1b, I1c.
Avant (l. 68-71) :
````
- Rotation : à chaque `FIN-LOT`, ou dès 250 k de contexte, la session principale passe la main (registre à jour, note de
passage, `PASSATION` à Big Boss), jamais avec un GO ouvert, le jeton ou un verrou en main. Big Boss (Opus) : session
neuve chaque jour, ouverte par l'utilisateur, qui repart de `etat\BOSS\BOSS-ETAT.md` (état courant), puis de la fin
de `etat\BOSS\BOSS-JOURNAL.md` (ajout seul).
````
Après (deux bullets remplacent celui-ci) :
````
- Rôle de Big Boss (AMEL1, R1) : la file de la copie UE, les arbitrages, les GO, les jetons (copie UE et journal), la
réservation des numéros, l'ordre des tickets du gardien. Il garde lui-même, sans les déléguer à un `lp-writer` : la
copie du journal du jeu avant toute relance ; la contre-vérification des MD5 et de `UeState` avant chaque `BUILD-GO` ;
le passage du jeton de la copie UE et du jeton du journal ; la réservation des numéros ; l'ordre des tickets du
gardien. Il ne rédige ni la fiche de tests commune ni le bilan d'essai : un `lp-writer` les rédige à partir des
gabarits FIT et BILAN de `lp-doc/gabarits.md`. Big Boss lui remet une « entrée de bilan par Big Boss » (gabarit ENTREE :
5 à 10 lignes, cas, verdict, citation exacte de l'utilisateur, heure) ; le `lp-writer` ne lit pas sa transcription.
- Rotation de TOUTE session principale (session de lot, Big Boss, session d'évaluation) : à chaque `FIN-LOT`, ou dès
250 k de contexte. Une passation écrite est obligatoire avant d'ouvrir la nouvelle session : état à jour
(`etat\BOSS\BOSS-ETAT.md` pour Big Boss ; registre `<LOT>-TACHES.md` et `<LOT>-ETAT` ou note de passage pour une session
de lot), jetons tenus (copie UE, journal) ou rendus, sessions en cours, point de reprise ; puis `PASSATION` à Big Boss.
Jamais avec un GO ouvert, le jeton ou un verrou en main. Big Boss (Opus) : session neuve chaque jour, ouverte par
l'utilisateur, qui repart de `etat\BOSS\BOSS-ETAT.md` (état courant), puis de la fin de `etat\BOSS\BOSS-JOURNAL.md`
(ajout seul). Mesure de contrôle : contexte médian des sessions principales < 200 k (`boss.md` § 8).
````
Contradiction : aucune avec le texte actuel (il disait « la session principale » ; la fiche d'EVAL2 G3 montre qu'il n'était pas appliqué). Voir C7.
#### L4 : `SK\lp-lot\SKILL.md`, même section, nouveau bullet après les deux ci-dessus (R12, I12)
Avant : (rien ; la règle n'existe que dans la mémoire, voir C9).
Après :
````
- Session réutilisée (R12) : une session reprise pour un autre lot est renommée, dans l'application, au titre du lot
qu'elle sert, dès le message de reprise et à chaque changement de lot ; le message de reprise le rappelle et la
`PASSATION` cite le titre. Une session saturée (≥ 250 k) ne se réutilise pas : elle passe la main (bullet précédent).
````
#### B1 : `SK\lp-lot\boss.md`, en-tête (l. 1-7), nouvelle section « 0 » après la ligne 7
Indicateur : I1a, I1b.
Avant (l. 5-7, dernière phrase de l'en-tête) :
````
5.8\Docs\Migration\etat\`.
````
(suivie d'une ligne vide puis de `## 1. Messages`).
Après (insertion entre les deux) :
````
## 0. Rôle de Big Boss (AMEL1, R1, 2026-10-14)
Big Boss tient : la file de la copie UE, les arbitrages, les GO, les jetons (copie UE, journal), la réservation des
numéros et l'ordre des tickets du gardien. Il garde sans les déléguer : (1) la copie du journal du jeu avant toute
relance ; (2) la contre-vérification des MD5 et de `UeState` avant chaque `BUILD-GO` (§ 4) ; (3) le passage des jetons ;
(4) la réservation des numéros ; (5) l'ordre des tickets. Il ne rédige pas la fiche de tests commune ni le bilan d'essai :
un `lp-writer` les rédige à partir des gabarits FIT et BILAN (`lp-doc/gabarits.md`). Big Boss remet au `lp-writer` une
entrée de bilan (gabarit ENTREE) ; le `lp-writer` ne lit pas la transcription de Big Boss. `BOSS-ETAT.md` et
`BOSS-JOURNAL.md` restent tenus par Big Boss.
````
#### B3 : `SK\lp-lot\boss.md`, § 8 « Rotation des sessions », bullet « Session de lot » (l. 97-100) et dernier bullet (l. 108)
Indicateur : I1c.
Avant (l. 97-100) :
````
- **Session de lot** : passation à chaque FIN-LOT, ou dès 250 k de contexte si le lot n'est pas fini. Avant : BUILD-FIN,
JOURNAL-LIBRE, verrou rendu, sous-agents terminés avec compte rendu. Contenu : registre TACHES à jour (statuts, état de
reprise), note de passage (dossier de notes fourni par l'application ; sinon `etat\<projet>\<lot>\<LOT>-PASSATION.md`),
`PASSATION` à Big Boss. La session suivante repart du registre et de la note, pas de la transcription.
````
Après :
````
- **Toute session principale (session de lot, session d'évaluation)** : passation à chaque FIN-LOT, ou dès 250 k de
contexte si le lot n'est pas fini, sans exception (STE est restée vivante 79,6 h ; 13 sessions sur 25 au-dessus de
250 k). Avant : BUILD-FIN, JOURNAL-LIBRE, verrou rendu, sous-agents terminés avec compte rendu. Passation écrite
obligatoire avant d'ouvrir la nouvelle session : registre TACHES à jour (statuts, état de reprise), `<LOT>-ETAT` ou note
de passage (dossier de notes fourni par l'application ; sinon `etat\<projet>\<lot>\<LOT>-PASSATION.md`) avec les jetons
tenus ou rendus, les sessions en cours et le point de reprise, puis `PASSATION` à Big Boss. La session suivante repart du
registre et de la note, pas de la transcription. Une session reprise pour un autre lot est renommée au titre du lot
qu'elle sert (R12).
````
Et, pour Big Boss (bullet « Big Boss », l. 101-107, après la phrase « La rotation est faite par l'utilisateur (il archive la session et en ouvre une neuve). ») : ajouter « La passation écrite est `BOSS-ETAT.md` à jour (jetons, sessions en cours, reprise) avant l'ouverture de la session neuve. » (Le texte actuel liste déjà ces éléments pour `BOSS-ETAT.md` ; l'ajout rend l'écriture préalable obligatoire.)
#### DOC1 : `DOCS\32_Organisation_Agents.md`, § 15.9 (l. 492-501), ajout après le paragraphe « Motif » (l. 500-501)
Indicateur : I1a, I1b, I1c. Ajout seul, le § 15.9 n'est pas réécrit.
Avant (dernière ligne du § 15.9, l. 501) :
````
R1) ; mesure de contrôle : contexte médian < 200 k. Texte opératoire : `lp-lot/boss.md` § 8 ; `sk-orchestrate` § 4.
````
Après (ajout d'un paragraphe) :
````
**Complément du 2026-10-14 (lot AMEL1, `EVAL2-RAPPORT.md` § 3 G3, § 4 R1, F1 = a).** La rotation s'applique à TOUTE session
principale, à chaque `FIN-LOT` ou dès 250 k de contexte, avec une passation écrite obligatoire avant d'ouvrir la
nouvelle session (`BOSS-ETAT.md` ou `<LOT>-ETAT` à jour, jetons tenus, sessions en cours, reprise). Mesure de contrôle
inchangée : contexte médian < 200 k. Motif : STE vivante 79,6 h, 13 sessions sur 25 au-dessus de 250 k, médian 295 k
(P3).
````
#### DOC2 : `DOCS\32_Organisation_Agents.md`, nouveau § 15.13 après le § 15.12 (fin du fichier, après l. 535)
Indicateur : I1a, I1b, I11a, I12. Un doc daté, ajout seul ; une entrée CHG et la mise à jour de l'index ne sont pas nécessaires (pas de nouveau doc) mais le journal consigne le changement.
Avant : (fin du fichier) :
````
(202 éléments, 7 538 Mo) ; commits `3967e9d` (index initial, 334 lignes) et TRACE1-R2 (statuts).
````
Après (ajout) :
````
### 15.13 Rôle de Big Boss recentré, journal horodaté, sessions renommées (lot AMEL1, 2026-10-14)
Décisions de l'utilisateur du 2026-10-14 sur `EVAL2-RAPPORT.md` § 5 (F1 = a, F5 = a). Texte opératoire : `lp-lot/SKILL.md`,
`lp-lot/boss.md` § 0 et § 8, `lp-doc/gabarits.md`.
- **Big Boss** tient la file de la copie UE, les arbitrages, les GO, les jetons et l'ordre des tickets. Il garde sans les
déléguer la copie du journal du jeu avant toute relance, la contre-vérification des MD5 et de `UeState` avant chaque
`BUILD-GO`, le passage des jetons et la réservation des numéros. La fiche de tests commune et le bilan d'essai sont
rédigés par un `lp-writer` à partir des gabarits FIT et BILAN ; Big Boss lui remet une entrée de bilan de 5 à 10 lignes
(gabarit ENTREE). Cible : part de Big Boss dans les jetons ≤ 15 % (clause D-P7.8).
- **BOSS-JOURNAL** : chaque ligne porte l'heure `AAAA-MM-JJ HH:MM` (heure locale). P3 : 86 lignes sur 462 en portaient une.
- **Registres `*-TACHES.md`** : colonnes Tours et statut tenues (statut `acceptée` ou `reprise (<fiche b>)` écrit à la
réception). P3 : mesurable sur 16 fiches sur 52.
- **Sessions** : une session réutilisée est renommée au titre du lot qu'elle sert, à chaque changement de lot (règle de
l'utilisateur du 2026-10-12, mémoire `sessions-reutilisees`, désormais dans `lp-lot`). P3 : 3 sessions sur 25 sous un
mauvais titre.
````
#### Mémoire (information, hors compte)
`sessions-reutilisees.md` : ajouter à la fin « Texte opératoire : `lp-lot/SKILL.md` (bullet « Session réutilisée »), doc 32 § 15.13 », pour que la mémoire renvoie au skill (usage de `lp-doc`, § Mémoire du projet). Fichier hors du livrable, proposé seulement.
---
### Gabarits de `SK\lp-doc\gabarits.md` (R1, R3, R5, R6, R8, R11)
Insertion proposée : les quatre nouveaux gabarits G1 à G4 juste après le gabarit `TACHES` (avant `## TRACE`, l. 101).
#### G1 : nouveau gabarit « FIT — fiche de tests commune » (R1, R3, R8 ; indicateurs I3, I8a, I8b)
Avant : (n'existe pas ; S3 du rapport : 12 fiches différentes, validations implicites 32, en bloc 24).
Après :
````
## FIT — fiche de tests commune (lp-writer, à partir des fiches de lot ; Big Boss ne la rédige pas)
Fichier `etat/BOSS/COMMUN-<n>-TESTS.md`. Tête commune (deux lignes), puis :
1. Build testé : chemin absolu du build et de l'exe, MD5 ou taille, date, lots et CHG / ERR couverts.
2. Faisabilité : pour chaque cas, la fonction ou le réglage existe dans ce build (`sk-orchestrate` § 3, « Test
utilisateur ») ; sauvegarde et copie d'essai prêtes (`lp-validate` § 5) ; machine calme ou réserve « mesure ».
3. Cas : un tableau, un cas par ligne, numérotés `COMMUN-<n>.<k>` :
| Cas | Lot | Correctif (CHG / ERR / ticket) | Action de l'utilisateur | Attendu | Contrôle automatique du journal | Verdict | Découvreur | Heure |
- Contrôle automatique : motif cherché dans le journal de jeu et résultat attendu, lancé avant la remise par
`Tools\EssaiJournal.ps1` quand il existe (AMEL1-R3) ; sinon `sans objet : <motif>`.
- Verdict, Découvreur et Heure restent vides à l'écriture ; le BILAN les remplit. Verdict : `PASS`, `KO`, `KO partiel`,
`non joué`. Découvreur : `utilisateur`, `agent` ou `script`. Heure : `HH:MM`.
4. Cas témoins : les VAL `PASS-STATIC` qui nomment un cas (`lp-validate` § 6) : cas → VAL (chemin).
Aucun contenu de jeu (textes, noms) : décrire l'action par sa fonction, pas par ses mots.
````
#### G2 : nouveau gabarit « BILAN — bilan d'essai » (R1, R3, R8 ; indicateurs I3, I8b, I11a)
Avant : (n'existe pas ; O5 : bilans après coup, C8-C10 écrits ensemble, C13 + 104 min).
Après :
````
## BILAN — bilan d'essai (lp-writer, écrit dans l'heure qui suit la fin de l'essai)
Fichier `etat/BOSS/COMMUN-<n>-BILAN.md`. Sources : la fiche FIT, l'entrée ENTREE de Big Boss, les journaux et résumés
cités. Le rédacteur n'ouvre pas la transcription de Big Boss.
1. Essai : fiche FIT, build, début et fin `HH:MM`, qui a joué, heure d'écriture du bilan (écart avec la fin de l'essai
≤ 60 min, sinon le dire).
2. Verdict par cas : | Cas | Verdict | Heure | Découvreur (`utilisateur`, `agent`, `script`) | Preuve (citation de l'entrée, ou `chemin:ligne` du journal) |
3. KO horodatés : un par ligne : heure `HH:MM`, cas (ou `hors fiche`), symptôme observé, découvreur, ligne ajoutée au
brouillon du journal (`<LOT>-JOURNAL-BROUILLON.md`).
4. Report sur les VAL : | Cas | VAL (chemin) | Verdict statique | Verdict en jeu | Écart |. Le rédacteur ajoute à chaque VAL
concernée une ligne datée `Suite en jeu : COMMUN-<n>.<k> <verdict> (<date HH:MM>)` ; la VAL elle-même n'est pas
réécrite (le validateur n'y revient pas).
5. Contrôles automatiques : résultat de `Tools\EssaiJournal.ps1` par cas, ou `sans objet : <motif>`.
6. Suite : build suivant, fiches `-fix`, décisions qui reviennent à l'utilisateur.
````
#### G3 : nouveau gabarit « ENTREE — entrée de bilan par Big Boss » (réserve de Big Boss n° 2 ; indicateur I1a)
Avant : (n'existe pas).
Après :
````
## ENTREE — entrée de bilan par Big Boss (Big Boss, 5 à 10 lignes)
Fichier `etat/BOSS/COMMUN-<n>-ENTREE.md`. Hors gabarit de tête : une liste, rien d'autre. Une ligne par cas :
`COMMUN-<n>.<k> | verdict (PASS, KO, KO partiel, non joué) | « citation exacte de l'utilisateur » | HH:MM`.
5 à 10 lignes. Big Boss la remet au `lp-writer` (chemin cité dans la fiche), qui rédige le BILAN sans lire la
transcription de Big Boss. Une citation n'est jamais reformulée ; si elle contient un nom ou un texte du jeu, il est
remplacé par `[…]` (l'original reste dans la transcription).
````
Point à confirmer (C8) : le caviardage `[…]` limite « exacte » ; l'utilisateur peut préférer garder la citation entière dans un fichier non publié.
#### G4 : nouveau gabarit « BROUILLON — journal au fil de l'eau » (R5 ; indicateurs I5a, I5b)
Avant : (n'existe pas ; S5 : ≈ 29 h sans CHG ni ERR, 50 ERR en un seul commit).
Après :
````
## BROUILLON — `<LOT>-JOURNAL-BROUILLON.md` (session de lot ou lp-writer ; ajout seul)
Fichier `etat/<projet>/<lot>/<LOT>-JOURNAL-BROUILLON.md`, écrit à chaque BUILD-FIN et à chaque KO. Deux tableaux :
CHG (brouillon) : | Heure du fait (AAAA-MM-JJ HH:MM) | Lot | Fichiers | Raison (fait observable + preuve) | Avant → après | Retour arrière | Versé |
ERR (brouillon) : | Heure du fait (AAAA-MM-JJ HH:MM) | Signature | Source | Fréquence mesurée | Gravité | Lot cible | Statut | Versé |
- Pas de numéro : `CHG-NNN` et `ERR-NNN` sont réservés dans `etat/REPO/NUMEROS.md` au versement, jamais avant
(`lp-doc`). Colonne Versé : vide, puis `CHG-n` / `ERR-n` une fois la ligne versée.
- Le brouillon n'est pas le journal (doc 32 § 15.3 : l'entrée CHG ne s'écrit qu'à l'approche du commit). Une correction
= une nouvelle ligne, on ne réécrit pas le passé.
- La date du fait est celle de l'événement, pas celle de l'inscription : elle permet de mesurer le rattrapage.
````
#### G5 : gabarit TACHES, paragraphe « Colonne « Tours » » (l. 93-94) (R11 ; indicateur I11b)
Avant (l. 93-94) :
````
Colonne « Tours » : des tours seulement (`sk-protocol` § 8), ceux que mesure `FicheStats` (les agents sous-comptent : OBB,
12 fiches sur 15) ; le nombre d'outils, s'il est noté, va dans une note ou la colonne Statut, jamais dans « Tours ».
````
Après (ajout à la suite) :
````
Tout registre `*-TACHES.md` suit ce gabarit avec **toutes** ses colonnes dès l'ouverture, Tours et Statut compris (STG, CAM
et STE ne l'ont pas fait : mesurable sur 16 fiches sur 52). Le statut est écrit à chaque envoi et à chaque réception
(`acceptée`, `reprise (<fiche b>)`, …), jamais en bloc à la clôture ; `python -I Tools/FicheStats.py --lot <LOT>` est
lancé après chaque VAL PASS pour renseigner Tours, Pic, Jetons et Durée, pas seulement à la clôture. Un registre sans ces
colonnes est refusé à la réception.
````
Contradiction C4 : le texte actuel (l. 89-90 : « remplies par `FicheStats` à la clôture ») est étendu, pas retiré.
#### G6 : gabarit DOC, rubrique 2 (R5)
Avant (l. 56-57) :
````
1. Fichiers écrits (chemins). 2. Numéros utilisés (CHG, ERR, doc), réservés à ce lot dans `etat/REPO/NUMEROS.md`, et
commande de contrôle.
````
Après :
````
1. Fichiers écrits (chemins). 2. Numéros utilisés (CHG, ERR, doc), réservés à ce lot dans `etat/REPO/NUMEROS.md`, et
commande de contrôle ; si le lot a un `<LOT>-JOURNAL-BROUILLON.md`, les lignes versées (brouillon → numéro), la colonne
Versé mise à jour.
````
#### G7 : gabarit BUILD (R5, R6)
Avant (l. 47-48) :
````
`Tools/Build.ps1 -FromLog`). 5. Toolchain (`lp-env`). 6. Preuve de chargement si addon (`lp-build`). 7. Journal
archivé (chemin). Rien n'est corrigé ici.
````
Après :
````
`Tools/Build.ps1 -FromLog`). 5. Toolchain (`lp-env`). 6. Preuve de chargement si addon (`lp-build`). 7. Journal
archivé (chemin). 8. PubCheck : commande et ligne `PubCheck : <n> constat(s)` sur le livrable BUILD et sur les résumés
`.md` du tour. 9. Lignes pour le brouillon du journal (faits mesurés, une par changement ou KO ; la session les verse) :
`sans objet : <motif>` si aucun fait. Rien n'est corrigé ici.
````
#### G8 : gabarit VAL (R6, R8)
Avant (l. 53) :
````
`PASS` | `PASS-STATIC` | `FAIL` | `BLOCKED-*`. 6. Points à confirmer par l'utilisateur (cases).
````
Après :
````
`PASS` | `PASS-STATIC` | `FAIL` | `BLOCKED-*`. 6. Points à confirmer par l'utilisateur (cases). 7. PubCheck : commande et
sortie sur les livrables relus. 8. Témoin en jeu : pour chaque correctif de comportement en `PASS-STATIC`, la ligne
`Témoin en jeu : COMMUN-<n>.<k>` (ou `sans objet : <motif>` pour une VAL sans correctif de comportement).
````
---
### R5. Brouillon du journal (indicateurs I5a, I5b)
#### L2 : `SK\lp-lot\SKILL.md`, section « Livrables et registres », nouveau bullet avant « Registre des reports » (l. 89)
Avant (l. 89) :
````
- Registre des reports : liste unique de `21_Sandbox_Addon.md` ; chaque « reste à faire » y entre avec un lot
````
Après (bullet inséré avant) :
````
- **Brouillon du journal (AMEL1, R5).** À chaque `BUILD-FIN` et à chaque KO constaté, la session de lot (ou un
`lp-writer`) écrit ou complète `etat\<projet>\<lot>\<LOT>-JOURNAL-BROUILLON.md` (gabarit BROUILLON de
`lp-doc/gabarits.md`) : une ligne CHG par changement fait, une ligne ERR par KO, avec l'heure du fait et sans numéro.
Ce n'est pas le journal : les numéros se réservent dans `NUMEROS.md` au versement. Au commit, sous jeton
(`JOURNAL-DEMANDE`), la DOC verse les lignes dans `Journal_Modifications.md` et `Registre_Erreurs.md` et marque la colonne
Versé. Repère : plus de 4 h d'activité sans écriture au brouillon (ni CHG, ni ERR) est un écart à signaler à Big Boss.
````
#### D1 : `SK\lp-doc\SKILL.md`, nouvelle section après « Registre : `Docs/Registre_Erreurs.md` » (avant « Docs numérotées », l. 46)
Avant (l. 44-46) :
````
portage, build 5.5 validé pour U58). Ne pas clore sans CHG ni validation en jeu quand le défaut est visuel.
## Docs numérotées `Docs/NN_Titre.md`
````
Après :
````
portage, build 5.5 validé pour U58). Ne pas clore sans CHG ni validation en jeu quand le défaut est visuel.
## Brouillon : `etat/<projet>/<lot>/<LOT>-JOURNAL-BROUILLON.md` (AMEL1, R5)
Écrit à chaque BUILD-FIN et à chaque KO (gabarit BROUILLON de `gabarits.md`) : lignes CHG et ERR sans numéro, avec
l'heure du fait. Le versement au journal et au registre se fait par la DOC, sous jeton, quand le commit est imminent, avec
les numéros réservés dans `NUMEROS.md` ; la ligne versée porte `CHG-n` / `ERR-n` en colonne Versé. Une correction du
brouillon = une nouvelle ligne. Un ERR versé plus de 24 h après l'heure de son fait compte comme rattrapage (indicateur
I5a du plan AMEL1).
````
#### B2 : `SK\lp-lot\boss.md`, § 4 « Contrôles exigés à chaque BUILD-FIN » (R5, R6)
Avant (l. 66) :
````
5. Journaux et résumés archivés sous `etat\<projet>\<lot>\`, cités par chemin.
````
Après :
````
5. Journaux et résumés archivés sous `etat\<projet>\<lot>\`, cités par chemin.
6. Brouillon du journal à jour : lignes CHG / ERR de ce tour dans `<LOT>-JOURNAL-BROUILLON.md` (R5), ou `sans objet : <motif>`.
7. PubCheck : `pwsh -NoProfile -File Tools\PubCheck.ps1 -Fichiers <livrables et résumés .md du tour>` rend 0 (R6) ; sortie
citée dans le message `BUILD-FIN`.
````
Et, deux lignes plus bas (l. 67), la phrase « regroupera 1 à 4 en une commande » reste exacte : 6 et 7 ne sont pas dans `CopieEtat.ps1`.
---
### R6. PubCheck dès la fiche (indicateur I6)
Syntaxe lue dans l'en-tête de `D:\Game\LifePlay-master 5.8\Tools\PubCheck.ps1` (l. 1-33) : `pwsh -NoProfile -File Tools\PubCheck.ps1 -Fichiers <chemin> [<chemin> …]` (le premier chemin après `-Fichiers`, les suivants en arguments restants) ; codes 0 net, 1 constat, 2 erreur ; sortie `<où>:<ligne>:<CATEGORIE>` puis `PubCheck : <n> constat(s)` ; les valeurs cherchées (nom du compte, machine) ne sont jamais imprimées. Lancé depuis la racine du jeu 5.8.
#### L3 : `SK\lp-lot\SKILL.md`, section « Commits et dépôts » (l. 58-60)
Avant :
````
Avant de déposer un ticket, l'orchestrateur lance `pwsh -NoProfile -File Tools\PubCheck.ps1 -Fichiers <chemins du
ticket>` (0 exigé, cité au ticket) ; un livrable ne cite jamais le nom du compte : `<compte>`, `%USERPROFILE%`, motif
lu dans `$env:USERNAME`.
````
Après :
````
Dès qu'un livrable est écrit (VAL, BUILD-FIN, DOC), son rédacteur lance `pwsh -NoProfile -File Tools\PubCheck.ps1
-Fichiers <livrables écrits>` depuis la racine du jeu 5.8 (R6) et cite la ligne `PubCheck : 0 constat(s)` dans le
livrable (1 = constat à corriger avant de rendre, 2 = erreur à rapporter). Avant de déposer un ticket, l'orchestrateur le
relance sur `<chemins du ticket>` (0 exigé, cité au ticket) ; un livrable ne cite jamais le nom du compte :
`<compte>`, `%USERPROFILE%`, motif lu dans `$env:USERNAME`.
````
#### V1 : `SK\lp-validate\SKILL.md`, § 1 « Diff (statique) », bullet après le bullet « Tag annoté » (après l. 47)
Avant (l. 47, fin du dernier bullet de § 1, après lequel l'insertion se fait) :
````
`git rev-parse <tag>^{commit}`. `git diff <tag>` et
`git show <tag>:<fichier>` n'en ont pas besoin. Source : lot OBP (OBP-T2), `OBB-EVAL.md` § 6 P10 ; `OBB-T3-VAL.md` Constats 3.
````
(Ancre à re-citer à l'écriture : la fin du bullet est la phrase `Source : lot OBP (OBP-T2), …Constats 3.` de la l. 47.)
Après (bullet inséré à la suite) :
````
- **Fuite de donnée personnelle (R6)** : `pwsh -NoProfile -File Tools\PubCheck.ps1 -Fichiers <livrables amont et fichiers du diff>`
depuis la racine du jeu 5.8. 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.
````
Indicateur : I6.
---
### R7 et R13. Consignes de shell et pièges de poste (indicateurs I7a, I7b, I13)
#### S1 : `SK\sk-windows-shell\SKILL.md`, nouvelle section avant « ## Interdits » (l. 40)
Avant (l. 38-40) :
````
- Un script à `ValidateSet` appelé en `-File` peut refuser l'argument (liste `-Kind Editeur,Compilation` passée en une seule chaîne) : `pwsh -NoProfile -Command "& '<script>' -Kind Editeur,Compilation"` (`OBB-T7c`, `lp-build` § 8).
## Interdits
````
Après (insertion avant « ## Interdits ») :
````
## Pas de code en ligne (AMEL1, R7 ; agents et sessions principales)
- Jamais `python -c`, jamais `python - <<EOF`, jamais de heredoc Bash ni de here-string PowerShell, même pour tester
l'interpréteur (`python --version` suffit, sans `-c`) ou lire un JSON. P3 : 17 refus que les agents se sont causés,
322 heredocs Python dans les sessions principales.
- Lire un JSON : Read. Le filtrer ou le compter : un script `.py` ou `.ps1` écrit par Write (scratchpad de la session),
lancé par `python -I -X utf8 <fichier>` ou `pwsh -NoProfile -File <fichier>`. Un agent sans Edit (`sk-protocol` § 7) n'écrit
pas de script : il utilise celui que sa fiche fournit (rubrique 4, rangé dans `Saved/<lot>/` ou `Tools/`), sinon Read,
sinon il s'arrête et le dit.
- Le crochet `ecriture-gardien` voit `>` et `->` même entre guillemets ou apostrophes (`grep "^>"`, `awk 'NR>=…'`,
`echo "a -> b"` : 36 refus à tort sur 76 en P3). Chercher avec l'outil Grep, lire un intervalle avec Read (`offset`,
`limit`) ; jamais `grep`, `awk` ni `sed -n` dans le shell. Cette consigne tombe quand le crochet v2 (AMEL1-R2) est en
place : la retirer alors.
- Guillemets : le code va dans un fichier, les chemins en arguments (26 erreurs de guillemets en 5 910 appels shell).
- Pièges de poste (Python du Store et chemin MSIX, `git ls-remote`) : `lp-paths`.
````
Contradictions : C2, C3.
#### S2 : `SK\sk-windows-shell\SKILL.md`, § « Sortie et codes », bullet « Redirections » (l. 31)
Avant :
````
- Redirections : `> f 2>&1`. En PowerShell 5.1, `>` écrit en UTF-16 : utiliser `Out-File -Encoding utf8`. `Tee-Object` pour voir et garder.
````
Après :
````
- Redirections : `> f 2>&1`. En PowerShell 5.1, `>` écrit en UTF-16 : utiliser `Out-File -Encoding utf8`. `Tee-Object` pour voir et garder.
Un agent `lp-*` sous crochet n'écrit pas par redirection (`>`, `tee`) : il lance les scripts du projet, qui écrivent
eux-mêmes leur journal et leur résumé (`Build.ps1`, `LogStats.ps1`), et cite ce chemin.
````
#### V3 : `SK\lp-validate\SKILL.md`, § 1, ligne 42 (contradiction C1)
Avant :
````
- `.uproject` : JSON valide (`python -c "import json;json.load(open('LifePlay.uproject'))"`).
````
Après :
````
- `.uproject` : JSON valide. Lire le fichier avec Read ; test de syntaxe, depuis PowerShell :
`pwsh -NoProfile -Command 'Get-Content -Raw LifePlay.uproject | ConvertFrom-Json | Out-Null'`, code 0 attendu (jamais
`python -c`, `sk-windows-shell`).
````
À vérifier avant écriture : cette commande n'a pas été rejouée dans ce livrable (incertain). Même remarque, sans changement proposé : l. 40-41 (roue Python lue « par `python -I` + `zipfile` ») doit passer par un script fourni, pas par une ligne de commande.
#### P1 : `SK\lp-paths\SKILL.md`, nouvelle section avant « ## Inventaires types » (l. 59) (R7, R13 ; I13)
Avant (l. 57-59) :
````
- `Docs\Migration\etat\` est organisé en `etat/<projet>/<lot>/` ; index `etat/INVENTAIRE.md`, correspondances
`etat/MAPPING.csv`.
## Inventaires types (lecture seule, pwsh 7, depuis la racine du dépôt)
````
Après (insertion avant « ## Inventaires types ») :
````
## Pièges de poste (AMEL1, R7 et R13)
- **Python du Store (MSIX)** : il voit une copie virtualisée de `AppData\Roaming` et ne trouve pas
`AppData\Roaming\Claude`. Les métadonnées des sessions de l'application se lisent par le chemin MSIX :
`%USERPROFILE%\AppData\Local\Packages\Claude_*\LocalCache\Roaming\Claude\claude-code-sessions`. Ne jamais écrire le nom
du compte dans un livrable (`<compte>`, `%USERPROFILE%`).
- **`git ls-remote`** (et tout `git` qui interroge le distant) : `GIT_TERMINAL_PROMPT=0` et un délai, sinon il bloque sur le
gestionnaire d'identifiants (un processus est resté bloqué, T2). PowerShell : `$env:GIT_TERMINAL_PROMPT = '0'` avant la
commande ; Bash : `GIT_TERMINAL_PROMPT=0 git ls-remote …` avec le paramètre `timeout` de l'outil (≤ 30 000 ms).
- **`Tools\FicheStats.py`** : `AGENTS_N3` doit contenir `lp-mcp-bp`, `lp-diag` et `lp-cart-max` (fiche AMEL1-R13) ; avant
ce correctif, `lp-mcp-bp` est compté hors budget à 46 % au lieu de 14 % : recompter à la main.
- Pas de `python -c`, ni de heredoc, ni de `>` / `->` dans le shell : `sk-windows-shell`.
````
Incertain : la phrase « il voit une copie virtualisée » explique la cause d'après le rapport (O7 : « ne voit pas `AppData\Roaming\Claude` ») ; le mécanisme exact de virtualisation n'a pas été relu ici.
#### A1 : `AG\lp-inventory.md`, corps, après la 5e ligne de consigne (l. 18-19)
Avant (l. 18-19) :
````
- Lire et chercher : Read, Grep (`output_mode: count` pour compter), Glob, pas `grep`, `head`, `cat` en Bash ; git et
`Measure-Object` restent au shell. Aucune édition par script ni `sed -i` (`sk-protocol` § 7).
````
Après (ajout à la suite) :
````
- Pas de `python -c`, de heredoc ni de here-string, même pour tester l'interpréteur ou lire un JSON : Read pour un JSON,
ou le script que ta fiche fournit (tu n'écris pas de script, `sk-protocol` § 7). Le crochet refuse `>` et `->` même
entre guillemets : Grep pour chercher. `git ls-remote` : `GIT_TERMINAL_PROMPT=0` et un délai. Python du Store et
chemin MSIX des sessions : `lp-paths`, « Pièges de poste ».
````
Les agents sont lus depuis `%USERPROFILE%\.claude\agents` : écriture par le geste de l'utilisateur (`lp-lot`). Modèle `sonnet`, `tools`, `maxTurns: 50` inchangés.
---
### R8. VAL « témoin en jeu » (indicateurs I8a, I8b)
#### V2 : `SK\lp-validate\SKILL.md`, § 6 « Verdict et livrable », après le bullet « Verdicts » (l. 108-109)
Avant :
````
- Verdicts : `PASS` (tout rejoué, conforme), `PASS-STATIC` (conforme sans exécution rejouée), `FAIL` (écart avec
preuve), `BLOCKED-<cause>`. Un critère non vérifié n'est jamais compté comme passé.
````
Après (bullet inséré à la suite) :
````
- **Témoin en jeu (R8)** : une VAL `PASS-STATIC` d'un correctif de comportement (ce que le jeu fait change ; pas une doc, un
outil ni une configuration sans effet visible) nomme le cas de la fiche de tests commune qui le prouvera : ligne
`Témoin en jeu : COMMUN-<n>.<k>` par correctif. Si la fiche n'existe pas encore, la VAL écrit `Témoin en jeu : à créer`
et demande à l'orchestrateur le cas (fiche FIT, gabarit de `lp-doc`). Une VAL `PASS-STATIC` sans cette ligne est
incomplète. Le bilan d'essai reporte le verdict en jeu sur la VAL : le rédacteur du bilan y ajoute une ligne datée
`Suite en jeu : COMMUN-<n>.<k> <verdict>` ; le validateur ne réécrit pas sa VAL.
````
---
### R9. Fiches `lp-cart` plus étroites (indicateur I9)
#### O1 : `SK\sk-orchestrate\SKILL.md`, § 3 « Pièges de rédaction », bullet après « Test utilisateur » (l. 59)
Avant (l. 59) :
````
- **Test utilisateur** : avant de soumettre un test à l'utilisateur, vérifier qu'il est faisable (fonction ou réglage présent dans la version testée, build disponible, ressource partagée accordée) ; sinon, pas de demande (U8-T6 : réglage absent de la V1.5, une session de jeu perdue).
````
Après (bullet ajouté) :
````
- **Fiche `lp-cart`** (R9) : une question en rubrique 1, une liste fermée de fichiers en rubrique 4 (chemins, ou un dossier nommé
et un motif Grep), un budget en tours et un pic en rubrique 9. Une fiche « cartographier tout X » est coupée avant
l'envoi (une hypothèse ou un domaine par fiche, § 3 « Découpage »). Le modèle de l'en-tête de l'agent est respecté (voir
« 2b »). P3 : 11 passages `lp-cart` sur 14 hors budget, 4 lancés en Opus contre l'en-tête.
````
#### O2 : `SK\sk-orchestrate\SKILL.md`, § 1 (l. 20) et rubrique 2b (l. 38 et l. 52)
Avant (l. 20) :
````
Descendre = surcharge du modèle à l'appel ; monter = agent de niveau supérieur. Vérifier la disponibilité du modèle visé ; sinon prendre le niveau au-dessus.
````
Après :
````
Descendre = surcharge du modèle à l'appel ; monter = agent de niveau supérieur. Vérifier la disponibilité du modèle visé ; sinon prendre le niveau au-dessus. Toute surcharge du paramètre `model`, vers le bas comme vers le haut, porte son motif écrit en rubrique 2b ; sans motif, le modèle de l'en-tête de l'agent s'applique.
````
Avant (modèle de fiche, l. 38) :
````
2b Agent : <nom> (modèle surchargé : <m> | aucun) — préchargés : <liste> — à invoquer : <liste> — outils retirés : <liste>
````
Après :
````
2b Agent : <nom> (modèle surchargé : <m>, motif : <écrit> | aucun) — préchargés : <liste> — à invoquer : <liste> — outils retirés : <liste>
````
Même remplacement à la l. 52 (`Agent : <nom> (modèle surchargé : <m> | aucun) — skills préchargés : …`). Contradiction C6 : l. 67 (« `haiku` par surcharge pour un relevé trivial ») reste valable, son motif est « relevé trivial ».
---
### R11 et R12. Horodatage, registres, sessions
#### B4 : `SK\lp-lot\boss.md`, § 1 « Messages » (l. 29-31), ajout en fin de section (R11 ; I11a)
Avant (l. 29-31) :
````
Attendre la réponse avant d'agir, et ne pas renvoyer un message sur le même objet tant que le premier est sans réponse
(messages croisés : 4 cas en 72 h, `EVAL-RAPPORT.md` § 5). Une consigne qui arrive après le lancement d'une action
s'applique à l'étape suivante et se signale (U8-T5cr, BOSS l. 224).
````
Après (ajout à la suite) :
````
Toute ligne que Big Boss ajoute à `etat\BOSS\BOSS-JOURNAL.md` commence par l'heure `AAAA-MM-JJ HH:MM` (heure locale) ; une
ligne sans heure n'est pas écrite. Un événement dont l'heure exacte est inconnue porte l'heure d'écriture et `(approx.)`.
````
#### J1 : `ETAT\BOSS\BOSS-JOURNAL.md` (hors git), « Règle d'écriture documentaire », ajout en fin de section (après la l. 17) (R11 ; I11a)
Avant (l. 16-17) :
````
it à Lot 29). **Fait** : `b7f8efc`
(CHG-298), contre-vérifié par Big Boss ; gel levé le 2026-10-10.
````
Après (paragraphe ajouté) :
````
**Horodatage (utilisateur via AMEL1, 2026-10-14).** Chaque ligne du journal porte `AAAA-MM-JJ HH:MM` (heure locale) en tête.
Une ligne sans heure est un écart (P3 : 86 lignes sur 462 en avaient une). Le journal reste en ajout seul : les lignes
anciennes ne sont pas réécrites.
````
(Ancre à re-citer exactement à l'écriture : la ligne 16 du fichier actuel commence par « Il doit passer… » et se termine par `**Fait** : `b7f8efc``, lue en l. 16-17 ; l'ajout se place après la l. 17.)
#### D2 : `SK\lp-doc\SKILL.md`, § « Contrôles avant de rendre », fin du paragraphe (l. 66-68) (R11, R1, R3, R5 ; I11b)
Avant :
````
Gabarits à remplir (lot TPL1) : `gabarits.md` — livrables INV, CART, DIAG, SPEC, IMPL, BUILD, VAL, DOC, INT, EVAL
(sections numérotées dans l'ordre, chacune remplie ou `sans objet : <motif>`) et registre `<LOT>-TACHES.md` du lot.
Tout livrable de fiche suit le gabarit de son rôle ; le lire avant d'écrire.
````
Après :
````
Gabarits à remplir (lot TPL1) : `gabarits.md` — livrables INV, CART, DIAG, SPEC, IMPL, BUILD, VAL, DOC, INT, EVAL
(sections numérotées dans l'ordre, chacune remplie ou `sans objet : <motif>`), fiche de tests commune (FIT), bilan
d'essai (BILAN), entrée de bilan par Big Boss (ENTREE), brouillon du journal (BROUILLON) et registre `<LOT>-TACHES.md`
du lot, avec ses colonnes Tours et Statut (un registre sans ces colonnes est refusé à la réception).
Tout livrable de fiche suit le gabarit de son rôle ; le lire avant d'écrire.
````
R12 : voir L4 (lp-lot), B3 (boss.md § 8), DOC2 (doc 32 § 15.13) et la mention de mémoire. Indicateur I12.
---
### R14. Budget de tours du build (indicateur I14)
Constat : COMMUN-9, 55 tours contre 40 déclarés, chaîne de 64 / 65 étapes (`EVAL2-RAPPORT.md` § 3 A4). Contradiction C5 : un budget de 60 pour `lp-builder` (agent N0, `maxTurns: 50`, budget ≈ 40) viole la règle « plafond = budget + 25 % » et la règle de coupe de `sk-orchestrate`. Deux options ; l'option B est recommandée (aucune règle existante à lever).
#### LB1 : `SK\lp-build\SKILL.md`, § 9 « Preuves exigées dans le compte rendu », après le dernier paragraphe (l. 139)
Avant (l. 139) :
````
Exception : aucun code changé depuis le build précédent → « Target is up to date » attendu (`shipping.md`, U8P).
````
Après (option B, recommandée) :
````
Exception : aucun code changé depuis le build précédent → « Target is up to date » attendu (`shipping.md`, U8P).
**Chaîne de vérification longue (R14).** Si la chaîne de contrôles que la fiche demande après le build dépasse 50 étapes
(COMMUN-9 : 64 / 65 étapes, 55 tours contre 40), l'orchestrateur la confie à une fiche VAL séparée (`lp-validator`, budget
propre) ; la fiche BUILD s'arrête aux sections 1 à 9 du gabarit BUILD. Un `lp-builder` qui voit la chaîne dépasser 50
étapes à l'ouverture le dit et s'arrête avant de commencer (livrable partiel, état de reprise).
````
Après (option A, seulement si l'utilisateur la préfère) : remplacer le second paragraphe par
````
**Chaîne de vérification longue (R14).** Si la chaîne de contrôles dépasse 50 étapes, la fiche BUILD porte un budget de
60 tours en rubrique 9 (pic ≤ 150 k) et l'agent `lp-builder` un plafond `maxTurns: 75` (budget + 25 %) ; sinon la chaîne
est confiée à une fiche VAL séparée.
````
Option A exige aussi une exception écrite à `sk-orchestrate` § 3 (« Une fiche qui demande plus que le budget de son niveau est coupée… ») et à `gabarits.md` l. 91-92 (N0-N2 : 40 tours, 150 k, `maxTurns` 50).
#### AB1 : `AG\lp-builder.md` (seulement si l'option A est retenue)
Avant (en-tête, l. 7, et dernière ligne l. 30) :
````
maxTurns: 50
````
````
- Tours : budget de la rubrique 9 (≈ 40) sous le plafond `maxTurns: 50` ; au budget, arrêt avec livrable partiel et état de reprise ; ligne `Tours : <n> / <budget>` dans le compte rendu (`sk-protocol` § 8).
````
Après :
````
maxTurns: 75
````
````
- Tours : budget de la rubrique 9 (≈ 40 ; 60 si la chaîne de vérification de la fiche dépasse 50 étapes) sous le plafond `maxTurns: 75` ; au budget, arrêt avec livrable partiel et état de reprise ; ligne `Tours : <n> / <budget>` dans le compte rendu (`sk-protocol` § 8).
````
Option B : `lp-builder.md` inchangé, sauf cette ligne de rappel à ajouter (facultative) : « Chaîne de vérification de plus de 50 étapes dans la fiche : arrête-toi à l'ouverture et dis-le (`lp-build` § 9). »
---
### C. Ce qui n'a pas été fait ni mesuré
- Aucun texte n'a été appliqué ; aucun effet n'est mesuré (les indicateurs se mesurent en P4).
- Non rejoué : la commande `ConvertFrom-Json` de V3 ; la syntaxe PubCheck est lue dans l'en-tête, pas exécutée ici.
- Non relu : les copies des skills dans `%USERPROFILE%\.claude\skills` (supposées identiques à l'addon 5.8 ; `lp-doc` l'est, vérifié par `cmp` : « same » pour la copie `D:\Game\LifePlay-master 5.8\.claude\skills`).
- Non traité (hors fiche) : R2, R3, R4, R10 (outils et agents hors des fichiers listés) ; ces recommandations n'ont pas de texte ici sauf les gabarits G1 et G2 qui servent R3.
Suite : l'orchestrateur soumet ces textes à l'utilisateur (« approuvé tel quel ») ; décisions à obtenir : C5 (option A ou B pour R14), C7 (seuil par session), C8 (citation exacte et caviardage). État : livrable complet, aucun fichier de skill modifié.