Inicio / Varios agentes y verificación adversa
Poner un tope a un bucle de jueces antes de lanzarlo
Fija el tope antes de la primera pasada, en los criterios del lote: un número máximo de pasadas de juez y de agentes. El criterio de parada pertenece al juez, al que no controlas, y mientras encuentre algo el bucle continúa y su coste sube. Al alcanzar el tope, se corrigen los hallazgos mayores con fuente y se cierra.
Un bucle de verificación típico corrige un entregable, lo hace juzgar, corrige de nuevo y recomienza hasta que el juez responde OK. Su criterio de parada pertenece al juez, al que tú no controlas: mientras encuentre algo, el bucle continúa y su coste sube, sin que cada vuelta tomada por separado parezca excesiva.
Fijar el tope antes de empezar
El tope se escribe en los criterios del lote, antes de la primera pasada: un número máximo de pasadas de juez y un número máximo de agentes. Al alcanzar el tope, se corrigen los hallazgos mayores que se apoyan en una fuente, se lista el resto como menores conocidos y se cierra. Una pasada adicional sigue siendo posible, pero se pide con su coste medido, no se decide por defecto. La demostración siguiente fabrica sus propios archivos de hallazgos y aplica ese tope:
mkdir -p demo-jueces && cd demo-jueces
printf 'mayor: fuente citada ausente\nmenor: título demasiado largo\n' > pasada1.txt
printf 'mayor: la regla añadida en la pasada 1 contradice el punto 3\n' > pasada2.txt
printf 'mayor: la regla añadida en la pasada 2 es ambigua\n' > pasada3.txt
cat > boucle.sh << 'EOF'
#!/bin/sh
PLAFOND=2
passe=1
while :; do
majeurs=$(grep -c '^mayor' "pasada$passe.txt")
echo "pasada $passe : $majeurs línea(s) mayor"
if [ "$majeurs" -eq 0 ]; then echo "parada: ningún hallazgo mayor"; break; fi
if [ "$passe" -ge "$PLAFOND" ]; then echo "parada: tope de $PLAFOND pasadas alcanzado, el resto se lista como menores conocidos"; break; fi
passe=$((passe+1))
done
EOF
sh boucle.sh
printf 'hallazgos: 0\narchivos leídos: 0\n' > verdict.txt
lus=$(sed -n 's/^archivos leídos: //p' verdict.txt)
if [ "$lus" -gt 0 ]; then echo "veredicto aceptado"; else echo "veredicto vacío sin prueba de lectura: rehacer"; fi
pasada 1 : 1 línea(s) mayor
pasada 2 : 1 línea(s) mayor
parada: tope de 2 pasadas alcanzado, el resto se lista como menores conocidos
veredicto vacío sin prueba de lectura: rehacer
El bucle se detiene en la segunda pasada aunque quedan hallazgos mayores: el tope decide, y el hallazgo restante se anota en lugar de perseguirse. La última prueba aplica la última idea de esta lección, explicada más abajo.
El árbitro que añade reglas
Cuando un árbitro resuelve cada hallazgo añadiendo una regla al documento, la ronda siguiente suele encontrar su defecto mayor en la regla recién escrita. Es lo que muestran las pasadas 2 y 3 del archivo de prueba: cada una trata de la regla añadida en la pasada anterior. Antes de añadir, comprueba si una regla existente cubre el caso, luego si basta con retirar el mecanismo; añade solo como último recurso, con la corrección más corta. Si el tercer hallazgo mayor seguido recae en el mismo mecanismo, vuelve al estado anterior.
Un veredicto vacío y rápido se rehace
Un juez que devuelve «aprobado, cero hallazgos» casi al instante sobre un lote grande puede no haber leído nada: basta una ruta de archivo mal transmitida para producir ese resultado. Acepta un veredicto sin hallazgos solo si lleva la prueba de lo que se leyó, como el número de archivos y citas. La última prueba de la demostración rechaza el veredicto cuyo contador de archivos leídos vale cero. Un veredicto rechazado se relanza con lentes distintas, y las correcciones se hacen juzgar a su vez, porque una corrección puede crear su propio defecto. La lección sobre los paneles de jueces describe esas lentes.
Un bucle de jueces con tope
Un equipo revisa una guía de procedimientos con un bucle: un agente corrige, un juez a ciegas relee, y el bucle se reanuda mientras el juez no responda OK. El juez señala un defecto mayor en cada una de las seis primeras pasadas.
Escribe en una frase lo que esta situación establece, y en una frase lo que no establece.
Lo que esto establece: Establece que el juez señaló al menos un defecto mayor en cada una de las seis primeras pasadas, y que el bucle se reanudaba mientras no respondiera OK.
Lo que esto no establece: No establece que la guía sería correcta tras una séptima pasada, ni que el juez se equivoque, ni por qué vuelve un defecto en cada pasada: nada indica que los defectos señalados sean falsos.
Los tres calibrados falsos más frecuentes
- Demasiado amplio Un bucle de jueces nunca converge, sea cual sea el entregable revisado.
- Demasiado estrecho Solo cuenta el defecto de la sexta pasada, y las cinco pasadas anteriores no aportan ninguna información.
- Fuera de tema El juez a ciegas carecía de contexto sobre la guía, lo que explica que todavía señale un defecto.
- Un criterio de parada confiado al juez escapa a quien lanza el bucle, por lo que el número de pasadas y de agentes se fija antes del lanzamiento.
- Al alcanzar el tope, se corrigen los hallazgos mayores fundados en una fuente, se lista el resto como menores conocidos y se cierra.
- Una pasada más allá del tope se pide con su coste medido, no se decide por defecto.
- Cuando los hallazgos mayores sucesivos recaen cada uno en la regla añadida en la pasada anterior, lo que hay que retirar es el mecanismo de arbitraje.
- Un veredicto sin hallazgos solo se acepta con la prueba de lo que se leyó, y un veredicto vacío y rápido se relanza con lentes distintas.
Antes de tu próximo bucle de revisión, escribe en una nota el número máximo de pasadas y de agentes, luego copia la demostración en una carpeta desechable y cambia PLAFOND de 2 a 3 para ver dónde se detiene el bucle.