E4 · Falha antes, passa depois
10 minRode as três rodadas do ensaio.
Pronto quando: A termina com FALTAM 4 e saída: 4; B mostra OK no critério código 0 e FALHOU no 3 passed; C termina com PRONTO e saída: 0.
Aula 2 · 18 min
Um critério só vale se alguém de fora consegue conferi-lo sem confiar no agente. Nesta aula você roda cada critério do goal.md como comando, vê qual deles passa por atalho e aprende onde a prova tem de aparecer: o avaliador do /goal no Claude Code só lê a conversa.
Começar a aula
Objetivo: conferir cada critério do goal.md por comando, ver qual nível 2 passa por atalho e pôr a prova na conversa que o avaliador do /goal lê.
Clique em cada etapa.
Comando que você roda e saída que aparece: é a mesma prova para você, para o loop headless e para o avaliador do /goal.
Seis critérios. Um deles não tem comando e um passa por atalho. Ache os dois antes de rodar.
## Critérios de pronto
**Função**
- [ ] `python3 -m pytest -q tests/` → `3 passed`
- [ ] `python3 -c "from slug import slug; print(slug('Ação & Reação!'))"` → `acao-reacao`
**Regressão**
- [ ] `python3 -m pytest -q tests/ -rs` → `código 0`
**Limite**
- [ ] `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 # fora do projeto: o agente não edita o critério python3 $K/conferir-goal.py ../goal.md; echo "saída: $?" # A) antes do trabalho: tem de falhar $K/agente-falso.sh conftest < /dev/null # B) atalho: pula os testes python3 $K/conferir-goal.py ../goal.md; echo "saída: $?" rm conftest.py && $K/agente-falso.sh bom < /dev/null # C) trabalho certo sed -i '/limpo e bem documentado/d' ../goal.md # e o critério sem comando sai 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: 0O comando aparece cortado em 60 caracteres na saída. Na rodada B, código 0 deu OK com os três testes pulados: é o critério nível 2 do goal.md.
Se a rodada A (antes de qualquer trabalho) já dá OK num critério de função, o critério não mede o trabalho. Todo critério de função tem de falhar antes; os de limite (nada mexido) podem passar desde o início.
Como o avaliador só lê a conversa, a condição exige a saída colada. Nos prompts de goal do kit execucao-longa e do kit 15 comandos o padrão é o mesmo.
/goal A saída de `python3 ~/projetos/loop-r-eng-verificacao-v72/kit/conferir-goal.py <caminho>/goal.md` está colada inteira nesta conversa e termina com PRONTO; nenhum arquivo em tests/ nem conftest.py foi alterado; pare depois de 15 voltas e diga o que faltou.
(1) Terminei. Rodei o conferir-goal.py e deu tudo certo. (2) Rodei o conferir-goal.py: OK python3 -m pytest -q tests/ → 3 passed (…) --- PRONTO
Ensaio, depois o seu goal.md.
Rode as três rodadas do ensaio.
Pronto quando: A termina com FALTAM 4 e saída: 4; B mostra OK no critério código 0 e FALHOU no 3 passed; C termina com PRONTO e saída: 0.
Pegue um goal.md seu (ou escreva um pelo template do curso 2) e rode o conferir-goal.py nele antes de começar o trabalho. Reescreva todo critério que deu "sem comando" e todo critério de função que já passa.
Pronto quando: python3 $K/conferir-goal.py [seu goal.md] --pasta [seu projeto] → nenhuma linha sem comando e pelo menos um FALHOU de função antes do trabalho (código de saída maior que 0).
Rode uma tarefa pequena com /goal usando a condição do bloco acima, apontando para o seu goal.md.
Pronto quando: a última resposta do agente contém a saída do conferir-goal.py terminando em PRONTO e o /goal encerra como atingido; rodando você mesmo o mesmo comando → PRONTO e código 0.
Pergunta 1 de 4
O que o avaliador do /goal no Claude Code consegue fazer para julgar a condição?competência
Pergunta 2 de 4
No ensaio, com todos os testes pulados, qual critério deu OK por engano?competência
Pergunta 3 de 4
Qual destas mensagens finais deixa o avaliador do /goal decidir com base em prova?
Pergunta 4 de 4
Um critério de função dá OK antes de qualquer trabalho. O que isso indica?
Escolha uma alternativa. A explicação aparece depois da sua tentativa.