Essa abordagem de embutir o teste na própria spec é inteligente. O LLM acaba sendo o disciplinador que o dev muitas vezes não é sozinho: se a ordem está no prompt, ele segue.
No meu caso com Claude Code, percebo que quando especifico bem o comportamento esperado antes, o código gerado é mais coerente. Mas ainda cai no mesmo problema do TDD manual: quando a spec é vaga, o teste gerado testa implementação, não comportamento.
A diferença é que com LLM você consegue regenerar teste e código juntos rapidamente. Isso muda um pouco o custo-benefício do ciclo red-green-refactor.
Você define os critérios de aceite no SDD antes de gerar, ou vai refinando junto com o código?