| In my view, Spec-Driven systems are doomed to fail. There's nothing that couples the english language specs you've written with the actual code and behaviour of the system - unless your agent is being insanely diligent and constantly checking if the entire system aligns with your specs. This has been solved already - automated testing. They encode behaviour of the system into executables which actually tell you if your system aligns or not. Better to encode the behaviour of your system into real, executable, scalable specs (aka automated tests), otherwise your app's behaviour is going to spiral out of control after the Nth AI generated feature. The way to ensure this actually scales with the firepower that LLMs have for writing implementation is ensure it follows a workflow where it knows how to test, it writes the tests first, and ensures that the tests actually reflect the behaviour of the system with mutation testing. I've scoped this out here [1] and here [2]. [1] https://www.joegaebel.com/articles/principled-agentic-softwa...
[2] https://github.com/JoeGaebel/outside-in-tdd-starter |