I use very loose templates for my code/design projects just so I have some structure to work with, but I do agree most projects change and grow as they progress which is probably as it should be.
When I am working on code and design stuff I keep a working file in org format in my code editor for notes and things that occur while working, and the end of each session I transfer those that are relevant into Omnifocus so I have a complete overview.
For other projects I decide what it’s all about, put one action in at least then when I decide to work on it, flesh it out.
Too rigid a structure discourages free thinking and makes changing direction more difficult during the project itself.
Disclaimer: I have never read GTD and never actually intend to, obviously I “know” the concepts, but to me it’s a suggested system not a religion, it has things that work for me, and things that don’t work so well. No one will ever put together a system for you as well a s you can, use other peoples ideas, adapt them but always remember you are not them and they are not you.