Earlier quoted context omitted.
In my experience, when you sell expensive complex systems, customers are very worried about any differences in system behavior as a result of software updates. 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 unam…
Appreciate learning from your perspective. I've built, integrated and sold expensive complex systems. They want it working, connected, and reliable. Lots of paths there. Have you built with LLMs? I'm asking because I would refer to things from having something working on a complex code base. Specifications, or inputs in a way are a new code. The added focus on documentation, before and after is a bonus too, and also…
When I look at SpecKit, I see a kind of vibe coding fantasy: "code is no longer king", stop writing "undifferentiated code." There is no code on the site, just a bunch of prompts and commands.
On the other hand, what you are describing above is bringing specs closer to the codebase, while not replacing the code itself. Like I said I have no problems using natural language as a guide (even as a primary guide). I also completely agree that it helps with documentation.
My main point is: if you want to maintain a complex system, you also need to have an accurate description of the system behavior in some kind of formalism.
This kind of description reflects the true system behavior better. It's more helpful when you need to predict the impact of changes and also during debugging.