commit d7c1da981056cbb826dee8588b5b18d17b033f59 Author: xerus2000 <27jf@pm.me> Date: Sat Jun 13 01:18:31 2020 +0200 First strike diff --git a/README.md b/README.md new file mode 100644 index 0000000..7ab8b24 --- /dev/null +++ b/README.md @@ -0,0 +1,119 @@ +Months ago, I started my quest to refine task management. I was using Todoist at the time and wasn't satisfied. +I barely trusted it anymore - it was lacking capabilities I wanted, such as a wait date as well as a difference between scheduled and due. Since it is a proprietary service, extending it would have been very challenging. +I was also growing more accustomed and comfortable with the terminal and the UNIX philosophy. + +So I started exploring the CLI task managers and found [taskwarrior] - it seemed the perfect tool at first glance, with great customizability and control. But it too turned out to have some fundamental flaws. + +# The concept of trust + +I believe I first heard CGP Grey using this term, but I have not found it anywhere on the Internet with this meaning. + +Trusting a digital tool, such as a task manager, means you rely on it. If you don't trust a tool, you will use it less and tend towards alternatives e.g. pen and paper. +To build trust with a task manager, you need to put all your tasks in it and set it up in a way that fits your workflow. + +For that, a task management system needs to enable these three actions: +- quickly capture new information +- planning & reviewing +- retrieving tasks that should be done and can be done in the current context + +# Design + +The most important rule: Everything is a task. There is nothing else. + +Projects, Areas, Epics - they can all be mapped onto tasks, and doing so will allow you to leverage the same toolset on everything. +A project or epic is a completable task with subtasks - it can itself be a subtask. +If you want to divide your task list into areas, these can simply be uncompletable tasks at the root level. + +With everything being a task, areas and projects can also have all kinds of tags and attributes. And then subtasks may inherit these attributes (particularly tags). + +## Task attributes + +A task has attributes, and each attribute is of one of the following types: +- string, timestamp, number, date +- a list of each of these(or only string?) is possible as well +- it should be possible to restrict a property to a set of values (enum) + +Special attributes: +- id: string +- parent: string +- entered, modified: timestamp +- urgency: number-computed +- status: enum-string-computed +- virtual tags? +- completable: boolean + +Standard attributes: +- tags: list-string +- annotations: list-string +- wait,scheduled,due,until,recur: timestamp +- relativeRecur: boolean +- start,stop: timestamp + +Custom attributes +- priority, size: enum-string +- url: string + +## User Stories + +- areas +- housework projects +- GTD +- Agile + +## Reports I need + +- Review active projects +- Find out tasks to batch when going out +- Find things I can do when I am (outside watching the babies e.g. cut nails | focused, wanting to do some (writing|programming) in the morning | unfocused in the afternoon e.g. check mails | taking a break from work on the computer e.g. do laundry | eating/snacking something e.g. watch a video/read a paper | listening to an audiobook e.g. digging, hang out the laundry) + + +# Commands + + +`add ` - add a new task + +` add ` - add a new task with as parent + +## Selected Task + +If there is no selected task, the selected task is assumed to be an empty invisible root task + +`cd ` - select the given task (alternative names: open,select,ct("change task")) + +`show` - show details for the currently selected task (maybe also subtasks) + +`list` - list all direct subtasks + +`tree` - recursively list subtasks + +## More commands + +For more, see [taskwarrior] for now... + +# Inspirations + +## Taskwarrior + +I have been using [taskwarrior] for a few weeks now, but I am already starting to lose trust again. I don't work on most of the tasks I've entered, and if I do, I rarely remember checking them off. + +### Issues + +- A big issue holding me back is a missing notion of subtasks. You either have to use projects, dependencies or create a complete custom hack - either a script or hook. +- Recurrence is a longstanding issue, but can somewhat be solved by plugins: https://github.com/tbabej/task.shift-recurrence and https://github.com/JensErat/task-relative-recur +- UDAs have a lot less options than inbuilt properties +- CLI can be too verbose: I am missing some way to set shorthands for attributes, e.g. "p" for project, dates are rather inflexible +- Keeping all reports aligned with custom attributes is a hassle, since you can't base reports off each other +- ids shift around annoyingly, so you constantly have to look them up + +### What it does well + +- Great customizability with reports, UDAs, DOM etc +- Great extendability with hooks +- Integrates with many tools (e.g. vimwiki, powerlevel10k, timewarrior) + +# Links + +taskwarrior: https://taskwarrior.org/ +https://tasklite.org/related.html +https://www.wired.com/2016/03/best-to-do-list-app/ +