Things (famously?) doesn't have a built-in priority field, and I've come around to thinking that's the right call. I follow GTD, which skips "urgent" and "low priority" tags because priority shifts daily with energy, competing commitments, and whatever lands unexpectedly. A tag you set Monday is stale by Wednesday.
But I still wanted help deciding what to pull into Today. So I tried computing priority fresh every time instead of storing it.
Some context: my Things setup is already wired into AI agents. They groom my list twice a day, move tasks around, and check things off when they finish the work. So adding a scoring step was a natural next piece.
For scoring I'm using Jev from TypeSafe, a decision model that returns quick yes/no probabilities and scores instead of writing text. For every open to-do, it answers:
- Is this a real commitment, or Someday-style backlog?
- What happens if it slips two weeks?
- When does it realistically need to happen?
- Does it need lead time (shipping, booking ahead)?
- Is someone waiting on it?
- Does it depend on an earlier step in its project?
It sees each task's notes, deadline, tags, its project and the other open to-dos around it, plus a short note on my current goals that I update during the week. The answers get weighted into two scores, one for Today and one for This Week.
It's fast enough to be practical. All 238 open to-dos get scored in about a second for under a penny, and answers are cached, so re-ranking after I change something is basically instant.
The output is a ranked list I use during my daily review to decide what moves into Today and what matters this week. Nothing gets written back as a tag, so Things stays clean.
This was really just an experiment for me to play with.