(provide 'cce/org-agenda)When implementing a PARA Method system in Emacs I struggled mostly with trying to cohesively organize my data. I had a number of project-specific org files for large projects as well as a work.org for smaller projects and my work Habits a todo.org for personal projects and a number of calendars synced in to the system through org-gcal; I also included project directories with a bunch of org-mode files in them like the CCE so that work could be tracked within that project. Because my org-mode structure was heading-based[fn:1:Heading-based versus File-based Org] and I was consistently using Org's archiving functionality this was a pretty scalable method and it worked out well enough for what it was doing over-collecting[fn:2:The Collector's Fallacy].
My current PARA system simplifies down to a smaller number of files so that it can fit in to the file-based model of my current PARA Method system. The goal is simply to constrain the number of files and headings which org-agenda needs to look in. Previously I could simply say ~/org/ is an org-agenda-file. Now that would cause hundreds and eventually thousands of buffers to be opened to search for headings.
I use Dynamic and fast agendas to define my org-agenda-files rather than defining a short list here I hope it works and scales out.
My org-mode agendas can be much more simple than they have been I think because I've simplified my Tagging Principles and Project Management structure considerably. These pages describe the agendas I am implementing perhaps more fully than this page will after all this is only configuration.
Weekly Review agenda
Shopping list functions
(use-package org-agenda
:ensure nil
:init
(defun cce/org-agenda (&optional todo)
"show the preferred agenda -- prefix opens a tag match todo list"
(interactive "P")
(org-agenda nil (if todo "M" "a")))
:custom
(org-agenda-window-setup 'only-window)
(org-agenda-skip-timestamp-if-done t)
(org-agenda-skip-scheduled-if-done t)
(org-agenda-skip-deadline-if-done t)
:commands
(org-agenda)
:bind
(:map evil-leader--default-map
("a" . #'org-agenda)))