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

**URL:** https://forum.systemcrafters.net/t/how-to-implement-gtd-next-actions-in-org-roam/1664
**Category:** Emacs
**Created:** [June 12, 2025, 9:25pm UTC](https://forum.systemcrafters.net/t/how-to-implement-gtd-next-actions-in-org-roam/1664 "2025-06-12T21:25:15Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![dotsony](https://avatars.discourse-cdn.com/v4/letter/d/90ced4/32.png) [@dotsony](https://forum.systemcrafters.net/u/dotsony)
#### Post date: [June 12, 2025, 9:25pm UTC](https://forum.systemcrafters.net/t/how-to-implement-gtd-next-actions-in-org-roam/1664/1 "2025-06-12T21:25:15Z")

</div>

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:

```dot
"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?

---

<div class="post-metadata">

### Author: ![dotsony](https://avatars.discourse-cdn.com/v4/letter/d/90ced4/32.png) [@dotsony](https://forum.systemcrafters.net/u/dotsony)
#### Post date: [June 16, 2025, 4:31am UTC](https://forum.systemcrafters.net/t/how-to-implement-gtd-next-actions-in-org-roam/1664/2 "2025-06-16T04:31:34Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![dgr](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/dgr/32/394_2.png) [@dgr](https://forum.systemcrafters.net/u/dgr)
#### Post date: [June 16, 2025, 10:11am UTC](https://forum.systemcrafters.net/t/how-to-implement-gtd-next-actions-in-org-roam/1664/3 "2025-06-16T10:11:16Z")

</div>

Is this the right module? [EmacsConf - 2020 - talks - the org-gtd package: opinions about Getting Things Done](https://emacsconf.org/2020/talks/11/)

---

<div class="post-metadata">

### Author: ![dotsony](https://avatars.discourse-cdn.com/v4/letter/d/90ced4/32.png) [@dotsony](https://forum.systemcrafters.net/u/dotsony)
#### Post date: [July 3, 2025, 5:11am UTC](https://forum.systemcrafters.net/t/how-to-implement-gtd-next-actions-in-org-roam/1664/4 "2025-07-03T05:11:04Z")

</div>

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.
