LifePlay-Revival/Docs/Migration/etat/EVAL2/AMEL1/AMEL1-V1e-VAL.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

5.8 KiB

Fiche AMEL1-V1e — Niveau N3 — Modèle prévu Opus | utilisé claude-opus-5-5 — Agent lp-validator — Skills sk-protocol, sk-recount, debug-verification, lp-validate

AMEL1-V1e-VAL : relecture du crochet v2, de sa batterie et de son lanceur (2026-10-14)

Résultat : partiel, arrêté. V1 et V2 sont établis. V3 (relecture adverse) a été interrompue par un refus de la plateforme (classifieur de sécurité) ; V4 et V5 n'ont pas été rejoués. Aucun fichier R2\V1e\cas-adverses-V1e.jsonl n'a été écrit.

1. Fiches amont relues

  • R2\AMEL1-R2-IMPL.md (en entier) ; AMEL1-INDICATEURS.md (lignes I2a / I2b, l. 56-57, 86, 131).
  • R2\ecriture-gardien-v2.py lu en entier (2 753 lignes) ; R2\test_crochet.py lu en entier (123 lignes).
  • R2\cas-v2.jsonl : lignes 1-10, 14-19, 75, 135, 139, 143, 144 lues.
  • Gabarit IMPL : sections 1 à 6 présentes, dans l'ordre ; Tours présent ; pas d'écart de forme.

2. Points à confirmer de l'IMPL (§ 5)

  • MD5 du crochet actif f00d973927cd292723a82be859d5c5bd : PASS.
  • MD5 du v2 8a25c309…cf64 et de cas-v2.jsonl 5218bfde…d5c5bd, ainsi que de test_crochet.py et construire_cas.py : PASS. Les 0 CR n'ont pas été recomptés : reporté (V5).
  • v2 : conformes : 402 / 402, code 0 : PASS.
  • Crochet actuel : 242 / 402, I2a 36 / 76 = 47,4 %, I2b 191 / 236 = 80,9 %, code 1 : PASS.
  • construire_cas.py régénère 402 cas : reporté. Non rejoué, parce que le script lit des transcriptions et réécrit cas-v2.jsonl, hors du périmètre d'écriture de la fiche.
  • Reclassement de T36 : PASS. C'est un accord (voir 3).
  • Liste justifiée (b) : PASS sur les 10 cas relus (voir 3).
  • Témoins A21, A25, A29, A30 : PASS. C'est un accord (voir 3).
  • E5 (temporaire limité à claude\) et E6 (retrait de SCRIPTS_PROJET) : décision de l'utilisateur, voir 6.
  • Refus sur charge illisible : reporté (V4 non rejoué).
  • Relecture adverse : BLOCKED-plateforme, interrompue (voir 5).
  • Essai réel après installation : reporté. Il se fera après installation, par geste de l'utilisateur.
  • PubCheck : reporté (V5).

3. Critères rejoués

V1. Commandes lancées depuis R2\.

Commande python -I -X utf8 test_crochet.py ecriture-gardien-v2.py --resume :

  a : refus a tort de P3     total  36 | refus   1 | passe  35 | erreur  0 | conformes  36 / 36
  b : refus utiles de P3     total  40 | refus  21 | passe  19 | erreur  0 | conformes  40 / 40
  c : cas adverses           total 236 | refus 236 | passe   0 | erreur  0 | conformes 236 / 236
  t : temoins                total  90 | refus   3 | passe  87 | erreur  0 | conformes  90 / 90
I2a (definition P3 : refus du groupe a / refus des groupes a+b) : 1 / 22 = 4.5 %
I2b (adverses refuses / adverses) : 236 / 236 = 100.0 %
duree par cas : moyenne 80 ms, max 168 ms
conformes : 402 / 402
code=0

Même commande sur "$USERPROFILE/.claude/hooks/ecriture-gardien.py" :

I2a (definition P3 : refus du groupe a / refus des groupes a+b) : 36 / 76 = 47.4 %
I2b (adverses refuses / adverses) : 191 / 236 = 80.9 %
duree par cas : moyenne 48 ms, max 84 ms
conformes : 242 / 402
code=1

Les deux tableaux sont identiques à ceux de l'IMPL (§ C1). Seule la durée diffère : 80 ms contre 81 ms.

V2. Décisions de l'orchestrateur :

  • T36 (ligne 75) : accord, c'est bien un refus utile. La commande complète fait trois écritures hors des chemins libres : New-Item -ItemType Directory -Path $pdbdir (D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping_PDB), Copy-Item … -Destination $pdbC et Set-Content -LiteralPath "$pdbdir\BUILD-ID.txt".
  • Liste (b) : 10 cas relus sur 19 (U03, U04, U06, U07, U08, U11, U12, U13, U14). Chaque cible écrite est sous %TEMP%\claude\…\scratchpad (affectation littérale de S, T ou chemin en clair). U08 n'a qu'un > /dev/null, hors du code pwsh.
    • Réserve sur U04 et U12 : un script est écrit dans le scratchpad puis lancé. C'est la limite déclarée par l'IMPL (§ 4) : le contenu d'un script lancé par son chemin n'est pas lu.
  • A21 → refus : juste. En bash, \ hors guillemets est retiré ; la cible devient DocsMigrationetatXa.md dans le dossier courant.
  • A25 → passe : juste. En PowerShell, \ est un séparateur ; la cible relative est sous Docs\Migration\etat\.
  • A29 → refus : juste. Après la levée de l'exemption par nom de script, la sortie va hors des zones libres.
  • A30 → refus : juste selon la règle E5. /tmp de Git Bash est %TEMP%, hors de claude\.

Constat de lecture (statique), qui n'est pas un contournement construit : zone_projet (l. 237-241) accepte tout chemin qui contient /saved/<nom>/, sous n'importe quelle racine. C'est la limite déjà déclarée par l'IMPL (§ 4) ; elle mérite une décision de l'utilisateur.

4. Diff lu en entier

Fichiers neufs, non suivis, sans instantané de référence. Le v2 et le lanceur ont été lus en entier ; la batterie, en partie (voir 1).

5. Verdict

BLOCKED-plateforme pour la fiche dans son ensemble. V1 : PASS. V2 : PASS (accords ci-dessus).

  • V3 : non rendu. La relecture adverse a été interrompue par un refus du classifieur de sécurité de la plateforme ; je ne l'ai pas reprise sous une autre forme.
  • V4 et V5 : non rejoués. Seule la durée moyenne par cas est mesurée (80 ms).

6. Points à confirmer par l'utilisateur

  • Relecture adverse V3 : qui la mène, et par quel moyen (fiche dédiée, revue humaine).
  • E5 : le temporaire libre se limite à %TEMP%\claude\.
  • E6 : retrait de SCRIPTS_PROJET.
  • Zone Saved/<n'importe quel dossier>/, sous toute racine (Saved/Config, sauvegardes %LOCALAPPDATA%\LifePlay\Saved) : la garder ou la restreindre.

Fichiers à commiter : A Docs/Migration/etat/EVAL2/AMEL1/AMEL1-V1e-VAL.md (dépôt jeu, branche ue5.8).

Tours : 14 / 60