Moon-Jumper Tasks
Tasks
A task can take a list of conditions. It will only show up as active when all it's conditions are met.
Basic Fields
- Name: name of task
- Notes: additional notes, hyperlinks are automatically linked. Should add a task notation link too.
- Points: time/energy requirements of the task
- Label: task context
Read-Only / Computed Fields
- State
- Active: task can be worked on. It will show up in lists and when the priority is high enough, it will show up in the main list
- Backlog: tasks assigned to the backlog will never become active until they are removed.
- Pending: some pre-req hasn't been met.
- Group: Task is
- Date Active: when a task changes from pending or back log to active, this is updated.
- Date Complete: date when a task is marked as done
Conditions
- Date: when a task is given a date, it will not be active until after that date.
- Task: a task can be made dependent on other tasks, it won't be active until all dependent tasks are completed.
- Group Stage: a task can be added to a group, it is part of a stage. Only when all prior stages are complete can you work on that task
- Date Range: Takes two month/day and returns true for dates in between.
- Set: creates a set of conditions so that if you want several things to work off the same conditions, they can all be wired to the same set.
UI Conditions
- Button: Can only be pressed once.
- Switch: Can switch on and off.
UI conditions can themselves have display conditions. So a button can be set to not show up until some task is complete.
Maybe Conditions
- Weather: takes the users location and lets user exclude tasks based on certain weather conditions (temperature, rain probability). One catch is that this should not reset the active date.
Repeaters
A repeater returns the next date in a sequence, or returns nothing, indication end of repetition.
- Until: Will repeat until all it's conditions are met. Always returns today or nothing.
- Days: Repeats some number of days after completion
- Week: Repeats by day of the week.
- Month: Repeats by day of the month, negative means counting from the end of the month.
- Date: Takes a month/day.
Priority
This is always hard to get right.
I like the 4 priority stages I use. 3 normal levels and Now that means it always shows up in the main list (overriding point limits).
I'd like to add a hidden secondary priority. Each priority level forms a queue. When a task becomes active, it's set to the bottom of it's priority queue. You can also "Bump" a task to send it to the bottom of the priority queue.
- How would you promote a task?
- What to do when changing priority?
Label
Maybe do calendar import: Import a calendar and scale a labels point based on free time.