I guess it will be up to plug in developers to opt-in to such a standard.
I am personally discouraged by the direction of this convo, though. We’re talking about two things that are near and dear to my heart:
- The use of syntaxes. In my experience, memorizing and writing syntaxes is poison. The more syntax, the more toxic. There’s an old CS maxim for this:
Programs must be written for people to read, and only incidentally for machines to execute.
And the author was talking about code! What’s it say about us if our task lists aren’t even people-readable…?
- The ontology of task management. What is a task? If I’ve deferred a task, does it start on the defer date or afterwards? Does a task differ from a reminder? If a task is a reminder to complete a project, is it a project, a task, or a reminder? What does it mean if it’s all three?
If we’re really to go down this road, we need to bust out the UML and spend days/months crafting an ontology for task and project management. And I have some very strong opinions about the definition of e.g. projects, tasks, actions, reminders, events, deadlines, defer dates, start dates, end dates, due dates, and do dates…
I realize I’m being deconstructive here, but I think it’s necessary. All of these things—syntaxes and ontologies—are intensely personal. Everyone has a slightly different mental model for them. Standards that are overly prescriptive tend to be wrecking balls for personal mental models.
To try and pivot from being a downer, I think simpler is better.
For instance, here’s a simple “standard:” (Task) plugins should just always use daily note-format strings for dates.
Meanwhile, I propose the development of an interface (or something) for date-based metadata. There should be some way for Obsidian to build a calendrical model of a vault. That means:
- if a date (in daily note format) shows up in a block, relate the block and the date; and
- if a block, heading, or note reference shows up on a daily note, relate the block and the date.
How exactly those relations are defined should be up to the plugins that use the interface.
This would be useful beyond task management. It has implications for project management, historical studies, relationship management, basic calendar tooling, etc.
(I realize that some of this probably makes little sense—trying to get ideas out while doing childcare
)
Aside: In my own approach to a task management plugin (still vaporware at this point), I’m really hoping to make it intuitive and natural for users to manage date metadata. One way I’m planning to afford this is via daily note structure. E.g., if a task is referenced under a ## Due: heading on a daily note, it’s due that day. At the same time, if the project note’s YAML metadata includes a date in the due: field, all tasks in that project are due on that date. The user will use either approach (plus a UX to support it) to manage due date metadata. (Obviously, this will be a lot of work…)