I actually use some of the most standard tags for gtd
For context I use
For difficulty (it always means mental diffuculty)
For project group
more than 2h
I've experimented with more granular tags in the past like @thinking and so on but in the end settled with the most basic tags because first of all I want to have as few "lists" as possible and moving tasks to more lists doesn't reduce the amount of stuff I need to get done it and just makes it harder to find
Another reason is that I use all other criteria instead of contexts so I don't have to rely on just contexts as much. I also use Project group, Time and Difficulty and I find that this approach works best for me.
For example I would rather see all tasks with
+ high difficulty
+ work related
- (not) more than 2h
in the morning when I want to get work done instead of checking multiple contexts like @thinking and what not.
I'm just 100% sure that I want to see the most mentally demanding tasks at first instead of easy tasks and that I want to see only work related tasks which are not too long to feel comfortable to start them for example.
Also after running this report and linking its result as children of reports thought I might also run another report to make the list even shorter and hide the things I don't want to see.
For example I then might hide things like @talk and @errands and @home if they are there and so on.
I find the contexts are very useful for actually not seeing certain things.
Because it's very easy to decide what I 100% don't want to see in the moment.
This workflow is very flexible but I also can be very specific with what I want to see because I can specify if it's work/personal/maintenance related and how hard it is and how much time I need to feel comfortable to start doing it.
Then I chose 3-6 actions and link them under Focus/Later Focus.
I also link all @talk tasks under certain people in my People category that way I don't have too many tags but can still be very specific about this context.
Also more about @offline context...
It's kind of interesting that David Allen suggest to keep a separate @online context as an addition to the @computer context.
Well for me it actually makes more sense to keep an additional @offline context instead because most of the time I have online access.
@online context means I need computer and internet.
@offline context means I need only computer without internet.
If I'm online and want to see both online and offline actions then I will just combine both @online and @offline tags with the Reports tool (show any)
One more thing is that to make sure that nothing falls through the cracks I have saved reports to show me if there are any tasks which are missing any of those attributes (context,time,difficulty,project group) so I'm always 100% sure all tasks have all attributes.