When you implement a new feature with these tools, how do you convince yourself that existing system behavior remains unchanged?
When you have the code in front of you, atleast you can reason about the full system behavior before and after because code is unambiguous like that.
With spec driven development, the LLM can rewrite anything as long as it meets the spec. That's a problem if your customer relies on behavior that's written down ambiguously (or omitted entirely).
So, I think this is only going to work if you write specs with mathematical precision.. at which point you probably want to write them using a mathematical language.