Yep. I do so much work with Claude on product requirements and architecture before a single line of code is written, and test coverage is extreme.
If I need to understand a specific line of code it means I did something wrong in planning or in requirements for testing.
In my experience it’s impossible to foresee all the micro decisions that reality will demand. IMO it’s one reason to not use waterfall, which is very similar to what you described