Fiche EVAL-T3 — Niveau N0 — Modèle prévu haiku (surcharge) | utilisé claude-haiku-5-5 — Agent lp-inventory — Skills sk-protocol, sk-recount # EVAL-T3-INV : entrées CHG et ERR de la période 2026-10-08 05:30 → 2026-10-11 05:30 (2026-10-11) Résultat : réussi avec réserves (critère d'acceptation tenu : 79 = 79 lignes CHG, 45 = 45 lignes ERR, plages sans trou ; réserves en § 3 et § 4). Périmètre : lecture seule de `D:\Game\LifePlay-master 5.8` (branche ue5.8, HEAD `58f2f13`). Sous-périodes : P0 = 2026-10-08 05:30 → 13:30 ; P1 = → 2026-10-10 10:45 ; P2 = → 2026-10-11 05:30 ; intervalles fermés à gauche, ouverts à droite. Date de l'entrée : colonne Date du journal (date seule, aucune heure) ; heure retenue : heure du commit d'introduction de la ligne (`%ad`, auteur, fuseau +02:00), règle de la fiche. ## 1. Commandes exactes (une par ligne) - `python -I "D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL\scripts\eval_journal.py" > "D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL\data\eval_t3_sortie.txt" 2> "...\data\eval_t3_erreurs.txt"` : code de sortie 0 ; `eval_t3_erreurs.txt` 0 ligne ; Python 3.14.4 (`python -I --version`). Sortie = version 2 du script (§ 3, point c). - Commits lus par le script (lecture seule) : `git -C "D:\Game\LifePlay-master 5.8" log --reverse -p --unified=0 --format=@@C@@%h %ad --date=iso -- Docs/Journal_Modifications.md Docs/Migration/Journal_Modifications.md` (méthode B, même motif pour `Docs/Registre_Erreurs.md` et `Docs/Migration/Registre_Erreurs.md`) ; `git -C "..." log -S "CHG-NNN" --reverse --format=%h %ad --date=iso -- ` (méthode A, commande de la fiche, premier commit) ; `git -C "..." rev-parse --short HEAD` → `58f2f13`. - Comptes par second moyen (Grep, `output_mode: count`) : - `^\| CHG-` sur `Docs/Journal_Modifications.md` → 322 ; `^\| ERR-` sur `Docs/Registre_Erreurs.md` → 88 ; index `Docs/README.md` l. 71-72 : `CHG-001` à `CHG-323` (CHG-048 absent), `ERR-001` à `ERR-088`. - `^\| CHG-(2[4-9]\d|3[0-2]\d) \| 2026-10-(08|09|10|11) \|` sur le journal → 82 (comptage par date du journal). - `^CHG-` sur `data\chg.csv` → 79 ; `,P[012],` sur `data\chg.csv` → 79 ; `^ERR-` sur `data\err.csv` → 45. - `^\| CHG-[0-9]{3} \|[^|]*…` (neuf cellules et plus) sur le journal → 1 ligne (l. 1144, CHG-316). - Lectures : `Read` de `Docs/Journal_Modifications.md` l. 1-12, 1134, 1144, 1190, 1207, 1240 ; `Docs/Registre_Erreurs.md` l. 1-12 ; `git ls-files --eol` des deux tableaux : `i/lf w/lf` (pas de CRLF, le piège de la fiche ne s'applique pas ; vérifié). - Fichiers écrits : `data\chg.csv`, `data\err.csv`, `data\eval_t3_sortie.txt`, `data\eval_t3_erreurs.txt`, `scripts\eval_journal.py`, ce livrable. ## 2. Comptes bruts (sortie du script, `data\eval_t3_sortie.txt` l. 1-105 et 111-200) Tableaux : - CHG : 322 lignes ; cellules par ligne `{6: 251, 7: 70, 10: 1}` ; doublons aucun ; commit d'introduction trouvé 322/322 ; compte cumulé = 1 pour les 322. - ERR : 88 lignes ; cellules `{7: 88}` ; doublons aucun ; commit d'introduction 88/88 ; compte cumulé = 1 pour les 88. Totaux par sous-période (heure du commit) : - CHG : P0 4 ; P1 47 ; P2 28 ; **total 79** ; hors période 243. - ERR : P0 0 ; P1 14 ; P2 31 ; **total 45** ; hors période 43. CHG par lot (lot = colonne « Lot » du journal, reprise telle quelle) : | Lot | P0 | P1 | P2 | total | |---|---|---|---|---| | AG | 0 | 0 | 2 | 2 | | BUD1 | 0 | 1 | 0 | 1 | | DC4 | 1 | 0 | 0 | 1 | | DOCMV | 0 | 0 | 1 | 1 | | DOCNUM | 1 | 0 | 0 | 1 | | DOCSTAT | 0 | 0 | 1 | 1 | | EDIT1 | 0 | 2 | 0 | 2 | | EDIT2 | 0 | 1 | 0 | 1 | | EDIT3 | 0 | 1 | 0 | 1 | | ETAT | 0 | 1 | 0 | 1 | | ETAT2 | 0 | 1 | 0 | 1 | | ETAT3 | 0 | 0 | 1 | 1 | | LISIB | 0 | 0 | 1 | 1 | | OBB | 0 | 0 | 4 | 4 | | OBP | 0 | 0 | 2 | 2 | | OUT1 | 0 | 2 | 0 | 2 | | README | 0 | 0 | 1 | 1 | | REPO-MV | 0 | 0 | 1 | 1 | | SEQ1 | 0 | 3 | 0 | 3 | | STAT1 | 0 | 1 | 0 | 1 | | STB-GIA | 0 | 1 | 0 | 1 | | STB-GIB (1/2) | 0 | 1 | 0 | 1 | | STB-GIB (2/2) | 0 | 1 | 0 | 1 | | STB-GIB (données) | 0 | 1 | 0 | 1 | | STB-GIC | 0 | 1 | 0 | 1 | | STB-MAP | 0 | 1 | 0 | 1 | | STB-MEN | 0 | 1 | 0 | 1 | | STB-MEN (retour) | 0 | 1 | 0 | 1 | | STB-PEA | 0 | 1 | 0 | 1 | | STB-PEB | 0 | 1 | 0 | 1 | | STB-ROO | 0 | 1 | 0 | 1 | | STB-SEX | 0 | 1 | 0 | 1 | | STB-SMS | 0 | 1 | 0 | 1 | | STB-T0 | 0 | 1 | 0 | 1 | | STC | 0 | 0 | 1 | 1 | | STE | 0 | 0 | 9 | 9 | | STF | 0 | 0 | 3 | 3 | | STM | 0 | 4 | 0 | 4 | | TPL1 | 0 | 1 | 0 | 1 | | U-PLAN | 1 | 0 | 0 | 1 | | U-PLAN-2 | 1 | 0 | 0 | 1 | | U0 | 0 | 1 | 0 | 1 | | U0-entrée | 0 | 1 | 0 | 1 | | U1 | 0 | 1 | 0 | 1 | | U2 | 0 | 1 | 0 | 1 | | U3 | 0 | 1 | 0 | 1 | | U4 | 0 | 1 | 0 | 1 | | U5 | 0 | 1 | 0 | 1 | | U6 | 0 | 1 | 0 | 1 | | U7 | 0 | 1 | 0 | 1 | | U7b | 0 | 1 | 0 | 1 | | U8 | 0 | 4 | 1 | 5 | | U8-ADDON | 0 | 1 | 0 | 1 | | **TOTAL** | **4** | **47** | **28** | **79** | ERR par lot (colonne « Lot cible » reprise telle quelle ; plusieurs valeurs sont du texte libre) : | Lot cible | P0 | P1 | P2 | total | |---|---|---|---|---| | AG (règle dans `lp-repo`, deux arbres de l'addon, CHG-302) | 0 | 0 | 1 | 1 | | STB | 0 | 1 | 0 | 1 | | STB-GIA | 0 | 0 | 1 | 1 | | STB-GIB | 0 | 0 | 3 | 3 | | STB-GIC | 0 | 0 | 3 | 3 | | STB-MAP | 0 | 0 | 1 | 1 | | STB-PEA | 0 | 0 | 4 | 4 | | STB-PEB | 0 | 0 | 2 | 2 | | STB-ROO | 0 | 0 | 1 | 1 | | STB-SEX | 0 | 0 | 1 | 1 | | STB-SMS | 0 | 0 | 2 | 2 | | STE (STE-GI) | 0 | 0 | 3 | 3 | | STE (STE-H2) | 0 | 0 | 1 | 1 | | STE (STE-H3) | 0 | 0 | 2 | 2 | | STE (STE-H3, couvert par ERR-082 et ERR-084) | 0 | 0 | 1 | 1 | | STE (STE-P1) | 0 | 0 | 1 | 1 | | STM | 0 | 3 | 0 | 3 | | U7 | 0 | 2 | 0 | 2 | | U7 (5.8) ; V1.x | 0 | 1 | 0 | 1 | | U7 (contournement) ; lot dédié après U7 (doc 21) | 0 | 1 | 0 | 1 | | U7b | 0 | 3 | 0 | 3 | | après V2.0 (portage) | 0 | 1 | 0 | 1 | | liste des bugs du doc 29 (projet ST) | 0 | 2 | 0 | 2 | | à affecter (4 lignes, libellés distincts) | 0 | 0 | 4 | 4 | | **TOTAL** | **0** | **14** | **31** | **45** | Débit CHG (entrées / heures de la sous-période, `data\eval_t3_sortie.txt` l. 107-110) : - P0 : 4 / 8,00 h = 0,50 par heure ; P1 : 47 / 45,25 h = 1,04 par heure ; P2 : 28 / 18,75 h = 1,49 par heure ; période : 79 / 72,00 h = 1,10 par heure. CHG par heure de calendrier (buckets d'une heure, `data\eval_t3_sortie.txt` l. 112-185, somme 79 = 79) : aucune entrée avant 08:00 le 08 ; pics le 2026-10-09 à 21:00 (10), 17:00 (7), 16:00 et 20:00 (6 chacun) ; le 2026-10-10 à 14:00 (5) ; les 2026-10-08 l. 08:00 et 09:00 (2 chacun), 14:00 (2) ; creux 2026-10-09 00:00 à 11:00 et 2026-10-10 00:00 à 09:00 (0). Dernière entrée : CHG-323 à 2026-10-11 05:27 (commit `84b6bef`). Numéros (plages) : - CHG, plage de la période (règle commit) : CHG-245 à CHG-323, 79 entrées, attendu 79, **0 trou** ; CHG-245 est présent dans le tableau mais daté du 07 (voir § 3). - CHG, plage par date du journal (2026-10-08 à 10-11) : 82 entrées (CHG-241 à CHG-323 sauf 245), 0 trou (`Grep` § 1, 82 = 82). - CHG en double dans le tableau : aucun. CHG-048 absent du tableau (connu, index). - CHG-249 à CHG-267 (période « après » du doc 31) : **19** entrées présentes sur 19, aucun manquant. - ERR, plage de la période : ERR-044 à ERR-088, 45 entrées, **0 trou** ; ERR-001 à ERR-088 : 88 lignes distinctes, aucun doublon. ERR de la période et mots-clés (objet ≤ 80 car., `data\eval_t3_sortie.txt` l. 191-198) : - Mot-clé organisationnel strict (gardien, commit, journal, verrou, autorisation, agent, fiche, orchestration, `--amend`) : 1 ligne, **ERR-087** (« gardien, commit ») : commit emportant des fichiers hors ticket, `Cause` ; lot « AG » ; corrigé ; CHG-302. - Mot-clé « index » (au sens index de tableau, pas l'index de doc) : ERR-059, ERR-060, ERR-079, ERR-083, ERR-086 (5 lignes, faux positifs de sens : bornes de tableau). - Total avec au moins un mot-clé au sens large : 6 / 45. Recoupement par la commande de la fiche (méthode A, `git log -S`) contre la méthode B, pour les 149 entrées dont le commit tombe du 07 au 11 octobre (`data\eval_t3_sortie.txt` l. 8-10) : CHG accord 103 / 103 ; ERR accord 45 / 46. Désaccord ERR-043 : méthode B `7a0b3f3` (2026-10-08 01:40), méthode A `ebae924` (même minute, un commit antérieur cite l'identifiant). ERR-043 est hors période dans les deux cas : sans effet sur les comptes. ## 3. Écarts au compte attendu de la fiche Aucun compte chiffré attendu n'est donné par la fiche ; les critères d'acceptation sont tenus (CSV = totaux : 79 = 79, 45 = 45 ; plages sans trou ; commandes ci-dessus rejouables). Écarts de méthode : - a. Lot : la fiche demande « 1er mot du résumé ou identifiant de lot cité » ; j'ai repris la colonne « Lot » du journal (et « Lot cible » du registre), qui est le champ prévu. Pour le registre, cette colonne contient du texte libre (voir tableau ERR). - b. Format du journal hétérogène : 251 lignes ont 6 cellules (la colonne « Avant → après » est absente), 70 en ont 7, 1 en a 10 (CHG-316 : des `|` dans la colonne Fichiers, « Document | Statut | Public | Contenu »). Pour les 6 cellules, « Raison » reste l'indice 4 (vérifié sur CHG-250, l. 1207). Pour CHG-316, la colonne objet du CSV est fausse : elle vaut « Statut ». Objet réel d'après la l. 1144 : « index `Docs/README.md` réécrit (82 → 114 lignes), plages CHG-001 à CHG-316 ». Le CSV n'a pas été corrigé à la main (ligne 70 de `data\chg.csv`) ; le reste des objets a été contrôlé sur CHG-267, CHG-323 et CHG-245 (`Grep` § 1). - c. Script v1 → v2 : la première exécution comptait 78 entrées sur 79 dans les buckets horaires (bucket 05:00 du 11 manquant, entrée CHG-323 à 05:27). Corrigé par l'élargissement de la plage des buckets à 73 ; la logique de sous-période n'a pas changé. Les deux CSV ont été réécrits par la v2 (comptes identiques : 79 et 45). Les deux sorties v1 ne sont pas conservées. - d. Les ERR n'ont pas de colonne date : leur date est celle du commit qui a introduit la ligne (même règle que la fiche appliquée au registre). - e. Les dates du journal ne sont pas toujours le jour du commit : 81 entrées diffèrent (ex. CHG-114 à CHG-158 datées 04-05 octobre, introduites le 06 à 21:10 ; CHG-237 à CHG-240 datées 07, introduites le 08 à 01:40 ; CHG-245 daté 07, introduit le 08 à 08:12). Conséquence chiffrée : compté par date du journal, on a 82 entrées ; compté par heure de commit, 79 (différence : CHG-241 à 244 datés du 08 mais introduits à 01:40, avant P0 ; CHG-245 daté du 07 mais introduit à 08:12, dans P0). Les sous-périodes par date ne sont pas calculées. ## 4. Établi / estimé / incertain - Établi : les comptes, plages, débits et 103/103 + 45/46 ci-dessus (rejouables avec les commandes du § 1) ; 0 CHG ou ERR sans commit d'introduction ; 0 doublon ; 19 CHG sur CHG-249 à 267. - Estimé : l'heure du commit d'introduction approche l'heure de rédaction de l'entrée ; la règle de la fiche la retient, mais les rattrapages (CHG-114 à 158 introduits le 06 à 21:10 pour des dates du 04-05) montrent qu'elle peut décaler une entrée. Sensibilité : 79 (règle commit) contre 82 (règle date). - Estimé : `%ad` est la date d'auteur ; un commit amendé garde sa date d'auteur. Non vérifié sur les commits `--amend` (aucun n'a été relevé dans la période). - Incertain : ERR-059 est introduit à 2026-10-10 10:45:00, borne de P2 : compté en P2 (intervalle fermé à gauche). Aucun autre cas limite relevé à la minute près. - Incertain : CHG-316, objet du CSV faux (§ 3, b). Non corrigé ici ; à corriger dans une fiche de correction du journal si le lot le demande. - Non fait : pas de contrôle du contenu des entrées (hors fiche) ; pas de comparaison chiffrée avec le doc 31 au-delà du compte CHG-249 à 267 (19) ; pas de lecture des commits eux-mêmes. Tours : 16 / 40 ## Constats - Fichiers écrits (chemins absolus) : `D:\Game\LifePlay-master 5.8\Docs\Migration\etat\EVAL\EVAL-T3-INV.md` ; `...\etat\EVAL\data\chg.csv` (79 lignes de données) ; `...\etat\EVAL\data\err.csv` (45) ; `...\etat\EVAL\data\eval_t3_sortie.txt` ; `...\etat\EVAL\data\eval_t3_erreurs.txt` (vide) ; `...\etat\EVAL\scripts\eval_journal.py`. Aucun autre fichier écrit ; `EVAL-TACHES.md` non modifié (registre de l'orchestrateur). - Fichiers à commiter : A `Docs/Migration/etat/EVAL/EVAL-T3-INV.md` ; A `Docs/Migration/etat/EVAL/data/chg.csv` ; A `Docs/Migration/etat/EVAL/data/err.csv` (dépôt du jeu, branche ue5.8, commit par le gardien seulement si le lot le demande). Ne pas commiter : `scripts/eval_journal.py` et les `.txt` (non suivis par `.gitignore`). - Constat pour le lot : le journal mélange deux largeurs de tableau (6 et 7 cellules) et une ligne a des `|` dans une cellule (CHG-316, l. 1144). Ce n'est pas une erreur de comptage mais elle fausse un export automatique. - Suite : orchestrateur doit relire les comptes (le recomptage par Grep est concordant : 322, 88, 79, 45, 82, 19) et décider si la règle d'attribution (heure de commit ou date du journal) doit être figée pour EVAL-T4 ; le gardien doit décider du commit des trois fichiers ; état : livrable terminé, aucune étape ouverte.