Approaches may differ. Until you settle on your own system of tags that suits you well, it takes a road of trial and error. Especially for novices, that are not used to tags and know where to start from.
Self-descriptive tags are the best, if you already have a working tag system, that you know good, you probably won't need descriptions... but until then it's a good idea to provide each tag with a description to remind yourself what purpose you used this tag for, and kind of summarize your experience to decide if you need it at all.
Thanks. Hierarchy is a must (in fact it is a killer feature that very little of Evernote 'alternatives' have).
Indeed I have a several namespaced root categories, such as *theme, =type, -action, #todo, .projects etc, that have several nested levels each.
But I'm still improving it, some tags can even change names and meaning over time. For example, from @temp to #todo - #delete (temporary notes and bookmarks that should be deleted when assocciated project is finished)
Each project tag itself could use a description with project details.
I think that 3 notebook categories is enough: Incoming, Library and Archive (each has 'local' and 'syncronized' notebooks in it). They serve just for "high-level" filtering of everything.