I leave gaps in a design doc on purpose because, if I do not, I am treating my teammates as hands, not brains.
The common belief is that a design doc should be detailed enough for an SDE 1 to pick up and implement without thinking. I do not agree with that. If every decision has already been made, the engineer implementing it is just transcribing your thoughts into code, which has now become a commodity.
When I leave gaps, two things happen. The engineer feels trusted to make real decisions, not just execute someone else’s. And often, they find issues in my thinking that I missed entirely because they are now co-owning it.
I am explicit about this when I hand off a doc. I tell them directly that there are gaps and that I expect them to resolve some of them during implementation.
This is a very conscious choice I make. See if you would like to try the same.