0.1.0 |
|
---|
#27 in #task-list
23 downloads per month
42KB
943 lines
Backlog
A simple human-readable line-based task system.
Motivation
To have local task lists with auto-sorting by metadata.
The default file operated on is todo.backlog
.
File format
A backlog task list:
- has one task per line
- can be arbitrarily ordered without altering its meaning
- all tasks either have a unique id, or no id
- all tasks have a status, either open, cut or done
The general format for a line is:
<status> <id> <description> <metadata>
Special elements
These elements have special meaning:
[x]
- Done (when at the start of a line)[!]
- Cut (when at the start of a line)#[1-9][0-9]*
an id for a task@
- Reserve for task options (when at the start of a line)
Metadata
Metadata on a line is given by a key name, followed by a colon, followed by a data element or comma separated list with no whitespace between elements.
Any element which doesn't match a metadata key:value pair is part of the task description.
General Format:
metadata_tag:elem1,elem2
Metadata examples
tags:abc,def,ghi Tags
deps:#123,#456,#6 Dependencies on other tasks
Other metadata types
risk:[1-9] Risk
pri:[1-9] Priority
est:[1-9][0-9]* Task estimate in minutes
Date extensions
These are being reconsidered along with the parser option flag @
to improve
customization support.
start:yyyy.MM.dd@HH.mm Start time
due:yyyy.MM.dd Due date
complete:yyyy.MM.dd Completion date
elapsed:[1-9][0-9]* Elapsed minutes on the task
Usage
Print tasks, sorted by priority
backlog
Adding a task
backlog add "Some high priority task I want to do pri:1"
Marking a specific task id as done
backlog finish 20
Cleanup task list ordering for easier tracking in git
This makes a great candidate for a precommit hook if you're storing a todo.backlog
in your git repo.
backlog clean
Dependencies
~3–13MB
~88K SLoC