sayanarijit / mind

A productive mind has an empty stack
https://mind.cli.rs
MIT License
47 stars 1 forks source link

Per project stacks #45

Closed bew closed 2 years ago

bew commented 2 years ago

Hello,

I don't use this tool (yet?) but it looks interesting in its simplicity! I was wondering if you considered the possibility of having multiple named stacks, by projects/topic for example.

mind i -n foo-project

There would be a default stack for anything put without specifying a stack name.

With a sort of meta stack named all, that lists the tasks of all stacks (with a prefix? suffix? Mentioning the stack name?). This one might need additional option to group the tasks by stack, or show all in order.

Will also need a cmd to list all stacks and empty a stack, maybe:

mind -l  #list 
mind remove-all -n foo-project
sayanarijit commented 2 years ago

Hi @bew, thanks for the suggestion. However, the goal of this tool isn't to group or organize tasks, rather it's to finish (oneshot/repeating) tasks as quickly as possible.

If there are enough tasks queued up that they need to be organized, the tasks probably need to be moved to a proper task manager/organiser/trello board, and then you can put a repeating reminder in mind to check that organizer regularly.

If this still doesn't work, for me, it just means that I'm doing something really wrong with my life, killing my creativity and productivity.

bew commented 2 years ago

Hmm ok, maybe I'm not seeing how I can use it yet. (and I may have explained it as a bad XY problem also ^^)

I was thinking maybe I could use it as a way to quickly jot down notes about the things I need to do for a given PR on a project for example, or things I'd like to do but that are not worth putting in a proper tracker..

And since I usually switch projects or things to do, that tool would need (I think) to be 'local' to a project. Instead of named stacks I was thinking about storing the tasks locally in the current (git) project maybe?

I know I can probably use other ways to do this, sometimes I make a TODOS.md file for me, or create a few TODO_dont_forget_to_do_this_thing empty files, so I see them when doing a git status.. But these aren't ideal.

What do you think? Not the right tool? Not the right approach? How do you do this? (if you do)

sayanarijit commented 2 years ago

Ah that's an interesting use case. Thanks for the explanation. I guess we can add support for per directory .mind to note down all project based tasks.

So far I did this by using the "edit" feature. Let's say I have a list of tasks to do in project x. So I'll add a task "finish project x tasks", then enter /e, and then note down all the tasks using the $EDITOR.

My motivation for this tool was similar to the points explained in the book "Getting Things Done" by David Allen. I wanted to note down everything that I need to do but I might forget (or give me anxiety that I might forget it) using a tool. The tool must be efficient enough that opening it itself and noting down the tasks doesn't become another task to do (which most of the js, web or gui based task managers simply can't do). So, whenever I have some task that I need to perform using my laptop I note them all down using this tool. No such pending task should give me anxiety.

So with this use case, I need all the tasks to be visible in one single screen. There shouldn't be any hidden task that will only appear when I press a button or when I use some cli option or when I'm in a specific directory. Only then I can relax when I see the todo list is empty.

So, what do you think? Should we still have project based todos?

sayanarijit commented 2 years ago

One thing we can do is, when there is a local .mind directory in the project directory, we will see only the project related tasks, but mind will automatically add that project path (as finish pending tasks in /path/to/project) to the global list of tasks so that we don't forget that there is a project with pending tasks.

sayanarijit commented 2 years ago

Expanding more on this, we can have a cli option mind init . which will create a .mind directory in the current directory. Now when we are in this directory or in a subdirectory of it, we will only see the tasks listed in it so that we can focus better.

For every addition or deletion of task in a specific project, mind will search for a .mind directory recursively in the parent directories. The first one found will be the parent project. So, whenever there are tasks in the child project, the parent project will have a reminder task to visit the child project. This way, the top most parent project will be the ~/.mind which will probably list a bunch of personal and non project related tasks and some reminder tasks to visit child projects.

Hmm I can see the clear picture. Almost too perfect 🤯

sayanarijit commented 2 years ago

Then we can have a command /move .. which will move the current task to parent project. And /move / or /move ~ will move the current task to the root project. I don't think there will be any use case where we'll need to move tasks from parent to child projects.

sayanarijit commented 2 years ago

Finally, we can make the project exploration even easier using an xplr plugin. Or by calling a directory browser from mind.

bew commented 2 years ago

My motivation for this tool was similar to the points explained in the book "Getting Things Done" by David Allen. I wanted to note down everything that I need to do but I might forget (or give me anxiety that I might forget it) using a tool.

I definitely have the same need! Another use case: I myself started a Zettelkasten this year, for long term notes and knowledge cards (it's really cool! I even started thinking/planning a rust helper tool, similar to neuron/zk/..), and was always a bit short of a nice/efficient way to dump my mind for all the cards I'd like write today for example.. I think I can use mind as well for this (:

Hmm I can see the clear picture. Almost too perfect 🤯

I have to say, I like what you describe!!

noting down the tasks doesn't become another task to do (which most of the js, web or gui based task managers simply can't do)

Exactly! "it's another task to do", and I'd even use mind to note that task down quickly without workflow interruption (from my editor, with a keybind for example)

sayanarijit commented 2 years ago

I myself started a Zettelkasten this year

Nice! Learned something new. What do you recommend for me to learn about Zettelkasten in detail?

bew commented 2 years ago

I myself started a Zettelkasten this year

Nice! Learned something new. What do you recommend for me to learn about Zettelkasten in detail?

https://zettelkasten.de/posts/overview/

I love this graph of notes (on a variant of Zettelkasten): https://notes.andymatuschak.org/z4SDCZQeRo4xFEQ8H4qrSqd68ucpgE6LU155C

For a very good gui tool, there is: https://obsidian.md/ For cli, use your text editor, its all markdown if you want! And navigate the graph / create web ui, with tools like:

Some more nice posts: https://zenkit.com/en/blog/a-beginners-guide-to-the-zettelkasten-method/ https://omxi.se/2015-06-21-living-with-a-zettelkasten.html

Now you can spend a loooot of time reading about this x)

sayanarijit commented 2 years ago

and probably others... (and mine.... one day....)

Can't wait :)

sayanarijit commented 2 years ago

As I learn more about it, I'm finding it interesting that, unknowingly, I also started something similar a few days back.

sayanarijit commented 2 years ago

Oh, it's probably getting out of topic, but I really need to recommend you to visit https://wiki.nikitavoloboev.xyz. It's overflowing with valuable knowledge. I didn't realize so far, but I believe this is also what we can call Zettelkasten?

bew commented 2 years ago

As I learn more about it, I'm finding it interesting that, unknowingly, I also started something similar a few days back.

Yeah it's a start!

https://wiki.nikitavoloboev.xyz. [...] I believe this is also what we can call Zettelkasten?

It's a pretty crazy archive of knowledge! I think it's not exactley a zettelkasten in the sense I know, the cards are each more atomic, linked to other atomic cards, the card UI you use should show you what other cards are linked to the current one (called back links), cards are tagged, and should not impose a structure (like all the topics on the left), but be more organic.. But yeah it may be inspired by this! (I see he has a card on Obsidian in his Tools section).

Oh, it's probably getting out of topic

👀 We can continue to talk on Matrix if you want! (my handle is simple: @bew:matrix.org)


Another verry nice Zettelkasten (in obsidian publish UI) https://publish.obsidian.md/alexisrondeau/Welcome+to+my+digital+garden 👉 https://publish.obsidian.md/alexisrondeau/Digital+Garden+%F0%9F%8C%B1%F0%9F%8C%B3%F0%9F%8D%87
sayanarijit commented 2 years ago

Let's track the progress here https://github.com/sayanarijit/mind/projects/2

sayanarijit commented 2 years ago

I'm halting/closing this project as this workflow doesn't work for me anymore.

The marketing guys / media are getting really good at their game and so, I need to develop a new, super secret, anti-destraction workflow which is beyond this dimension. I won't be posting about it, and definitely won't be making a public project implementing the workflow anytime soon.

Good luck people. Thanks for using mind.