Un loop termina cuando el criterio de terminado dice que terminó. Si el criterio es vago, el loop no termina o termina antes de tiempo; si se puede cumplir por atajo, el agente encuentra el atajo: borra la prueba que fallaba, genera una página vacía. La escala de 0 a 4 del kit execucao-longa le pone nombre a cada nivel y muestra el mínimo aceptado: nivel 3, comando con traba.
3Trabas que cierran el atajo: conteo, archivo congelado, validador
4Función, regresión y límite en un solo criterio
Objetivo: clasificar criterios de terminado de 0 a 4 con las 5 preguntas y reescribir un criterio vago hasta el nivel 3, con comando y traba.
01 · La escalera del criterio de terminado
Haz clic en cada nivel: cómo suena, cómo el agente lo burla y qué hacer.
Clase 601 · La escalera del criterio de terminadoHaz clic en cada nivel: cómo suena, cómo el agente lo burla y qué hacer.
1/6
0 · vago
No tiene un final que se pueda comprobar. El loop se detiene cuando se acaba la cuota o cuando el agente cree que ya está bien. Ejemplo: "mejorar el rendimiento".
Desplázate por la página: cada etapa de abajo ilumina su parte del diagrama.
1/6
0 · vago
No tiene un final que se pueda comprobar. El loop se detiene cuando se acaba la cuota o cuando el agente cree que ya está bien. Ejemplo: "mejorar el rendimiento".
2/6
1 · subjetivo
Parece un criterio, pero quien decide es la opinión del agente: se autoaprueba. Ejemplo: "código revisado y sin problemas".
3/6
2 · burlable
Ya tiene comando, pero se puede cumplir sin hacer el trabajo: borrar la prueba que falla da "0 falhas"; veinte páginas vacías dan "20 páginas". Es el nivel más peligroso porque parece terminado.
4/6
3 · protegido
Comando más una traba que cierra el atajo: conteo mínimo ("≥ 48 testes"), archivo congelado o hash verificado, validador del contenido. Ejemplo del kit: "0 falhas e ≥ 48 testes e tests/ intocado", no solo "0 falhas".
5/6
4 · independiente
Nivel 3 más alguien o algo de afuera verificando: prueba de punta a punta real, evaluador separado, muestra revisada por una persona. Úsalo cuando el error sale caro. Cómo montar el evaluador separado es el curso 1.
6/6
Sube hasta el 3, siempre
Lo vago y lo subjetivo se reescriben; lo burlable gana una traba; lo protegido es el mínimo para dejar a un agente solo; lo independiente es para cuando equivocarse sale caro.
Escala de la plantilla goal.md del kit execucao-longa. Mínimo aceptado: nivel 3.
02 · La escala y las 5 preguntas, tal como están en la plantilla
Fragmento de execucao-longa/templates/goal.md. Pégalo en tu goal.md o en las reglas del agente.
templates/goal.md · escala e perguntas
ESCALA (borrar al completar)
0 vago ......... "dejarlo bien", "mejorar" → reescribir
1 subjetivo .... "revisado y limpio" (el agente se autoaprueba) → reescribir
2 burlable ..... "0 fallos", "20 páginas" (borra el test, página vacía) → poner traba
3 protegido .... comando + traba (conteo mínimo, archivo congelado/hash, validador del contenido) → mínimo aceptado
4 independiente . nivel 3 + chequeo externo (e2e real, evaluador separado, muestra humana) → cuando el error cuesta caro
5 PREGUNTAS — cada "no" baja el nivel
1. ¿Se puede chequear con un comando?
2. ¿La respuesta es sí/no (sin "mejoró")?
3. ¿Es imposible cumplirlo sin hacer el trabajo?
4. ¿La prueba aparece en la salida? (el evaluador del /goal en Claude solo lee la conversación)
5. ¿Están cubiertos función + regresión + límite?
SEÑALES DE UN CRITERIO MALO: "bueno/limpio/adecuado/completo"; depende de que el agente diga que terminó;
solo conteo sin chequear el contenido; no dice qué NO puede cambiar; la verificación tarda horas.
Criterio nivel 3 · las tres capas
**Función** — hace lo que debía
- [ ] python3 -m pytest -q tests/ | tail -1 → 6 passed (e nunca menos de 6)
**Regresión** — no rompió lo que ya funcionaba
- [ ] python3 -m pytest -q | tail -1 → sem "failed"
**Límite** — no tocó donde no debía
- [ ] git diff --exit-code -- tests/; echo $? → 0
- [ ] sha256sum -c tests.sha256 → tests/test_conta.py: OK
03 · Del 0 al 3, un nivel a la vez
El mismo pedido reescrito hasta quedar a prueba de atajos.
1. 0 → 1
"Mejorar la función que cuenta palabras" se vuelve "la función cuenta las palabras correctamente".
Todavía es opinión: ¿quién dice "correctamente"?
2. 1 → 2
"python3 -m pytest -q imprime 0 failed".
Ahora ya se puede comprobar. Pero borrar los tests también imprime 0 failed.
3. 2 → 3
"pytest imprime 6 passed, tests/ no cambió (git diff vacío) y el hash del archivo de test coincide".
Cantidad mínima y archivo congelado: no hay forma de cumplirlo sin hacer el trabajo.
Agrega una comprobación que el agente no controla: otro agente que solo evalúa, una prueba de punta a punta en el entorno real, una muestra que revisas tú.
Ese nivel es el tema del curso 1.
04 · Práctica
En tu máquina. El ejercicio 2 usa un proyecto tuyo con tests.
E1 · Clasificar y reescribir
15 min
Escribe en criterios.md tres criterios que ya usaste (o viste) para decir que una tarea terminó. Al lado de cada uno, el nivel de 0 a 4 y, en una línea que empieza con nível 3, la versión reescrita. Escribe la marca nível 3 exactamente así, en portugués: es la que cuenta el grep.
Listo cuando:grep -c 'nível 3' criterios.md → 3, y grep -ciE '\b(bueno|buena|limpio|adecuado|completo)\b' criterios.md solo encuentra palabras en las líneas de los criterios originales, nunca en las reescritas.
E2 · Un criterio nivel 3 que corre
15 min
En un proyecto tuyo con tests, corre el criterio completo: la suite con cantidad mínima y la traba de que los tests no cambiaron.
Listo cuando:python3 -m pytest -q | tail -1 (o el comando de test de tu proyecto) muestra el número de tests, sin failed, y git diff --exit-code -- tests/; echo $? → 0.
E3 · Probar que la traba funciona
10 min
En la misma carpeta, simula el atajo: cambia el contenido de un test por un test vacío, corre las trabas y luego deshaz con git checkout.
Listo cuando: Con el test cambiado, git diff --exit-code -- tests/; echo $? → 1; después de git checkout -- tests/, el mismo comando → 0.
05 · Prueba de la lección
Pregunta 1 de 4
"python3 -m pytest -q imprime 0 failed". ¿Cuál es el nivel?competencia
Correcto
Tiene comando, pero borrar los tests también da 0 failed. Falta la traba: cantidad mínima y tests intactos. El error común es creer que tener un comando ya es nivel 3.
No es esa
Tiene comando, pero borrar los tests también da 0 failed. Falta la traba: cantidad mínima y tests intactos. El error común es creer que tener un comando ya es nivel 3.Repasar: La escalera del criterio de terminado
Pregunta 2 de 4
¿Cuál de las 5 preguntas derriba "el agente confirma que revisó todo"?
Correcto
No hay comando, la respuesta depende de que el agente diga que terminó (señal de criterio malo) y puede decirlo sin haberlo hecho. Nivel 1.
Un criterio cubre función y regresión, pero no dice nada sobre archivos que no podían cambiar. ¿Qué falta?competencia
Correcto
Función, regresión y límite: sin límite, el agente puede cumplir el resto tocando donde no debía. "No dice qué NO puede cambiar" está entre las señales de criterio malo.