LifePlay-Revival/Docs/Migration/etat/EVAL2/AMEL1/AMEL1-INDICATEURS.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

175 lines
20 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 AMEL1-T0 — Niveau N2 — Modèle prévu Opus 5.5 | utilisé claude-opus-5-5 — Agent orchestrateur (session EVAL) — Skills aucun préchargé
# AMEL1-INDICATEURS : un indicateur mesurable par recommandation R1 à R14, mesure « avant » (P3) et mode opératoire « après » (2026-10-14)
**Demande de l'utilisateur** (2026-10-14, session EVAL) : « implémentons les recommandations pour chaque recommandation je
veux un indicateur mesurable. avec une mesure maintenant et après basé sur un mode opératoire net et complet ».
**Recommandations** : `etat\EVAL2\EVAL2-RAPPORT.md` § 4. **Valeurs « avant »** : `etat\EVAL2\EVAL2-STATS.md` et les relevés T1a à
T6 (période P3, 2026-10-11 05:30 → 2026-10-14 18:25:41).
---
## 1. Mode opératoire de la mesure (identique avant et après)
### 1.1 Périodes
| Période | Bornes | Rôle |
|---|---|---|
| **AVANT = P3** | 2026-10-11 05:30:00 → 2026-10-14 18:25:41 (UTC+2), coupure P3a/P3b 2026-10-13 12:07:16 | valeur de référence, déjà relevée (§ 2, colonne « Avant ») |
| **APRÈS = P4** | début : date du dernier commit d'AMEL1 (toutes les recommandations « en place ») ; fin : la première des deux bornes **72 h de calendrier** ou **30 h actives cumulées des sessions principales** ; au moins **5 builds** et **1 essai commun** dans la fenêtre, sinon la fenêtre est prolongée jusqu'à les atteindre | mesure de l'effet |
La période P4 ne commence pas avant que toutes les recommandations soient en place, sinon l'effet est mélangé. Une
recommandation non en place à P4 est mesurée quand même et notée « non en place » (sa valeur sert de témoin).
### 1.2 Commande unique
```
python -I -X utf8 Tools\Indicateurs.py --debut "AAAA-MM-JJ HH:MM:SS" --fin "AAAA-MM-JJ HH:MM:SS" --sortie Docs\Migration\etat\EVAL2\AMEL1\AMEL1-MESURE-<periode>.md
```
- Le script (`Tools\Indicateurs.py`, fiche AMEL1-M1) lance les relevés T1a à T6 d'EVAL2 sur la fenêtre donnée, avec les
mêmes définitions, et écrit **une ligne par indicateur** : valeur, numérateur, dénominateur, source, et la commande
de contrôle à rejouer à la main.
- **Contrôle de non-régression du script** : `--debut "2026-10-11 05:30:00" --fin "2026-10-14 18:25:41"` doit redonner
les valeurs « Avant » du § 2 (tolérance : ± 1 sur les comptes, ± 0,5 point sur les pourcentages ; écart plus grand =
script faux, la mesure P4 n'est pas faite).
- Session EVAL et ses sous-agents exclus, comme en EVAL et EVAL2. Métadonnées des sessions lues avec le chemin MSIX
(`%USERPROFILE%\AppData\Local\Packages\Claude_*\LocalCache\Roaming\Claude\claude-code-sessions`).
**`Tools/` n'est plus suivi par git** (décision de l'utilisateur du 2026-10-14 : « on gitignore Tools. c'est un dossier
pour Agent IA », CHG-357). `Tools\Indicateurs.py` et `Tools\EssaiJournal.*` vivent donc seulement sur le poste. Avant la
mesure P4, vérifier leur MD5 contre la référence (`Indicateurs.py` `42feceb7…` ; écart = rejouer d'abord le contrôle
sur P3 du § 1.2) ; copie des versions finales, hors git, dans `D:\Game\LifePlay_Backup_5.5\AMEL1-OUTILS\` (2026-10-14 :
`Indicateurs.py` `42feceb7…`, `EssaiJournal.ps1` `39d511f2…`, `EssaiJournal.regles.json` `a34e684b…`, `CopieEtat.ps1`
`a5298113…`, `FicheStats.py` `25938733…`).
**Transcriptions** (décision de l'utilisateur du 2026-10-14 : « Copier avant suppression ») : 4 sessions supprimées le
2026-10-14 ont emporté leurs transcriptions (P3 n'est plus rejouable à l'identique ; la référence « Avant » reste
`AMEL1-MESURE-P3.md`, figée). Copie complète faite le 2026-10-14 : `D:\Game\LifePlay_Backup_5.5\TRANSCRIPTIONS\complet\` (dossier d'abord nommé `2026-10-14\`, renommé pour servir de base à
`-Tout` ; premier `-Tout` incrémental : 8 copies, manifeste écrit)
(2 077 fichiers, 837 Mo). Avant toute suppression de session : `Tools\SauverTranscriptions.ps1 -Session <id>` ; avant la
mesure P4 : `-Tout`. **I15** : valeur « avant » retenue = **10,9** pour 100 appels shell (mesurée par l'outil sur les données
P3 restantes ; décision de l'utilisateur « 10,9 mesuré par l'outil ») ; cible ≤ 5,5.
### 1.3 Règles de lecture
- **Atteint** : la valeur P4 franchit la cible. **Amélioré** : elle va dans le bon sens sans franchir la cible.
**Sans effet** : écart inférieur à la tolérance. **Dégradé** : mauvais sens.
- Les valeurs P4 sont rapportées à la même unité que P3 (par heure active, par 100 appels, par commit) : P4 n'aura pas la
même durée ni le même type de travail. Le type de travail de P4 est décrit en tête de la mesure (lots, builds, essais).
- Biais déclaré : la session EVAL conçoit, met en œuvre et mesure ; la VAL de la mesure P4 est confiée à un
`lp-validator` indépendant (fiche AMEL1-V2).
---
## 2. Indicateurs
| Rec. | Indicateur | Formule exacte | Source (relevé, script) | **Avant (P3)** | Cible P4 | Tolérance |
|---|---|---|---|---|---|---|
| **R1** Recentrer Big Boss | **I1a** part de Big Boss dans tous les jetons lus | jetons lus des transcriptions Big Boss (`ebc15012`, `92a3927f` et suivantes, identifiées par `local_7f1c9fb1` dans les métadonnées) / jetons lus de toutes les principales et de tous les sous-agents | T1a `eval2_sessions.py`, T1b `eval2_subagents.py` | **20,4 %** (605,6 M / 2 970 M) | ≤ 15 % (clause D-P7.8) | ± 0,5 pt |
| | **I1b** part de Big Boss dans les heures actives | heures actives Big Boss / somme des heures actives des sessions principales | T1a | **36,1 %** (24,66 / 68,27 h) | ≤ 20 % | ± 1 pt |
| | **I1c** contexte médian des principales (E1, rotation) | médiane du contexte par tour, toutes principales | T1a | **295 k** | < 200 k (doc 33 § 7) | ± 5 k |
| **R2** Crochet v2 | **I2a** taux de refus à tort | refus opérationnels du crochet classés « à tort » (règle v2, `eval2_refus.py`) / refus opérationnels | T6 `eval2_commandes.py`, `eval2_refus.py` | **47 %** (36 / 76) | ≤ 10 % | ± 2 pts |
| | **I2b** cas adverses bloqués (sécurité conservée) | cas adverses de la batterie P7-H2 refusés par le crochet en place / cas adverses de la batterie | `etat\AG\P7\P7-H2*` (batterie `cas.jsonl`), rejouée par le script de test de P7-H2 | à mesurer en AMEL1-M1 sur le crochet actuel | 100 % | 0 |
| **R3** Contrôles en jeu automatiques | **I3** part des KO trouvés avant l'utilisateur | KO (cas KO, KO partiels et défauts hors fiche KO) dont le découvreur est « agent » ou « script » / tous les KO des essais communs de la période | T4 `eval2_commun.py` (`data\commun.csv`, colonne découvreur) | **12,5 %** (6 / 48 ; 9 / 48 = 18,8 % avec les mixtes) | ≥ 30 % | ± 2 pts |
| **R4** `lp-mcp-bp` en Sonnet (essai ORGA2) | **I4a** jetons lus par passage `lp-mcp-bp` | jetons lus des sous-agents `lp-mcp-bp*` / nombre de passages | T1b | **3,90 M** (144,2 M / 37) | ≤ 2,3 M (−40 %) | ± 0,1 M |
| | **I4b** temps d'éditeur par correctif (garde-fou ORGA2 § 6) | somme des durées éditeur des passages `lp-mcp-bp*` (premier → dernier appel MCP) / passages | T1b (horodatages des appels MCP) | à mesurer en AMEL1-M1 | ≤ valeur avant + 10 % | ± 5 % |
| **R5** Journal au fil de l'eau | **I5a** part des ERR consignées en rattrapage | ERR de la période dont la ligne porte « JOURNAUX » ou dont l'écart date du fait → date d'inscription dépasse 24 h / ERR de la période | T3 `eval2_journal.py` | **100 %** (50 / 50) | ≤ 10 % | 0 |
| | **I5b** plus long intervalle sans écriture de journal pendant l'activité | plus grand écart entre deux écritures successives d'un CHG, d'un ERR ou d'un brouillon `*-JOURNAL-BROUILLON.md` (dates de commit et dates de modification), borné aux heures actives | T3 + dates des brouillons | **≈ 29 h** (CHG-343, 10-13 13:04 → `3af7324`, 10-14 18:22) | < 4 h | ± 0,5 h |
| **R6** PubCheck dès la fiche | **I6** refus de commit pour fuite (nom de compte, chemin machine) pour 100 commits | (refus PubCheck + refus du gardien pour nom de compte, lus dans `etat\REPO\REPO-JOURNAL.md`) × 100 / commits de la période | T2 `eval2_commits.py` (`data\tickets.csv`) | **12,2** (6 / 49) | 0 | 0 |
| **R7** Consignes de shell | **I7a** refus que les agents se causent eux-mêmes, pour 1 000 appels shell des sous-agents | refus du crochet sur `python -c`, heredoc Python, `tee` par un agent dont la fiche les interdit × 1 000 / appels Bash + PowerShell des sous-agents | T6 | numérateur **14** (T6) ; dénominateur à mesurer en AMEL1-M1 (appels shell des seuls sous-agents) ; borne basse 2,4 ‰ si rapporté aux 5 910 appels de toutes les sessions | ≤ 1 ‰ | ± 0,5 ‰ |
| | **I7b** erreurs de guillemets et d'échappement pour 1 000 appels shell | erreurs classées « guillemets / échappement » × 1 000 / appels Bash + PowerShell (tous) | T6 § 2.8 | **4,4 ‰** (26 / 5 910) | ≤ 2 ‰ | ± 0,5 ‰ |
| **R8** VAL « témoin en jeu » | **I8a** part des VAL PASS-STATIC de comportement qui nomment leur cas de fiche de tests | VAL PASS-STATIC dont le livrable cite un cas `COMMUN-n` / VAL PASS-STATIC d'un correctif de comportement | T5 `eval2_val.py` (`data\val.csv`) | à mesurer en AMEL1-M1 (estimé ≈ 0 %) | ≥ 90 % | ± 5 pts |
| | **I8b** PASS (ou PASS-STATIC) suivis d'un KO en jeu sur le même cas | compte | T5 × T4 | **4** (S-F5m, B2p-E, B2q-a, B2s) pour 70 PASS / PASS-STATIC = **5,7 %** | ≤ 2 % | ± 1 cas |
| **R9** Fiches `lp-cart` plus étroites | **I9** taux de hors budget `lp-cart` | passages `lp-cart` hors budget (tours ou pic, critère EVAL) / passages `lp-cart` | T1b | **79 %** (11 / 14) | ≤ 40 % | ± 5 pts |
| **R10** Outils de copie, contrôle d'instantané | **I10a** part des contrôles faits par les outils | appels `CopieEtat` + `GitEtat` / (ces appels + `git status` + calculs d'empreinte improvisés) | T6 familles `a.*`, `c.git-status`, § 2.9 | **4,0 %** (66 / 1 655) | ≥ 30 % | ± 1 pt |
| | **I10b** écritures sans instantané préalable | relevés « instantané manquant » (cas distincts) | T5 `data\ecarts.csv` | **3 cas distincts** (7 relevés) | 0 | 0 |
| **R11** Registres et BOSS-JOURNAL horodatés | **I11a** lignes du BOSS-JOURNAL avec heure | lignes de la période avec `HH:MM` / lignes de la période | T3 | **18,6 %** (86 / 462) | ≥ 90 % | ± 2 pts |
| | **I11b** livrables de rôle avec ligne `Tours` | livrables de rôle avec `Tours :` / livrables de rôle | T5 | **68,6 %** | ≥ 95 % | ± 2 pts |
| **R12** Sessions renommées au lot servi | **I12** sessions dont le titre dans l'application ne correspond pas au lot servi | sessions principales actives dont le titre de l'application ≠ titre de la transcription / lot servi (table `data\lots.csv` vs `lots_transcription.csv`) | T1a | **3** sur 25 (ARCH427 et TRACE1 sous « STG », PUB3 sous « REL ») | 0 | 0 |
| **R13** Pièges de poste versés | **I13** fiches `lp-inventory` reprises pour une cause d'environnement ou de consigne de shell | fiches `lp-inventory` reprises ou arrêtées par un refus ou un piège de poste / fiches `lp-inventory` | registres de lot, T1b | **3 / 7** dans EVAL2 (T1a, T4, T6), 43 % | 0 | 0 |
| **R14** Budget de tours du build | **I14** passages `lp-builder` au-delà du budget de tours de leur fiche | passages dont les tours mesurés dépassent le budget déclaré / passages `lp-builder` | T1b § 2.6 | **1 / 32** (3 %) | 0 | 0 |
### 2.1 Valeurs « Avant » de référence, figées par l'outil (AMEL1-M1, 2026-10-14)
La comparaison avant / après se fait **entre deux sorties du même outil** : la référence « Avant » est
`AMEL1-MESURE-P3.md`, produite par `Tools\Indicateurs.py` sur P3 (MD5 de l'outil `f6703323…`, 50 lignes sur 53 dans la
tolérance du tableau ci-dessus). Les valeurs du tableau ci-dessus restent la trace de la lecture manuelle. Là où les deux
diffèrent, l'outil fait foi (décision de l'orchestrateur), parce que la mesure P4 sera faite par lui :
| Ind. | Lecture manuelle | **Avant de référence (outil)** | Cause de l'écart |
|---|---|---|---|
| I2b | à mesurer | **88,5 %** (154 / 174 cas adverses refusés ; `cas.jsonl` de P7-H2 seul : 32 / 35) | mesuré |
| I4b | à mesurer | **3,4 min** par passage `lp-mcp-bp` (127,5 min / 37) | mesuré |
| I7a | numérateur 14 | **5,9 ‰** (14 / 2 370 appels shell des sous-agents) | mesuré |
| I8a | à mesurer | **2,9 %** (1 / 34 VAL PASS-STATIC citent un cas `COMMUN-n` précis) | critère strict retenu, conforme au texte R8 approuvé (« nomme le cas ») ; critère large (mention d'un essai en jeu) : 88,2 %, non retenu |
| I8b | 4 / 70 = 5,7 % | **5,8 %** (4 / 69) | retouche en bloc filtrée |
| I11a | 18,6 % (86 / 462, fichier entier) | **19,0 %** (51 / 268 lignes de la fenêtre) | fenêtre P3 seule ; le fichier entier donne 18,8 % (87 / 463, une ligne ajoutée depuis) |
| I12 | 3 sessions | **5 / 25** | relevé automatique complet (lecture manuelle partielle) |
| I13 | 3 / 7 (lot EVAL2) | **2 / 7** dans P3 | le 3 / 7 portait sur le lot EVAL2, hors fenêtre et session exclue |
| I14 | 1 / 32 | **2 / 32** | GEL1-D1 (19 tours pour 15 déclarés) aussi au-delà |
| **I15** (R7 / OUTIL1) | — (indicateur ajouté par OUTIL1-D1, 2026-10-14) | **10,9 pour 100 appels shell** (465 / 4 281 ; principales 320, sous-agents 145) | mesuré sur les données P3 **restantes** : 4 sessions « STG » et leurs 66 sous-agents ont été supprimés de `~/.claude/projects` après P3 ; à données complètes, la définition T6 (lancements de scripts écrits dans `Tools\` inclus) donnait 723 / 5 910 = 12,2 (957 appels `h.*` moins 234 `Write`, T6-INV § 2.8). **Cible proposée : −50 %** |
Définitions fixées par l'outil et retenues (décision de l'orchestrateur, à appliquer à l'identique en P4) :
- **I5b** : intervalles comptés seulement pendant l'activité (heures où les sessions principales cumulent au moins 25 %
d'activité) ; sans ce filtre, 39,2 h.
- **I6** : un refus = une opération du `REPO-JOURNAL.md` qui commence par « COMMIT refus » (les lignes de reprise qui
rappellent un refus ne comptent pas).
- **I8b** : les retouches en bloc (≥ 20 fichiers à la même seconde) sont exclues ; les liens VAL → KO viennent d'une table
saisie (`--liens-val-ko`).
- **I10b** : un « cas distinct » = un lot.
- **I15** : appels Bash et PowerShell (principales et sous-agents) portant une des familles T6 `h.python-heredoc`, `h.python-pipe-stdin`,
`h.python-c` (plus de 200 caractères) ou le lancement d'un script écrit par `Write` hors `Tools\` dans la même transcription, pour
100 appels shell ; ventilé par lot (titre de la transcription, à défaut celui de l'application). Détail : `OUTIL1-D1-MESURE-P3.md`.
- **Attention, rejeu de P3 après suppression de données** : les transcriptions de 4 sessions « STG » (dont celle de 902 tours) et de 66
sous-agents (114,9 M de jetons lus) ont disparu de `~/.claude/projects` depuis la mesure d'origine. Un rejeu de P3 ne redonne plus les
valeurs de ce tableau pour les indicateurs fondés sur les transcriptions (I1, I2a, I4, I7, I10a, I12 à I14, G-a, G-b) ni, à cause des journaux
vivants et du crochet v2, pour I2b, I6, I11a. `AMEL1-MESURE-P3.md` n'a donc **pas** été réécrit : il reste la référence « Avant ». Le rejeu
actuel est dans `OUTIL1\OUTIL1-D1-MESURE-P3.md` (même outil, mêmes lignes sauf I15). La non-régression de l'outil se prouve en rejouant
l'ancienne et la nouvelle version sur les mêmes données (sortie identique pour les 27 indicateurs).
**Données saisies nécessaires à la mesure P4** (sinon l'indicateur sort « non mesurable » et le code est 1) : `--commun-csv`
et `--builds-csv` (I3, G-c, G-d), `--ecarts-csv` (I10b), `--liens-val-ko` (I8b). Elles sont tirées des bilans d'essai écrits au
gabarit BILAN (colonne découvreur, heures) par une fiche `lp-writer` AMEL1-P4a, juste avant la mesure, au format des CSV
d'EVAL2 (`etat\EVAL2\data\commun.csv`, `builds.csv`, `ecarts.csv`). Après le 2026-10-25 (heure d'hiver) : `--decalage-utc 1`.
**Indicateurs de résultat global** (ne mesurent pas une recommandation seule, ils suivent l'effet d'ensemble) :
| Indicateur | Avant (P3) | Cible P4 |
|---|---|---|
| G-a jetons lus par CHG + ERR | 39 M | ≤ 30 M |
| G-b part des appels faite par les sous-agents | 57 % | > 70 % (doc 33 § 7) |
| G-c délai fin d'essai → exe suivant (médiane) | 53 min | ≤ 53 min (ne pas ralentir) |
| G-d KO par essai commun | 19 KO + KO partiels / 13 builds = 1,46 | baisse |
---
## 3. Mise en œuvre (lot AMEL1)
Chaque recommandation devient une fiche, avec instantané (`Tools\Snapshot.ps1 -Lot AMEL1-<n>`) avant toute écriture,
livrable dans `etat\EVAL2\AMEL1\`, et commit par le gardien sur ticket. Les textes de skills et de règles sont soumis à
l'utilisateur avant le ticket (usage du projet, « approuvé tel quel »).
| Fiche | Rec. | Contenu | Où | Agent | Dépend de | Décision préalable |
|---|---|---|---|---|---|---|
| AMEL1-M1 | toutes | `Tools\Indicateurs.py` : scripts EVAL2 paramétrés (`--debut`, `--fin`, `--coupure`), calcul des 14 indicateurs ; contrôle sur P3 ; mesure des « avant » manquants (I2b, I4b, I7a, I8a) | jeu `Tools\` | `lp-impl` (sonnet) | — | — |
| AMEL1-R1 | R1, F1, F6 | règle « Big Boss = file UE, arbitrages, GO » ; gabarits fiche de tests et bilan d'essai tenus par un `lp-writer` ; rotation à 250 k et à chaque FIN-LOT pour toutes les sessions | addon : `lp-lot`, `lp-doc/gabarits.md` ; doc 32 § 15.9 | `lp-writer` | — | F1 = a, F6 = a |
| AMEL1-R2 | R2, F2 | crochet v2 : motifs cherchés hors texte cité, écriture permise dans le scratchpad et `%TEMP%`, crochet lu depuis le profil seulement ; batterie de cas (P7-H2 + 36 cas « à tort » de P3) | profil `%USERPROFILE%\.claude\hooks\`, copie versionnée addon | `lp-impl` (opus) + `lp-validator` | M1 (I2b avant) | F2 = a |
| AMEL1-R3 | R3, F3 | `Tools\EssaiJournal.ps1` : relecture du journal de jeu par cas de la fiche de tests (PASS / FAIL), lancé par le builder avant la remise | jeu `Tools\` | `lp-impl` (sonnet) | — | F3 = a |
| AMEL1-R4 | R4, F4 | essai ORGA2 § 5 (agent `lp-mcp-bp-s` en Sonnet, gabarit SPEC-MCP, script de relecture) | addon agents et skills | session ORGA2 | après le 2026-10-18 (ORGA2) | F4 = a |
| AMEL1-R5 | R5 | règle « brouillon `<LOT>-JOURNAL-BROUILLON.md` à chaque BUILD-FIN et à chaque KO » | `lp-lot`, `lp-doc` | `lp-writer` | — | F5 = a |
| AMEL1-R6 | R6 | `PubCheck.ps1` dans la VAL et le BUILD-FIN | `lp-validate`, `lp-lot` | `lp-writer` | — | F5 = a |
| AMEL1-R7 | R7, R13 | consignes de shell et pièges de poste (MSIX, `ls-remote`, test d'interpréteur) | `sk-windows-shell`, `lp-paths`, agent `lp-inventory` | `lp-writer` | — | F5 = a |
| AMEL1-R8 | R8 | règle « VAL témoin en jeu » | `lp-validate` | `lp-writer` | — | F5 = a |
| AMEL1-R9 | R9 | rappel « une question, liste fermée » en tête de toute fiche `lp-cart`, et modèle de l'en-tête de l'agent respecté | `sk-orchestrate` | `lp-writer` | — | F5 = a |
| AMEL1-R10 | R10 | `CopieEtat.ps1` : avertissement si aucun instantané du lot depuis le GO ; outils nommés dans le gabarit de fiche | jeu `Tools\`, `lp-lot` | `lp-impl` (sonnet) | — | F5 = a |
| AMEL1-R11 | R11, R12 | horodatage obligatoire du BOSS-JOURNAL, colonnes Tours et statut dans les registres ; renommage des sessions au lot servi | `lp-doc`, `lp-lot`, doc 32 § 15 | `lp-writer` | — | F5 = a |
| AMEL1-R13 | R13 | `FicheStats.py` : `lp-mcp-bp`, `lp-diag`, `lp-cart-max` dans `AGENTS_N3` | jeu `Tools\` | `lp-impl` (sonnet) | — | — |
| AMEL1-R14 | R14 | budget 60 tours pour un build dont la chaîne de vérification dépasse 50 étapes | `lp-build`, agent `lp-builder` | `lp-writer` | — | F5 = a |
| AMEL1-V1 | — | VAL de chaque fiche (diff, LF, PubCheck, critère de la fiche) | — | `lp-validator` | chaque fiche | — |
| AMEL1-P4 | toutes | mesure P4 par `Tools\Indicateurs.py`, tableau avant / après | `etat\EVAL2\AMEL1\AMEL1-MESURE-P4.md` | orchestrateur | toutes en place + fenêtre P4 | — |
| AMEL1-V2 | — | VAL indépendante de la mesure P4 | — | `lp-validator` | P4 | — |
Coordination : Big Boss tient le jeton du journal, les numéros CHG et les tickets du gardien ; R1 change son propre rôle et
lui est soumis en même temps qu'à l'utilisateur.
Tours : sans objet (fiche de l'orchestrateur)