8.6 KiB
Fiche AG-T8-VAL — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 (Sonnet 5.5) — Agent lp-validator — Skills sk-protocol, sk-recount, debug-verification, lp-validate
AG-T8-VAL : règle d'ERR-087 ajoutée à lp-repo, deux arbres de l'addon (2026-10-10)
Verdict : PASS (preuve fraîche, tout rejoué par lecture et commande ; rien compilé, rien à compiler). Une remarque (§ 6) : écart avec sk-repo § 9, à signaler, hors lot.
1. Fiches amont relues
- Fiche AG-T8-VAL (cette fiche) ; registre
etat/AG/AG-TACHES.md(lignes AG-T7, AG-ERR, AG-T8) ; ticketsetat/REPO/tickets/AG-R7.mdetAG-R8.md(statut « demandé », preuve = ce livrable, PASS exigé). - Source de l'incident :
etat/DOC/DOCMV/DOCMV-INT.md§ 3 (incident R3,d396816puiscc649fd). - Règle validée :
Docs/Registre_Erreurs.md:94(ERR-087, colonne Signature, partie « Règle »). - IMPL amont : aucun livrable
AG-T8-IMPL.md(le dossieretat/AG/ne le contient pas, relevé parls) ; la ligne AG-T8 du registre le attend, statut « à faire ». La modification existe pourtant dans les deux arbres (non commitée). Constat, pas un écart de contenu : le validateur n'a donc aucun « point à confirmer » d'IMPL à reprendre ; la trace de l'auteur de la modification manque (§ 6, case 2). - Instantané d'avant :
D:\Game\LifePlay_Backup_5.5\AG-ERR087(manifest.csv:lp-repo\SKILL.md, 7494 octets, MD5C4D4A48A…).
2. Points à confirmer des IMPL
sans objet : aucune IMPL livrée pour AG-T8 (voir § 1) ; aucun point à confirmer à reprendre. Le seul point en suspens relevé par la VAL est la contradiction avec sk-repo § 9 (§ 6, case 1), reportée à l'utilisateur.
3. Critères rejoués (commande → résultat)
| Critère | Attendu | Recompté | Commande / lecture | Verdict |
|---|---|---|---|---|
| Arbre 5.8 : branche, HEAD | ue5.8, 247af5a | ue5.8, 247af5a | git -C D:/Game/LifePlay-Sandbox-5.8 branch --show-current ; rev-parse --short HEAD |
PASS |
| Arbre principal : branche, HEAD | lot/DC3-atelier, 8b884a6 | lot/DC3-atelier, 8b884a6 | idem sur D:/Game/LifePlay-Sandbox |
PASS |
status --porcelain -uall (5.8) |
la seule ligne M Tools/claude/skills/lp-repo/SKILL.md |
exactement cette ligne, 1 ligne | git -C <arbre> status --porcelain -uall |
PASS |
status --porcelain -uall (principal) |
idem | exactement cette ligne, 1 ligne (les 3 fichiers M de DOCMV-R3 n'y sont plus : AG-R6) |
idem | PASS |
diff : volume |
+3 lignes, 0 suppression | 1 file changed, 3 insertions(+) dans les deux arbres ; @@ -91,3 +91,6 @@ |
git -C <arbre> diff (lu en entier) ; diff --stat |
PASS |
| MD5 du fichier, deux arbres | égaux et 38d90fe6bd81d459aa6b758d540758b1 |
5.8 38d90fe6…758b1 ; principal 38d90fe6…758b1 (aussi par FileCheck, majuscules) |
md5sum ; FileCheck.ps1 |
PASS |
| Texte des deux arbres identique | à l'identique | les deux diffs sont identiques caractère pour caractère (même index 6ffd9a6..db8abfd) |
git diff des deux arbres comparés |
PASS |
diff contre l'instantané |
seules les 3 lignes ajoutées | 93a94,96 : 3 lignes ajoutées (>), rien d'autre ; MD5 de l'instantané c4d4a48ab721e117c4e5ba078c22d114 = manifeste = ticket |
diff <AG-ERR087>\...\SKILL.md <5.8>\...\SKILL.md ; md5sum |
PASS |
| Position | fin du § 10 | lignes 94-96, après la dernière puce du § 10 (« Suppression de fichier interdite… », ligne 93) | lecture du diff (contexte) | PASS |
| Fins de ligne, BOM | LF, sans BOM | LF 96, CRLF 0, CR 0, BOM -, alertes=0, code 0 (deux arbres) ; instantané LF 93 : même style |
pwsh -Command "& '…\Tools\FileCheck.ps1' <fichier>" ×3 |
PASS |
| Lignes ajoutées ≤ 120 caractères | ≤ 120 | 116, 115, 28 (awk length ; en octets, donc majorant des caractères) |
awk 'NR>=94{print length($0)}' |
PASS |
| Fichier ≤ 120 lignes | ≤ 120 | 96 lignes (93 avant) | wc -l ; git show HEAD:… | wc -l |
PASS |
| Sens du texte = règle validée d'ERR-087 | nouveau commit ou revert ; --amend seulement avec accord de l'utilisateur ; git status contrôlé contre la liste du ticket ; sans ajout ni retrait |
voir ci-dessous | lecture comparée de Registre_Erreurs.md:94 et de SKILL.md:94-96 |
PASS |
Pas d'autre mention de --amend incohérente dans lp-repo |
une seule | une seule occurrence (SKILL.md:95) |
Grep amend |
PASS |
Comparaison du sens (établi) :
- Registre (« Règle ») : « un commit fautif non poussé se corrige par un nouveau commit ou un
git revert,--amendseulement avec l'accord de l'utilisateur ; avant tout commit,git statusest contrôlé contre la liste du ticket ». - Ajout (
SKILL.md:94-96) : « Commit fautif non poussé (ERR-087, DOCMV-R3 : 3 fichiers hors ticket) : il se corrige par un nouveau commit ou ungit revert;--amendseulement avec l'accord de l'utilisateur. Avant tout commit,git statusest contrôlé contre la liste du ticket. » - Les trois éléments de la règle sont présents, dans le même sens. Seuls éléments en plus : le renvoi d'identification « (ERR-087, DOCMV-R3 : 3 fichiers hors ticket) » ; « 3 fichiers hors ticket » est conforme à la partie « Effet » d'ERR-087 et à
DOCMV-INT.md§ 3 (3 fichiers listés). Pas de portée ajoutée ni retirée (notamment pas de règle sur un commit déjà poussé). Le renvoi est jugé une référence, pas un ajout de règle. - Lecture : la puce est au format des puces voisines du § 10 (tiret, cause entre parenthèses, retrait de 2 espaces sur les suites).
4. Diff lu en entier
- Fichier :
Tools/claude/skills/lp-repo/SKILL.md, dans les deux arbres ; un seul fichier modifié par arbre (statusci-dessus), pas d'index touché (statutM, colonne index vide), aucun fichier non suivi (-uall). - Compte : 3 lignes ajoutées, 0 retirée, par arbre ; les deux diffs ont le même hunk
@@ -91,3 +91,6 @@. - Les 10 lignes de plus de 120 caractères du fichier (lignes 3, 15, 17, 18, 42, 45, 50, 51, 57, 93) existaient déjà dans
HEAD(10 avant, 10 après) : hors lot. - Fichier modifié par outil dédié ou par script : non établi (aucun journal de l'auteur, IMPL absente) ; le contenu final est LF, sans mixte, cohérent avec un Edit/Write.
- Seule écriture du validateur : ce livrable. Aucune commande git qui écrit.
5. Verdict
PASS. Critères de la fiche tous remplis (§ 3). Prêt pour le ticket AG-R7 (arbre 5.8, HEAD attendu 247af5a, vérifié) puis AG-R8 (arbre principal, HEAD attendu 8b884a6, vérifié). Les HEAD et l'état doivent être relus par le gardien à l'entrée (verrou) : preuve valable à l'instant de cette VAL.
Preuve : établi (relu sur les fichiers et commandes ci-dessus). Estimé : néant. Incertain : auteur et méthode d'écriture de la modification (pas d'IMPL).
6. Points à confirmer par l'utilisateur
- 1. Contradiction avec
sk-repo§ 9 (%USERPROFILE%\.claude\skills\sk-repo\SKILL.md:85) : ce skill interdit--amend« sauf commit du ticket en cours ». La nouvelle règle delp-repon'autorise--amendqu'avec l'accord de l'utilisateur, sans exception pour le ticket en cours. Les deux textes se contredisent pour le cas « amend du commit du ticket en cours sans accord » :sk-repole permet,lp-repol'exige avec accord.DOCMV-INT.md§ 3 s'appuie justement sur cette exception (« permis parsk-repo§ 9 ») pour l'incident R3. Le skillsk-repon'est pas dans ce lot : écart à signaler, pas un FAIL. Décision à prendre : alignersk-repo§ 9 (hors lot, niveau utilisateur), ou préciser que la règle plus stricte delp-repoprime pour LifePlay. - 2. Pas d'IMPL AG-T8 : la ligne AG-T8 de
AG-TACHES.mdest « à faire » etAG-T8-IMPL.mdn'existe pas, alors que les deux arbres portent la modification. Confirmer qui l'a écrite et que le registre sera mis à jour (hors périmètre de la VAL). - 3. Suite du lot (hors VAL) : les tickets AG-R7 et AG-R8 attendent ce PASS ; CHG-302 et le passage d'ERR-087 à « corrigé » restent à faire par le DOC (AG-T8) après les commits.
Tours : 7 / 20
Constats
- Avant cette VAL, un premier appel de
FileCheck.ps1a échoué (« introuvable ») à cause d'une variable shell mal développée dans ma propre commande ($t), pas à cause du fichier ; rejoué avec des chemins littéraux (code 0, alertes=0). Aucune incidence sur le verdict. - Le registre
AG-TACHES.mdetRegistre_Erreurs.mdsont modifiés dans l'arbre du jeu par d'autres rôles (état git au début de session) : non touchés ici.
Fichiers à commiter
- A
Docs/Migration/etat/AG/AG-T8-VAL.md(dépôt du jeu,D:\Game\LifePlay-master 5.8, branche ue5.8 ; trace R-REPO1, commitée avec le ticket jeu AG-R9). Aucun fichier de l'addon modifié par la VAL.