How to implement: GTD "Next Actions" in Org Roam

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?

1 Like

Replying to my own post here:

org-gtd

This is an opinonated GTD workflow built atop org-roam and edna. It doesn’t really integrate with org-roam, though nothing stops you using the two together. The main things is that edna can express dependencies between tasks, and trigger actions.

This is a bit more “imperative” than I’d like, but it’s a possible way to do what I’m trying to do right now.

Is this the right module? EmacsConf - 2020 - talks - the org-gtd package: opinions about Getting Things Done

I think so. I’ve been lurking on the project discord for a while. V4 is supposed to implement some missing features, and move towards a true task graph.

1 Like