Specify custom id algorithm

This commit is contained in:
xerus2000 2020-09-26 21:55:58 +02:00
parent c8d0c93263
commit acd7639acb
3 changed files with 66 additions and 2 deletions

13
concepts.md Normal file
View File

@ -0,0 +1,13 @@
All task managers I have seen so far were quite opinionated. Since task management is a deeply personal matter, this likely yields many people to abandon these digital tools not long after embracing them.
To build trust in the system, it needs to be your system.
So the foundational principle of this task manager is to rely as little as possible on special mechanics, implementing all convenience behavior and specialized features in a generalized way, allowing to easily compose and customize them.
The
```
[tag]
big=size:l
break=size:s -pc
```

51
ids.md Normal file
View File

@ -0,0 +1,51 @@
# User-Ids
One important concept is to identify tasks effortlessly with recognizable, consistent alphabetical ids.
To distinguish them clearly from the unique ids (uuid/ulid) and potential ids of the plumber, they will henceforth be called user-ids.
These ids are always lowercase.
Note that they only have to unique among open tasks. Closed tasks loose their userid and will have a new one generated should they be reactivated.
1. Generate an index of the task description: An array of all uppercase letters and initials.
2. If there is a parent task with a user-id, take its first letter as start of the id. Remove the first letter of the index if it is identical.
3. Find consecutive letters (preferably among the uppercase letters) in the index that yield a unique id with a length of 2-3.
4. Take up to 3 letters of the description and see if they create a unique id.
5. Otherwise, find a random combination of 2-3 characters that isn't used yet.
Example:
Configure my ArchLinux properly
Index:
CmALp
Generated ids, in order:
ca
al
cal
cm
ma
lp
cma
mal
alp
co
con
If there is a parent with the id `c`:
ca
cl
cal
cm
cp
co
con
Taskwarrior UDA: userid

View File

@ -33,7 +33,7 @@ Maybe prefix internal values (ulid and state) with underscore. Does no interpret
## The task manager - [porcelain][plumbing]
Name ideas: Taskforc/Tofo
Name ideas: Taskforc/Tafo
Basically a parser & visualizer with a few quirks.
@ -41,7 +41,7 @@ Unknown commands are passed on to the plumber with potential parameter modificat
Reports & parameter configurations should support some kind of inheritance, i.e. allowing to create a new property/report that initially uses all values from its ancestor.
Automatically generates short ids for new tasks based on description - first initials, then following letters in case of collisions (e.g. "al" for "Arch Linux setup"), length may depend on whether there is a parent (root tasks get single letter if possible) unless an id is explicitly set.
Automatically generates short user-ids for new tasks based on description - first initials, then following letters in case of collisions (e.g. "al" for "Arch Linux setup"), length may depend on whether there is a parent (root tasks get single letter if possible) unless a user-id is explicitly set.
### Commands