Accueil / Plusieurs agents et vérification adverse
Plafonner une boucle de juges avant de la lancer
Fixez le plafond avant la première passe, dans les critères du lot : un nombre maximal de passes de juge et d'agents. Le critère d'arrêt appartient au juge, que vous ne maîtrisez pas, et tant qu'il trouve quelque chose, la boucle continue et son coût grimpe. À l'atteinte du plafond, on corrige les constats majeurs sourcés et on clôt.
Une boucle de vérification typique corrige un livrable, le fait juger, corrige encore, et recommence jusqu'à ce que le juge réponde OK. Son critère d'arrêt appartient au juge, que vous ne maîtrisez pas : tant qu'il trouve quelque chose, la boucle continue et son coût grimpe, sans que chaque tour pris isolément paraisse excessif.
Fixer le plafond avant de commencer
Le plafond s'écrit dans les critères du lot, avant la première passe : un nombre maximal de passes de juge et un nombre maximal d'agents. À l'atteinte du plafond, on corrige les constats majeurs qui s'appuient sur une source, on liste le reste comme mineurs connus, et on clôt. Une passe supplémentaire reste possible, mais elle se demande avec son coût mesuré, elle ne se décide pas par défaut. La démonstration suivante fabrique ses propres fichiers de constats et applique ce plafond :
mkdir -p demo-juges && cd demo-juges
printf 'majeur: source citée absente\nmineur: titre trop long\n' > passe1.txt
printf 'majeur: la règle ajoutée à la passe 1 contredit le point 3\n' > passe2.txt
printf 'majeur: la règle ajoutée à la passe 2 est ambiguë\n' > passe3.txt
cat > boucle.sh << 'EOF'
#!/bin/sh
PLAFOND=2
passe=1
while :; do
majeurs=$(grep -c '^majeur' "passe$passe.txt")
echo "passe $passe : $majeurs ligne(s) majeur"
if [ "$majeurs" -eq 0 ]; then echo "arrêt : aucun majeur"; break; fi
if [ "$passe" -ge "$PLAFOND" ]; then echo "arrêt : plafond de $PLAFOND passes, le reste est listé en mineurs connus"; break; fi
passe=$((passe+1))
done
EOF
sh boucle.sh
printf 'constats: 0\nfichiers lus: 0\n' > verdict.txt
lus=$(sed -n 's/^fichiers lus: //p' verdict.txt)
if [ "$lus" -gt 0 ]; then echo "verdict accepté"; else echo "verdict vide sans preuve de lecture : à refaire"; fi
passe 1 : 1 ligne(s) majeur
passe 2 : 1 ligne(s) majeur
arrêt : plafond de 2 passes, le reste est listé en mineurs connus
verdict vide sans preuve de lecture : à refaire
La boucle s'arrête à la deuxième passe alors que des constats majeurs subsistent : c'est le plafond qui décide, et le constat restant est consigné au lieu d'être poursuivi. Le dernier test applique la dernière idée de cette leçon, expliquée plus bas.
L'arbitre qui ajoute des règles
Quand un arbitre tranche chaque constat en ajoutant une règle au document, la ronde suivante trouve souvent son défaut majeur dans la règle qu'il vient d'écrire. C'est ce que montrent les passes 2 et 3 du fichier d'essai : chacune porte sur la règle ajoutée à la passe précédente. Avant d'ajouter, cherchez si une règle existante couvre le cas, puis si retirer le mécanisme suffit ; n'ajoutez qu'en dernier recours, avec la correction la plus courte. Si le troisième constat majeur de suite porte sur le même mécanisme, revenez à l'état d'avant.
Un verdict vide et rapide se refait
Un juge qui rend « approuvé, zéro constat » presque aussitôt, sur un lot important, n'a peut-être rien lu : un chemin de fichier mal transmis suffit à produire ce résultat. Acceptez un verdict sans constat uniquement s'il porte la preuve de ce qui a été lu, comme le nombre de fichiers et des citations. Le dernier test de la démonstration refuse le verdict dont le compteur de fichiers lus vaut zéro. Un verdict refusé se relance avec des lentilles distinctes, et les correctifs se font juger eux-mêmes, car un correctif peut créer son propre défaut. La leçon sur les panels de juges décrit ces lentilles.
Une boucle de juges plafonnée
Une équipe relit un guide de procédures avec une boucle : un agent corrige, un juge en aveugle relit, et la boucle reprend tant que le juge ne répond pas OK. Le juge signale un défaut majeur à chacune des six premières passes.
Écrivez en une phrase ce que cette situation établit, et en une phrase ce qu'elle n'établit pas.
Ce que cela établit : Elle établit que le juge a signalé au moins un défaut majeur à chacune des six premières passes, et que la boucle reprenait tant qu'il ne répondait pas OK.
Ce que cela n’établit pas : Elle n'établit pas que le guide serait correct après une septième passe, ni que le juge se trompe, ni pourquoi un défaut revient à chaque passe : rien n'indique que les défauts signalés sont faux.
Les trois calibrages faux les plus courants
- Trop large Une boucle de juges ne converge jamais, quel que soit le livrable relu.
- Trop étroit Seul le défaut de la sixième passe compte, et les cinq passes précédentes n'apportent aucune information.
- À côté Le juge en aveugle a manqué de contexte sur le guide, ce qui explique qu'il signale encore un défaut.
- Un critère d'arrêt confié au juge échappe à celui qui lance la boucle, donc le nombre de passes et d'agents se fixe avant le lancement.
- À l'atteinte du plafond, on corrige les constats majeurs fondés sur une source, on liste le reste en mineurs connus et on clôt.
- Une passe au-delà du plafond se demande avec son coût mesuré, elle ne se décide pas par défaut.
- Quand les constats majeurs successifs portent chacun sur la règle ajoutée à la passe précédente, c'est le mécanisme d'arbitrage qu'il faut retirer.
- Un verdict sans constat n'est accepté qu'avec la preuve de ce qui a été lu, et un verdict vide et rapide se relance par des lentilles distinctes.
Avant votre prochaine boucle de relecture, écrivez dans une note le nombre maximal de passes et d'agents, puis recopiez la démonstration dans un dossier jetable et changez PLAFOND de 2 à 3 pour voir où la boucle s'arrête.