I have battled with this question of projects also, but my understanding is that project names/titles are all that is stored on a Projects List. (This is a separate list than your 'next actions' list).
However, I must admit that I do NOT have a Projects list in my work system, because things just move too fast - I only want to look in one place.
I use Outlook 2010 tasks to manage this - but my method could apply to other systems as I pretty much use Outlook tasks only as a simple list. ( I don't use any of the features or fields to keep it really simple as I share it with others who don't necessarily share my delight in productivity systems and I am not a huge fan of some of the behaviours of Outlook with tasks).
So instead of a Projects list, I have it simply set up that every next action starts with the project name - so I can scan down and immediately see my projects list - in effect - as well as my next actions in one go.
Also , that forces me to put a next action against every project - no orphaned projects on a separate project list.
(This is something I've heard David Allen talk about in a podcast -where they were discussing a piece of software that even goes so far as to put a frowny face against a project if it has no next action - eproductivity.com that works with Lotus Notes which I believe DA uses http://www.eproductivity.com/dx/podcast)
So my list looks pretty much as you described
- project A, next action (@context)
- project B, next action (@context)
- project C, next action (@context)
i.e. this is what I see when I scan down the 'subject' line of the tasks
Reference material for the project is stored in our reference files not with the next action.
At work all filing is based around dividing things up by client name. (I guess this is common in professional services firms) so I generally make the client name act as the project name - or client name plus one or two words if my team are doing multiple projects at once for the client.
This still leaves the question of how to deal with items which are actions - not reference - but which are NOT "NEXT actions".
There are a couple of ways I deal with this issue and it really depends on the complexity of the project:
Using Outlook task lists there is a 'notes' section for each task.
This does not show in list view only if you drill down on that task.
If the project is of medium complexity, then I put my 'future'
next actions here in a list here. It works as it does not distract in
the list view.
It's usually just a reminder list not a comprehensive plan and I may
revisit it at weekly review or when I complete a next action.
(I don't think Outlook is at all unique here - I think most software
that allows a list like this , also has a drill down to a note
attached to the item line in the list - to give further info. So you
could hopefully use this method in most systems.)
Anyhow, the key thing then is that when I complete a next action I
can just copy and paste the following next action from the notes
attached to this task line, into the subject of the task line -
overwriting the previous next action to bring it up to date.
(The other advantage of this is I can also keep a history of what's
been done on that project in the notes section by leaving the copy of
the old actions in the notes. At the end of the project we then
archive these notes to the client reference filing so we have a
record of what happened in stages if we wish).
If it's a complicated project that needs detailed planning, I
will draw up a list of actions and a proper plan and store this in
the reference filing for the project.
The next action will have the actual next action listed, and the
notes will have a reminder in it to look at the detailed project plan
- and possibly a hyperlink that I can click on to take me straight to the location of the reference files on our server to save time.
If it's a really simple project - with may be only 2 or 3 total
actions to complete - I use a greater than symbol ">" to show one
next action immmediately follows the next and both actions in the
eg task looks like this: Projectname , action1 > action2 @context
eg stack exchange answers, type answer > publish answer @pc
I'm not sure that my systems is 100% GTD but it works for us so far and I think that everyone has to do what works without losing the key aspects of the system.
(BTW we also use contexts in a slightly different way because a large proportion of what my team does is @pc or @phone so contexts like that would be a bit meaningless for us).