LifePlay-Revival/Docs/Migration/etat/AG/PIPE1/PIPE1-INV-01-SUBSTITUTION.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

54 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Fiche PIPE1-INV-01 — Niveau N2 — Modèle prévu opus | utilisé claude-opus-5-5 — Session Big Boss — Skills lp-lot, sk-orchestrate
# PIPE1-INV-01 : actions où un script remplace l'agent (2026-10-15)
Demande de l'utilisateur : « Si la validation est purement mécanique, un script suffit ; l'agent compare le résultat et
dit vrai ou faux. Il faut recenser les actions où l'agent peut être substitué. » Source : les actions réellement
exécutées le 2026-10-15 (UES1, OPT0-A2/A2b/A3/G0, KALM1, CRIM1, VERIF1, TSC1, PIPE1). Coûts mesurés : agent neuf 55 à
140 k ; VAL PIPE1-VAL-02 ≈ 385 k.
Règle proposée : **une action mécanique se fait par script ; un agent ne la refait jamais à la main.** Le script rend
une ligne `<OUTIL> : <verdict> (<compte>)` et un code 0 conforme / 1 écart / 2 erreur ; le modèle ne lit que cette ligne.
Un agent reste là où il faut juger un texte, concevoir, ou décider quoi faire d'un écart.
## 1. Recensement
Colonne « Substitution » : **S** script seul ; **S+J** script, puis jugement court d'un modèle sur la ligne de verdict ;
**J** jugement, l'agent reste. Colonne « Outil » : existant (✔) ou à écrire (✚).
| # | Action (qui la fait aujourd'hui) | Fréquence le 2026-10-15 | Substitution | Outil |
|---|---|---|---|---|
| A1 | Contrôles avant BUILD-GO : `UeState`, MD5 des assets de référence, `git status` hors `Docs` (Big Boss, à la main) | 9 | **S** | ✔ `CopieEtat.ps1` (non employé ce jour) |
| A2 | Contrôles de BUILD-FIN 1 à 4 : processus, MD5, dépôt, dossiers parasites (session, puis rejoués par Big Boss) | 9 × 2 | **S** | ✔ `CopieEtat.ps1` |
| A3 | PubCheck d'un livrable ou d'un ticket (tous) | ≈ 25 | **S** | ✔ `PubCheck.ps1` |
| A4 | Fins de ligne, BOM, MD5 contre l'instantané (VAL, Big Boss) | ≈ 20 | **S** | ✔ `FileCheck.ps1`, `NormaliserLF.py` |
| A5 | Diff contre l'instantané = hunks annoncés ; longueur R9 des skills (VAL) | 6 | **S** | ✚ dans `VerifLivrable.ps1` |
| A6 | Recompte des comptes d'un livrable (Big Boss, VAL) : 110 Blueprints, 23 éléments, comptes du journal G0 | 6 | **S** si le livrable cite ses commandes (`compte:`) ; **S+J** sinon | ✚ `VerifLivrable.ps1` |
| A7 | Contrat de retour des lots MCP (n_lu = n_attendu, erreurs vides) | 11 lots | **S** | ✔ `Saved\OPT0-A2b\controle_lots.py` (à verser dans `Tools\`) |
| A8 | Batterie d'une garde, preuve par l'échec (Big Boss) | 6 versions | **S** pour jouer ; **J** pour écrire les cas | ✔ `Saved\OPT0-A2\test_garde_v2.py` (à verser dans `Tools\hooks\`) |
| A9 | Gardien : verrou, HEAD, branche, identité, MD5 du ticket, `PubCheck -Index`, index privé, commit par chemins, statut et ligne `REPO-JOURNAL`, pin du doc 21 (agent lp-gardien) | 6 passages, 55 à 82 k chacun | **S**, avec **J** seulement sur un refus | ✚ `Vague.ps1` ; ✔ `Verrou.ps1`, `GitEtat.ps1` |
| A10 | Contrôle V5 des fichiers partagés : chaque ligne ajoutée appartient à un CHG / ERR listé | (nouveau) | **S** | ✚ dans `Vague.ps1` |
| A11 | Réservation d'un numéro CHG / ERR (Big Boss) | 2 | **S** | ✔ `Numero.ps1` |
| A12 | Plage de l'index README, statut `utilisé` dans NUMEROS, colonne Versé du brouillon (lp-writer) | 2 DOC | **S** | ✚ `VerserCHG.ps1` (ou option de `Numero.ps1`) |
| A13 | Ligne datée au `BOSS-JOURNAL.md` en LF, jetons de BOSS-ETAT (Big Boss) | ≈ 40 | **S** | ✚ `BossJournal.ps1` (heure, LF, contrôle CR) |
| A14 | Mesure M0 à M4 : lancer, résumer (lp-perf) | — | **S** + **J** sur le verdict | ✔ `LogStats.ps1`, `SummarizeDebugCsv.ps1` ; ✚ enveloppes M1, M4 (U4) |
| A15 | Vérifier qu'une approbation citée est bien de l'utilisateur (Big Boss) | 3 | **S+J** : recherche dans la transcription, puis lecture | ✔ outils de session de l'application |
| A16 | Rédiger une SPEC, une grille, un diagnostic, une entrée CHG | — | **J** | — |
| A17 | Juger qu'un texte de skill n'en contredit pas un autre ; qu'un résumé dit vrai | — | **J** (après A5 et A6 par script) | — |
| A18 | Décider d'un écart, arbitrer, choisir un palier | — | **J** (Big Boss ou utilisateur) | — |
## 2. Ce que la substitution aurait économisé le 2026-10-15 (estimé)
- A9 : 6 passages du gardien par agent (≈ 400 k) → script, agent seulement sur refus (0 refus ce jour).
- A1, A2, A6 par Big Boss : environ 30 contrôles à la main → `CopieEtat.ps1` et `VerifLivrable.ps1`.
- A5, A6 dans les VAL : la VAL PIPE1-VAL-02 (≈ 385 k) aurait été une ligne de script plus un jugement court sur trois
points de contenu (E-1, E-11, contradiction « alpha »).
## 3. Outils à écrire, par ordre de gain
1. **`Tools\Vague.ps1`** (A9, A10) : exécute la vague de W7 ; s'arrête au premier refus avec la ligne fautive ; l'agent
lp-gardien n'intervient que pour ce refus. Classe VAL O.
2. **`Tools\VerifLivrable.ps1`** (A3 à A6) : comptes `compte:` rejoués (liste blanche en lecture seule : `grep`, `wc`,
`find`, `git show/ls-files/diff --stat`, `md5sum`, `python -I` sur un script du lot), PubCheck, LF, diff contre
l'instantané, R9. Classe VAL O. C'est l'outil de W4 (option b de VERIF1).
3. **`Tools\BossJournal.ps1`** (A13) et **`VerserCHG.ps1`** (A12) : écritures datées et contrôlées des fichiers partagés.
4. Verser dans `Tools\` les deux scripts déjà éprouvés : `controle_lots.py` (A7) et `test_garde_v2.py` (A8).
5. Enveloppes M1 et M4 (A14, U4 du modèle de mesure).
Et dès maintenant, sans rien écrire : **employer `CopieEtat.ps1`** pour A1 et A2.