TOGoS's System for Managing Notes and Tasks as of 2024-10

Table of Contents

Because having one big one for everything doesn't work.

Tracking notes and to-do items

My system has evolved over many years and so uses a bunch of different files in different formats spread across several Git repositories. The following glosses over the particulars to describe an idealized system that approximates what I am doing.

A theme here is that notes start out as short little notes to myself, then get systematically organized and possiibly refined later.

Only things that are important or immediately actionable become to-do items of any sort (either to do right now or that must be done by a certain date). Everything else can be written down so that I can review them later if I want and don't lose information, but I try not to pressure my future self into doing things unless they really must be done. Some might be written as 'tasks', but they are only hypothetical tasks that I might decide to do in the future, whose existence does not imply that they necessarily should be done.

On-the-go notes

If I'm not at my computer but have something I want to remember, I send myself Signal messages with various kinds of notes. They may be short-term to-do items, project ideas, phrases I overheard that would make for cool song titles, an observation regarding the state of the drywall in the hallway, or anything else.

As soon as I get home, the first order of business is to take all of those notes and 'put them away' where they belong. If there are a lof of them, 'ingest notes' might itself be a short-term to-do item.

Immediate tasks

Things I have decided to do in the next hour or so. These should be things that I am willing and able to do quickly, not things I think I should do, unless they are urgent.

These go at the bottom of today's timelog entry prefixed with - [ ]

Any tasks that are left unfinished are left behind for the next day, just as if I were writing in a paper notebook. This way I don't accumulate a long list of tasks that I am no longer thinking about and that might not even be relevant.

Daily ta-da list

When a task in today's timelog entry is done, I cross off the to-do items by changing [ ] to [X] (Orgdown-style) and move them to the end of the 'done' list at the top of the day's entry. For completeness I often add new items to the 'done' tasks (the 'tada list') to record things I happened to get done without ever having put them on the todo list. This can serve to 'seed the tada list' and increase my motivation to do more things.

Alternatively I sometimes add a more formal 'timelog' entry (because this file is also used to generate invoices) indicating the exact time I was working on a task, which includes a client/project/task code.

I have a special header to commemerate anything that feels like an especially large accomplishment with long-term effects, especially if it represents measurable progress on something that I've been stuck on or stressing about for a long time, major-accomplishment, whose value is some text describing the accomplishment, maybe with a task identifier.

Important but not immediate

Things like paying quarterly estimated taxes go in a =todo-list deadlines section that lives just past the latest daily log entry, ordered by due date. This way I can scroll down just a few lines to check if there's anything I need to be dealing with soon. If there is, and I feel up to taking it on right away, I might copy (not move!) it to today's to-do list.

Not having to scroll down very far to find the important deadlines is one reason the short-term task list should be kept short and reset daily. I have occasionally missed important deadlines due to this list being buried so far below my 'cursor of focus' (the top of today's to-do list) that I sort of forgot about it!

Random thoughts and ideas

It's important to jot these down right away so that I don't waste brain power holding the idea and details about it in my head.

For starters, I'll usually create a =thought entry above today's timelog entry. Something like

=thought 2024-10-24-formalization-of-todo-list
tags: documentation

Write a document describing your approach to keeping track of
tasks (and potential tasks, and other ideas) without becoming overwhelmed.

This was probably inspired by
[[https://youtu.be/RJaKQhIJ5yg?si=Ce5o_okysucElXCd][a funny and relatable video]]
that Renee sent me.

If/when I flesh the idea out more, the notes may be moved to a different file or a =project or =task entry (similar format but kept separate from my timelog for mostly-historical reasons). I might link from the =thought to the new location, or just remove the original entry entirely if it feels redundant.

Note that the text after the =thought is a unique (within my own digital garden, anyway) identifier that I can use to reference the concept from elsewhere, should I need to. e.g. I might note in a tada item that I wrote some notes about some idea and then fleshed it out more later, especially if it's something I spent a significant amount of time on.

Project documentation

For any project or task that is interesting or long-lived enough that I want to be able to refer to it later, or just that I want to write more about, I add an entry to one of a few different project list files with a unique ID and various metadata.

Metadata can be anything, but generally includes:

  • A short description or title
  • When the project was first written down
  • Its current status (todo, in-progress, done, tabled, cancelled) and when it got there
  • Links to related resources (documentation, CAD drawings, photos, etc)

Projects and tasks can depend on and/or be subtasks of other projects or tasks. In the context of this file, projects and tasks are both essentially the same thing, except that I try to reserve the term 'task' for things that can be done in one sitting.

I don't always break subtasks out into separate entries. Sometimes I make an org-style to-do list in the tef:content.

Aside: project-vs-project

The term 'project' seems to have two overlapping-but-not-exactly-the-same meanings:

  • Project as in 'compound task'
  • Project as in 'codebase' and/or 'the thing that is built'

I struggled for a while to come up with a word to differentiate these until ChatGPT recommended the term 'projbase' to mean 'project (codebase)'. I think I'll run with that for a while to see how it feels.

So the two words are:

project
project (task), a set of related tasks to be completed
projbase
project (codebase), a set of files that changes through time, usually corresponding to a Git repository (or, more likely, a group of redundant Git repositories that all store copies of the same data).

Current plan

A file where I write down 'stuff I plan to be working on in the medium term'. This is to remind myself what my current priorities are, in case I forget them.

Things like "go to gym every two days" and "only drink one cup of coffee per day" and "put a new coat of paint on the shelf every time you walk by" are included at the top.

About once a week seems a good cadence for starting a fresh one. My priorities can change drastically in a matter of days.

Originally this was a single file that I was "supposed to" clear and rewrite regularly, but I would sometimes put notes there that didn't have a good home otherwise, so I have switched to having a new one per month, which might still be too long a time period.

Room for improvement

Having said that, I am thinking that 'habits to remind myself to stick to' and 'medium-term project task planning' are different things that should work differently.

  • I should be forcibly reminded of routine lifestyle things (maybe with a limit of 5 active at a time) every day.
  • The project stuff should be forcibly cleared after a week of not doing it.

I am tempted to put a computer in charge of such things. (I'm sure there are 'apps' that do this. But I want to write it myself so it integrates with my overall system and doesn't add 'one more thing' that I have to deal with. Maybe it could have a built-in music alarm / sleep clock and pomodoro timer, too.)

Medium-term 'could-do' list

Is probably not worth the effort. I'll want to up with a new list tomorrow, anyway. Any further documentation about the ideas can be put in a =thought entry or a hypothetical project entry.

Short-term 'could-do' brainstorming

The idea here is to come up with a list of things I might do with some otherwise-free time. I don't have to do these things, so they are not tasks, and they are not formatted as if they are tasks.

This could be a section in today's timelog entry or, if it becomes a big (long or wide) list, it could be split into a =couldo-do-list entry or a separate (probably Org) file.

Files and formats

Notes on location and formats of the files that make up this system.

These are not important conceptually, but are here so I can link to them from elsewhere, and because I already wrote them.

Timelog file

This is one big TEF file per year, named like 2024/2024-timelog.txt in my timelog project.

A day's entry might look like:

= 2024-10-24 (Thursday)
major-accomplishment: to build a better Factorio Docker image that actually works
	(togos/factorio:3.4.5-fixed-2024.10-really-fixed)
	(M4909T-264)

	- [X] Get woken up by neighbor's stupidly loud lawnmower  >:(
	- [X] Drink coffee
	- [X] Play with cats
	- [X] Feed cows

11:15-13:15	tog/play/factorio	Play Factorio

	- [ ] Formalize to-do list system
	  - Draft in an org file; can put a doc on nuke24.net later
	- [ ] Make tea

Projects.tef (and similar)

TEF files documenting projects.

I have written a tool to process these, https://github.com/TOGoS/ListToDo27, which also includes some documentation about the format.

See also: SynthGen Update #5 and SynthGen Update #6, where I demonstrate its usage.

Format of each entry's content can be indicated with tef:content-type, I usually use Orgdown, so when unspecified, text/org can usually be assumed if it 'looks orgish'.

Example from Projects.tef:

=project WSPROJECT-200272
title: Set up Atlas saw in farmhouse basement
created: 2022-09-24
status: done

=project WSPROJECT-200273
title: Build pulley system to lower saw down stairs
subtask-of: WSPROJECT-200272
status: done

[2022-09-27T19]: Build the static block, threaded bailing twine around the copper pipes,
used it to lower the saw downstairs.  6 turns turned out to be overkill;
the saw's weight was not enough to counter the friction of the rope around the pipes,
so I had to loosen the rope a bit at each step.

Orgdown

The syntax of org-mode documents, without implying any particular tool to view/edit it.

MIME type: text/org (source).

See https://gitlab.com/publicvoit/orgdown.


v1.0.8 - 2024-11-29T13, exported from 202410-to-do-lists.org, last modified 2024-11-29T12:51:53