I have several parent-level tasks that I manage as projects so I've created TODO keywords to support project management as follows.

(setq org-todo-keywords
  '((sequence "TODO" "NEXT(n)" "DOING(!)" "|" "DONE(d)")
   (sequence "WAITING(w@/!)" "HOLD(h@/!)" "DELEGATED" "|" "DONE")
   (sequence "NEW" "PLANNING(p@/!)" "EXECUTION(x!)" "|" "COMPLETE(c)")

Each project will have a set of sub-tasks that I use the TODO NEXT DOING DONE states, such as the following.

* PLANNING This is a project
** TODO this is a project task
** NEXT this is another task

The behaviour I am seeing is that when I change the state of one of the sub-tasks, the parent 'project' task changes to TODO from it's current state. What I would like to do is customize this to at least stop this behaviour i.e. a sub-task should not change the state of the project level task. Ideally, though, I would like to see if it's possible to have the project level task state change to COMPLETE when all the child tasks are set to DONE. Any help here would be greatly appreciated!

1 Answer 1


To prevent a parent task from being resolved while it has unresolved child tasks, take a look at the org manual section on TODO dependencies. The relevant setting is org-enforce-todo-dependencies.

Using your example settings I cannot reproduce the behavior where updating a child task is somehow changing the parent task. Do you have other config settings related to org mode?

  • Thanks for the response. After some more playing around, I noticed that the behaviour only happens when I have sub-task tracking set with [/]. Without it the TODO keywords stay the same. I'm going to try setting the org-enforce-todo-dependencies variable and see if this works with sub-task tracking.
    – darkhelmet
    Commented Jun 4, 2017 at 0:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.