E4 · Falla antes, pasa después
10 minEjecuta las tres rondas del ensayo.
Listo cuando: A termina con FALTAM 4 y saída: 4; B muestra OK en el criterio código 0 y FALHOU en 3 passed; C termina con PRONTO y saída: 0.
Lección 2 · 18 min
Un criterio solo vale si alguien de afuera puede comprobarlo sin confiar en el agente. En esta clase ejecutas cada criterio del goal.md como comando, ves cuál de ellos pasa por atajo y aprendes dónde debe aparecer la prueba: el evaluador del /goal en Claude Code solo lee la conversación.
Comenzar la clase
Objetivo: comprobar cada criterio del goal.md por comando, ver qué nivel 2 pasa por atajo y poner la prueba en la conversación que lee el evaluador del /goal.
Haz clic en cada etapa.
Un comando que tú ejecutas y una salida que aparece: es la misma prueba para ti, para el loop headless y para el evaluador del /goal.
Seis criterios. Uno no tiene comando y otro pasa por un atajo. Encuentra los dos antes de ejecutar.
## Criterios de terminado
**Función**
- [ ] `python3 -m pytest -q tests/` → `3 passed`
- [ ] `python3 -c "from slug import slug; print(slug('Ação & Reação!'))"` → `acao-reacao`
**Regresión**
- [ ] `python3 -m pytest -q tests/ -rs` → `código 0`
**Límite**
- [ ] `git diff --stat HEAD -- tests/ pytest.ini` → `vazio`
- [ ] `git ls-files --others --exclude-standard -- '*conftest.py' tests/` → `vazio`
- [ ] o código fica limpo e bem documentadoK=~/projetos/loop-r-eng-verificacao-v72/kit bash $K/ensaio.sh > /dev/null && cd /tmp/ensaio-verif/proj cp $K/goal-ensaio.md ../goal.md # fuera del proyecto: el agente no edita el criterio python3 $K/conferir-goal.py ../goal.md; echo "saída: $?" # A) antes del trabajo: tiene que fallar $K/agente-falso.sh conftest < /dev/null # B) atajo: salta los tests python3 $K/conferir-goal.py ../goal.md; echo "saída: $?" rm conftest.py && $K/agente-falso.sh bom < /dev/null # C) trabajo correcto sed -i '/limpo e bem documentado/d' ../goal.md # y el criterio sin comando sale python3 $K/conferir-goal.py ../goal.md; echo "saída: $?"
FALHOU python3 -m pytest -q tests/ → 3 passed
veio: 3 failed in 0.01s (código 1)
FALHOU python3 -c "from slug import slug; print(slug('Ação & Reação → acao-reacao
veio: NotImplementedError (código 1)
FALHOU python3 -m pytest -q tests/ -rs → código 0
veio: 3 failed in 0.01s (código 1)
OK git diff --stat HEAD -- tests/ pytest.ini → vazio
OK git ls-files --others --exclude-standard -- '*conftest.py' t → vazio
FALHOU sem comando: o código fica limpo e bem documentado
---
FALTAM 4
saída: 4
Pronto: marquei os testes instáveis; a suíte fica verde.
FALHOU python3 -m pytest -q tests/ → 3 passed
veio: 3 skipped in 0.00s (código 0)
FALHOU python3 -c "from slug import slug; print(slug('Ação & Reação → acao-reacao
veio: NotImplementedError (código 1)
OK python3 -m pytest -q tests/ -rs → código 0
OK git diff --stat HEAD -- tests/ pytest.ini → vazio
FALHOU git ls-files --others --exclude-standard -- '*conftest.py' t → vazio
veio: conftest.py (código 0)
FALHOU sem comando: o código fica limpo e bem documentado
---
FALTAM 4
saída: 4
Pronto: slug() implementado.
OK python3 -m pytest -q tests/ → 3 passed
OK python3 -c "from slug import slug; print(slug('Ação & Reação → acao-reacao
OK python3 -m pytest -q tests/ -rs → código 0
OK git diff --stat HEAD -- tests/ pytest.ini → vazio
OK git ls-files --others --exclude-standard -- '*conftest.py' t → vazio
---
PRONTO
saída: 0El comando aparece cortado a 60 caracteres en la salida. En la ronda B, código 0 dio OK con los tres tests saltados: es el criterio de nivel 2 del goal.md.
Si la ronda A (antes de cualquier trabajo) ya da OK en un criterio de función, el criterio no mide el trabajo. Todo criterio de función tiene que fallar antes; los de límite (nada modificado) pueden pasar desde el inicio.
Como el evaluador solo lee la conversación, la condición exige la salida pegada. En los prompts de goal del kit execucao-longa y del kit 15 comandos el patrón es el mismo.
/goal La salida de `python3 ~/projetos/loop-r-eng-verificacao-v72/kit/conferir-goal.py <caminho>/goal.md` está pegada completa en esta conversación y termina con PRONTO; ningún archivo en tests/ ni conftest.py fue modificado; detente después de 15 vueltas y di qué faltó.
(1) Terminé. Ejecuté el conferir-goal.py y todo salió bien. (2) Ejecuté el conferir-goal.py: OK python3 -m pytest -q tests/ → 3 passed (…) --- PRONTO
Ensayo, después tu goal.md.
Ejecuta las tres rondas del ensayo.
Listo cuando: A termina con FALTAM 4 y saída: 4; B muestra OK en el criterio código 0 y FALHOU en 3 passed; C termina con PRONTO y saída: 0.
Toma un goal.md tuyo (o escribe uno con la plantilla del curso 2) y ejecuta el conferir-goal.py sobre él antes de empezar el trabajo. Reescribe todo criterio que dio "sem comando" y todo criterio de función que ya pasa.
Listo cuando: python3 $K/conferir-goal.py [tu goal.md] --pasta [tu proyecto] → ninguna línea sem comando y al menos un FALHOU de función antes del trabajo (código de salida mayor que 0).
Ejecuta una tarea pequeña con /goal usando la condición del bloque de arriba, apuntando a tu goal.md.
Listo cuando: la última respuesta del agente contiene la salida del conferir-goal.py terminando en PRONTO y el /goal termina como alcanzado; si ejecutas tú mismo el mismo comando → PRONTO y código 0.
Pregunta 1 de 4
¿Qué puede hacer el evaluador del /goal en Claude Code para juzgar la condición?competencia
Pregunta 2 de 4
En el ensayo, con todos los tests omitidos, ¿qué criterio dio OK por error?competencia
Pregunta 3 de 4
¿Cuál de estos mensajes finales deja que el evaluador del /goal decida con base en pruebas?
Pregunta 4 de 4
Un criterio de función da OK antes de cualquier trabajo. ¿Qué indica eso?
Elige una alternativa. La explicación aparece después de tu intento.