If you want to go all the way, a fully formalized specification is not less work than writing the software, though the potential promise of LLMs for formal methods is interesting.
But for any informal specs, no matter how detailed, while LLMs can be very capable when it comes to avoiding surface errors when translating them into code (e.g. they're more likely than human programmers to write code that compiles on first try), they still don't have a mental model, and most of the problems I've seen are IMO results of that and they increase with the scale of the project.
My latest benchmark for FluxImp ( open sourced yesterday at https://fluximp.org ) purposely leaves in some ambiguity. Some model offerings (model at specific provider) consistently make better decisions to resolve the ambiguity than others and I want see that show up in the benchmark metrics as extra turns, extra cost, and possibly outright failure.
Deepseek v4.1 Flash @ deepinfra.com has been really impressive and I've switched to that as my daily driver.
To me needing to craft a perfectly unambiguous spec completely defeats the purpose of using a coding agent for most software development (an obvious exception is if you need to the code generated multiple times in different programming languages).