Well, this is hard to answer. I'm just designing a single game in my spare time, but over several years now and these are my experiences:
First off all, it seems that game design is pure experience paired with lot of experimental test'n'try. And there's really little material about game design around compared to all the other stuff (art, coding). Some blogs or GDCs, maybe books more about either very special cases or very rough concepts. So, what is left is, that you need to invent the wheel again and gain your own experiences ?
If you don't like the experimental way, you should base your game design on existing,working design. This sounds like cloning, but to be honest, when you design a new car, do you invent the wheel and engine every time or doesn't you take existing, proofen concept as foundation ? The final game design of a working and enjoyable game is eventually a compressed version of someone else experiences, experiences which you should utilize to create something new and experiences which would likely not be gained by a single game designer.
The second important experience is, that for me up-front design never really worked. If you clone someone else design, a up-front GDD could work, but once you try to change or mix different aspects, you need to test it out. I have thrown away lot of design ideas after implementing them, and I was often really suprised, that some features opened a new door to other game mechanism.
Currently I'm at the state, that a game idea, is really only a temporary idea at the horizon I try to follow. I try to implement the foundation to this idea and test it out. Then I evaluate the result and reiterate it, trying to improve it (agile game design). Nowadays I would never tell the public about not yet working game design ideas, the risk that this will not work is really high, and this could really fire back , which happen to me and even to really famous and experienced veteran game designers too (Godus).
So, a practicable advice from a simple hobby game designer guy:
Start to work with visions, take working game design as foundation to support your vision and start to prototype this into a game. Then start to refine it over several iterations. Don't over-engineer an idea up-front, don't hold on an idea until it really works, don't try to protect your investment, if it doesn't work, dicard it.