Exatamente, spec-driven development é o nome formal. Na prática é isso: quanto mais contexto você dá pro modelo antes de pedir código, melhor o resultado.
Sobre até onde vale detalhar: minha regra é focar no COMPORTAMENTO esperado, não na implementação. Tipo: "quando o usuário clica em X, acontece Y" em vez de "crie um onClick handler que chama a API". O modelo decide o como, você define o quê.
Se a spec está grande demais, provavelmente o escopo está grande demais. Quebra em pedaços menores.