Understanding slice syntax

Speaking about searching for next available action I want to introduce the solution I came up with when I wanted to mimic the OmniFocus behavior for sequential and parallel projects.

From OmniFocus User’s Manual: Sequential projects have actions that need to be completed in a predetermined order. The first action needs to be completed before you can move on to the next. Parallel projects consist of actions that can be completed in any order. In a parallel project, all incomplete actions are available.

In TaskPaper 3 you can mimic this behavior by tagging sequential projects with @seq and searching for available tasks using the following syntax:

@seq//not @done[0] union not @seq//not @done intersect @type=task except @done//*

Tasks beyond the first available (not done) task in a sequential project are blocked, and will therefore not be shown. In parallel projects (those not tagged with @seq) all incomplete tasks will be displayed.

Here is an example document consisting of one sequential (Conference) and one parallel (Project meeting) project:

Conference: @seq
    - Submit abstract @done(2017-01-01)
    - Register to the conference
    - Book a hotel room
    - Book a flight
    - Prepare presentation slides
Project meeting:
    - Select and invite participants @done(2017-07-10)
    - Prepare and distribute meeting agenda
    - Book conference room
    - Print handouts for attendees

Querying the document using the above-mentioned search syntax will give you:

Conference: @seq
    - Register to the conference
Project meeting:
    - Prepare and distribute meeting agenda
    - Book conference room
    - Print handouts for attendees
6 Likes