I gather that one could get somewhat close to this with some combination of org-agenda-files
and todo states. But I have quite a few questions about how to do this properly, and I wanted to point out something about GTD’s concept of “Next Actions” which I don’t think any tool I’ve seen so far gets right.
Next Actions and Projects
Your projects form a graph. A task might be shared between multiple projects. A task might depend on subtasks.
So, your “next actions” are actually a subset of TODOs. They are “sink nodes” in graph theoretic terms. Except not really – they can have dependencies, so long as as they’re complete.
A concrete Example
Let’s say I capture a note to “install a new curtain on the bathroom window”. Upon reflection, this has two subtask dependencies:
- Measure the window
- Purchase a new curtain
While I’ve listed these in a linear fashion, they actually have a dependency relationship. “Measure the window” happens before “Purchase a new curtain”, since I don’t know how big a curtain to buy until I’ve measured the window. If I were to represent this in a dotfile:
"Install New Curtain" -> "Purchase new Curtain" -> "Measure Bathroom Window"
The Punchline
Each of these tasks lives in a different context. Install / measure happens at home. Purchase is an errand.
I only want to see the “Purchase new Curtain” task in the “@errands” context. But I don’t want to see it until the “measure bathroom window” dependency has been completed. Once the curtain has been purchased, now “Install New Curtain” has no outstanding dependencies, and so it becomes a “next action” in its own right.
Possible Approach
I have yet to see a system that really gets this right.
I feel like it’s possible with org-roam
, but not really possible with org-agenda
, because TODO items aren’t nodes in their own right, but mere line items within a file. org-agenda
needs to be extended to so that any Project
node can also be a TODO
item.
To the degree that I’d use the existing agenda functionality, one has to consider what a list of TODO items means: is it “containment” (each item can be completed in parallel), or are lists sequenced (each item blocks the preceeding item)? What if you want to mix and match between both styles?