Skip to content

Chained tasks: the trigger revives a finished sibling and fires on KILL #5

Description

@stfl

agile-gtd-trigger-next-sibling writes TRIGGER: next-sibling todo!(NEXT). todo! sets the sibling's state unconditionally, so:

  • It revives finished work. Closing a task whose next sibling is already DONE or KILL moves that sibling back to NEXT.
  • It fires on KILL. Cancelling a step advances the chain as if the step were finished. During a cleanup that kills a whole project top-down, every kill promotes the next sibling before it is killed in turn (seen 2026-09-23 in emacs.org and homelab.org).

Fix

Promote only a sibling that is still waiting, and only on DONE:

if next-sibling todo?(TODO) then next-sibling todo!(NEXT) endif

The KILL case may need a self state check (if self todo?(DONE) …), or a decision that a kill should not advance the chain.

The functions write the property once, so existing headings keep the old form. agile-gtd-chain-task could offer to rewrite TRIGGERs it recognises.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions