It's an experimental approach to ordinary todos. There are plenty of good tools like taskwarrior, but their features are hardcoded task body is huge — you either dig through hundreds of features to find what you need, or something you need is too niche, so it will make no sense to hard code it for devs.
So, I decided to try a different approach as an experiment: keep the task model super simple (id,title, status,calldata), but let tasks have executable instructions.
That way almost any custom behavior becomes possible — tasks depending on other tasks, tasks modifying other tasks or creating new ones, recurring, self-deleting tasks, task that monitoring new tasks creation and creates alert task, or increase priority of older tasks etc.
The tradeoff is complexity for flexibility, like vim/helix vs zed or atom.
To make that work a tiny virtual machine is needed and a set of opcodes. So this vm can be a basis for some todo app.
Would you care to explain to an average dumb developer like me what’s the point of all this and what actual end user problem does it solve?
It's an experimental approach to ordinary todos. There are plenty of good tools like taskwarrior, but their features are hardcoded task body is huge — you either dig through hundreds of features to find what you need, or something you need is too niche, so it will make no sense to hard code it for devs. So, I decided to try a different approach as an experiment: keep the task model super simple (id,title, status,calldata), but let tasks have executable instructions. That way almost any custom behavior becomes possible — tasks depending on other tasks, tasks modifying other tasks or creating new ones, recurring, self-deleting tasks, task that monitoring new tasks creation and creates alert task, or increase priority of older tasks etc. The tradeoff is complexity for flexibility, like vim/helix vs zed or atom. To make that work a tiny virtual machine is needed and a set of opcodes. So this vm can be a basis for some todo app.
duplicating link to a repo since it is not clickable in body: https://github.com/tracyspacy/spacydo