diff options
| -rw-r--r-- | docs/design/module-inventory.org | 41 | ||||
| -rw-r--r-- | modules/hugo-config.el | 10 | ||||
| -rw-r--r-- | modules/org-agenda-config.el | 10 | ||||
| -rw-r--r-- | modules/org-babel-config.el | 10 | ||||
| -rw-r--r-- | modules/org-capture-config.el | 11 | ||||
| -rw-r--r-- | modules/org-config.el | 11 | ||||
| -rw-r--r-- | modules/org-contacts-config.el | 10 | ||||
| -rw-r--r-- | modules/org-drill-config.el | 9 | ||||
| -rw-r--r-- | modules/org-export-config.el | 10 | ||||
| -rw-r--r-- | modules/org-noter-config.el | 10 | ||||
| -rw-r--r-- | modules/org-refile-config.el | 11 | ||||
| -rw-r--r-- | modules/org-reveal-config.el | 10 | ||||
| -rw-r--r-- | modules/org-roam-config.el | 11 | ||||
| -rw-r--r-- | modules/org-webclipper.el | 9 | ||||
| -rw-r--r-- | tests/test-init-module-headers.el | 16 |
15 files changed, 172 insertions, 17 deletions
diff --git a/docs/design/module-inventory.org b/docs/design/module-inventory.org index ea9ecda3..aa6d3c1f 100644 --- a/docs/design/module-inventory.org +++ b/docs/design/module-inventory.org @@ -29,7 +29,8 @@ This inventory is independent from the helper inventory owned by - Batch 4 (UI / core-UX modules, Layer 2): classified. 10 modules. - Batch 5 (Dev entry-points, diff, help, lint, VC, Layer 2): classified. 9 modules. - Batch 6 (Programming modules, Layer 2-4): classified. 10 modules. -- 52 of 102 modules classified. +- Batch 7 (Org modules, Layer 3-4): classified. 13 modules. +- 65 of 102 modules classified. - No load-order changes have been made; =init.el= keeps its current eager order. * Legend @@ -156,6 +157,29 @@ by major mode (Phase 6); prog-training is optional and already autoloads. | =prog-shell= | 3 | D/P/S | eager | mode | none | 5 add-hook (after-save executable hook flagged) | yes | | =prog-training= | 4 | O/D/P | eager | command | none | package config (autoloaded) | yes | +** Batch 7 — Org modules (Layer 3-4) + +The daily Org workflows (config, agenda, capture, refile, roam) stay eager per +the spec's Phase 6 target. Babel and contacts move to after-load; export, +reveal, drill, noter, webclipper, and hugo become command-loaded. The agenda +and refile idle-timer caches are the side effects the spec tracks separately. + +| Module | Layer | Cat | Current | Target | Runtime requires | Top-level side effects | Direct load | +|--------+-------+-----+---------+--------+------------------+------------------------+-------------| +| =org-config= | 3 | C/D/P | eager | eager | keybindings | org-protocol, cj/custom-keymap binding, package config | yes | +| =org-agenda-config= | 3 | D/S | eager | eager | user-constants, system-lib, cj-cache-lib | add-hook, idle-timer agenda cache | yes | +| =org-babel-config= | 3 | D/P | eager | after-load | none | 1 global key, package config | yes | +| =org-capture-config= | 3 | D/P | eager | eager | none | capture templates, org-protocol handlers | yes | +| =org-contacts-config= | 3 | D/P | eager | after-load | user-constants | 1 global key, package config | yes | +| =org-drill-config= | 4 | O/D/P | eager | command | user-constants, keybindings | drill keymap under cj/custom-keymap | yes | +| =org-export-config= | 3 | D/P | eager | command | system-lib | package config | yes | +| =org-noter-config= | 4 | O/D/P | eager | command | cl-lib, user-constants, keybindings | add-hook, keymap under cj/custom-keymap | yes | +| =org-refile-config= | 3 | D/S | eager | eager | system-lib, cj-cache-lib | idle-timer refile cache | yes | +| =org-reveal-config= | 4 | O/D/P | eager | command | none | package config | yes | +| =org-roam-config= | 3 | D/P/S | eager | eager | user-constants | 1 global key, roam db setup, package config | yes | +| =org-webclipper= | 4 | O/D/P | eager | command | none | org-protocol handler | yes | +| =hugo-config= | 3 | D/P | eager | command | user-constants, host-environment | package config | yes | + * Hidden dependencies found Discoveries that belong to Phase 2 (make dependencies explicit). Recorded here, @@ -184,7 +208,7 @@ not fixed here. * Pending classification -The remaining 50 modules required by =init.el=, awaiting per-module inspection. +The remaining 37 modules required by =init.el=, awaiting per-module inspection. Each batch reads these against their source and moves them into [[*Classified modules][Classified modules]] with a load-graph header. Suggested batch order follows the spec: text/editing command modules, then UI, then programming, then @@ -206,7 +230,6 @@ Org, then optional integrations. - [ ] games-config - [ ] gloss-config - [ ] httpd-config -- [ ] hugo-config - [ ] jumper - [ ] latex-config - [ ] linear-config @@ -215,18 +238,6 @@ Org, then optional integrations. - [ ] mail-config - [ ] markdown-config - [ ] music-config -- [ ] org-agenda-config -- [ ] org-babel-config -- [ ] org-capture-config -- [ ] org-config -- [ ] org-contacts-config -- [ ] org-drill-config -- [ ] org-export-config -- [ ] org-noter-config -- [ ] org-refile-config -- [ ] org-reveal-config -- [ ] org-roam-config -- [ ] org-webclipper - [ ] pdf-config - [ ] quick-video-capture - [ ] reconcile-open-repos diff --git a/modules/hugo-config.el b/modules/hugo-config.el index 1feaa452..94be9dd5 100644 --- a/modules/hugo-config.el +++ b/modules/hugo-config.el @@ -2,6 +2,16 @@ ;; author: Craig Jennings <c@cjennings.net> ;;; Commentary: +;; +;; Layer: 3 (Domain Workflow). +;; Category: D/P. +;; Load shape: eager. +;; Eager reason: none; blog publishing is a command-loaded deferral candidate +;; for Phase 4. +;; Top-level side effects: package configuration via use-package. +;; Runtime requires: user-constants, host-environment. +;; Direct test load: yes. +;; ;; Integrates ox-hugo for publishing Org files to a Hugo website. ;; ;; One-file-per-post workflow: diff --git a/modules/org-agenda-config.el b/modules/org-agenda-config.el index 231eff8a..3fa09708 100644 --- a/modules/org-agenda-config.el +++ b/modules/org-agenda-config.el @@ -3,6 +3,16 @@ ;; ;;; Commentary: ;; +;; Layer: 3 (Domain Workflow). +;; Category: D/S. +;; Load shape: eager. +;; Eager reason: daily agenda workflow; the user expects agenda available at the +;; first session. +;; Top-level side effects: one add-hook and an idle timer that builds the agenda +;; file cache 10s after startup (guarded; spec tracks the cache lifecycle). +;; Runtime requires: user-constants, system-lib, cj-cache-lib. +;; Direct test load: yes. +;; ;; Performance: ;; - Caches agenda file list to avoid scanning projects directory on every view ;; - Cache builds asynchronously 10 seconds after Emacs startup (non-blocking) diff --git a/modules/org-babel-config.el b/modules/org-babel-config.el index b3a3036a..821403a0 100644 --- a/modules/org-babel-config.el +++ b/modules/org-babel-config.el @@ -2,6 +2,16 @@ ;; author: Craig Jennings <c@cjennings.net> ;;; Commentary: +;; +;; Layer: 3 (Domain Workflow). +;; Category: D/P. +;; Load shape: eager. +;; Eager reason: none necessary; Babel language setup belongs after Org loads +;; (after-load deferral candidate). +;; Top-level side effects: one global key, package configuration via use-package. +;; Runtime requires: none (configures packages via use-package). +;; Direct test load: yes. +;; ;; All Org-Babel and Org-Tempo Packages, Settings, and Languages. ;;; Code: diff --git a/modules/org-capture-config.el b/modules/org-capture-config.el index 39cafe03..43b42b5e 100644 --- a/modules/org-capture-config.el +++ b/modules/org-capture-config.el @@ -2,6 +2,17 @@ ;; author: Craig Jennings <c@cjennings.net> ;;; Commentary: +;; +;; Layer: 3 (Domain Workflow). +;; Category: D/P. +;; Load shape: eager. +;; Eager reason: capture is a daily hot path; org-protocol capture handlers must +;; be registered for external capture to work. +;; Top-level side effects: capture templates and org-protocol handlers via +;; use-package. +;; Runtime requires: none (configures packages via use-package). +;; Direct test load: yes. +;; ;; Customizations related to org-capture and org-refile. ;; Includes capture templates for tasks, links, PDFs, EPUBs, emails, and drill questions. diff --git a/modules/org-config.el b/modules/org-config.el index a2615b0c..8ebfdbdb 100644 --- a/modules/org-config.el +++ b/modules/org-config.el @@ -1,7 +1,16 @@ ;;; org-config --- Settings and Enhancements to Org Mode -*- lexical-binding: t; coding: utf-8; -*- ;; author Craig Jennings <c@cjennings.net> ;;; Commentary: - +;; +;; Layer: 3 (Domain Workflow). +;; Category: C/D/P. +;; Load shape: eager. +;; Eager reason: core Org behavior and org-protocol setup; a daily-driver hot path. +;; Top-level side effects: org-protocol setup, a cj/custom-keymap binding, +;; package configuration via use-package. +;; Runtime requires: keybindings. +;; Direct test load: yes (requires keybindings explicitly). +;; ;; note: org-archive-location is set in the :config section after org loads ;;; Code: diff --git a/modules/org-contacts-config.el b/modules/org-contacts-config.el index ff14629b..bd39b6e8 100644 --- a/modules/org-contacts-config.el +++ b/modules/org-contacts-config.el @@ -2,6 +2,16 @@ ;; author: Craig Jennings <c@cjennings.net> ;; ;;; Commentary: +;; +;; Layer: 3 (Domain Workflow). +;; Category: D/P. +;; Load shape: eager. +;; Eager reason: none necessary; belongs after Org/mail load (after-load +;; deferral candidate). +;; Top-level side effects: one global key, package configuration via use-package. +;; Runtime requires: user-constants. +;; Direct test load: yes. +;; ;; Configuration for org-contacts, providing contact management within org-mode. ;; Integrates with mu4e for email address completion and org-roam for linking ;; contacts to projects and notes. diff --git a/modules/org-drill-config.el b/modules/org-drill-config.el index c3852ed1..b695619c 100644 --- a/modules/org-drill-config.el +++ b/modules/org-drill-config.el @@ -2,6 +2,15 @@ ;; author: Craig Jennings <c@cjennings.net> ;;; Commentary: ;; +;; Layer: 4 (Optional). +;; Category: O/D/P. +;; Load shape: eager. +;; Eager reason: none; optional flashcard workflow, a command-loaded deferral +;; candidate for Phase 4. +;; Top-level side effects: defines a drill keymap, registers it under cj/custom-keymap. +;; Runtime requires: user-constants, keybindings. +;; Direct test load: yes (requires keybindings explicitly). +;; ;; Notes: Org-Drill ;; `C-; D s' picks a flashcard file from `drill-dir' and starts a session; ;; `C-u C-; D s' lets you pick the directory first. `C-; D f' drills diff --git a/modules/org-export-config.el b/modules/org-export-config.el index 0cf0af15..493316f9 100644 --- a/modules/org-export-config.el +++ b/modules/org-export-config.el @@ -2,6 +2,16 @@ ;; author: Craig Jennings <c@cjennings.net> ;; ;;; Commentary: +;; +;; Layer: 3 (Domain Workflow). +;; Category: D/P. +;; Load shape: eager. +;; Eager reason: none; export backends/processes are a command-loaded deferral +;; candidate for Phase 4. +;; Top-level side effects: package configuration via use-package. +;; Runtime requires: system-lib. +;; Direct test load: yes. +;; ;; This module configures Org mode's export capabilities, providing multiple ;; backend options for converting Org documents to various formats. ;; diff --git a/modules/org-noter-config.el b/modules/org-noter-config.el index ca8432a2..6504550f 100644 --- a/modules/org-noter-config.el +++ b/modules/org-noter-config.el @@ -2,6 +2,16 @@ ;;; Commentary: ;; +;; Layer: 4 (Optional). +;; Category: O/D/P. +;; Load shape: eager. +;; Eager reason: none; PDF/EPUB note-taking is a command-loaded deferral +;; candidate for Phase 4. +;; Top-level side effects: one add-hook, defines a keymap, registers under +;; cj/custom-keymap. +;; Runtime requires: cl-lib, user-constants, keybindings. +;; Direct test load: yes (requires keybindings explicitly). +;; ;; Org-noter configuration for taking notes on PDF and EPUB documents. ;; ;; Workflow: diff --git a/modules/org-refile-config.el b/modules/org-refile-config.el index 3c3cc7da..a6b7ac3a 100644 --- a/modules/org-refile-config.el +++ b/modules/org-refile-config.el @@ -1,6 +1,17 @@ ;;; org-refile-config.el --- Org Refile Customizations -*- lexical-binding: t; coding: utf-8; -*- ;; author: Craig Jennings <c@cjennings.net> ;;; Commentary: +;; +;; Layer: 3 (Domain Workflow). +;; Category: D/S. +;; Load shape: eager. +;; Eager reason: daily refile workflow; the user expects refile targets ready at +;; the first session. +;; Top-level side effects: an idle timer that builds the refile-target cache +;; (guarded; spec tracks the cache lifecycle). +;; Runtime requires: system-lib, cj-cache-lib. +;; Direct test load: yes. +;; ;; Configuration and custom functions for org-mode refiling. ;; ;; Performance: diff --git a/modules/org-reveal-config.el b/modules/org-reveal-config.el index 89d5480e..bc002276 100644 --- a/modules/org-reveal-config.el +++ b/modules/org-reveal-config.el @@ -2,6 +2,16 @@ ;; author: Craig Jennings <c@cjennings.net> ;;; Commentary: +;; +;; Layer: 4 (Optional). +;; Category: O/D/P. +;; Load shape: eager. +;; Eager reason: none; presentation export is a command-loaded deferral +;; candidate for Phase 4. +;; Top-level side effects: package configuration via use-package. +;; Runtime requires: none (configures packages via use-package). +;; Direct test load: yes. +;; ;; Integrates ox-reveal for creating reveal.js presentations from Org files. ;; ;; Fully offline workflow using a local reveal.js clone (managed by diff --git a/modules/org-roam-config.el b/modules/org-roam-config.el index c6e8977f..fdd9e1fc 100644 --- a/modules/org-roam-config.el +++ b/modules/org-roam-config.el @@ -1,6 +1,17 @@ ;;; org-roam-config.el --- Org-Roam Config -*- lexical-binding: t; coding: utf-8; -*- ;; author: Craig Jennings <c@cjennings.net> ;;; Commentary: +;; +;; Layer: 3 (Domain Workflow). +;; Category: D/P/S. +;; Load shape: eager. +;; Eager reason: daily knowledge-management workflow; capture/finalize hooks and +;; the roam database. +;; Top-level side effects: one global key, org-roam database setup, package +;; configuration via use-package. +;; Runtime requires: user-constants. +;; Direct test load: yes. +;; ;; Configuration and utilities for org-roam knowledge management. ;; ;; Key features: diff --git a/modules/org-webclipper.el b/modules/org-webclipper.el index 2a6d7164..9c2f1061 100644 --- a/modules/org-webclipper.el +++ b/modules/org-webclipper.el @@ -2,6 +2,15 @@ ;;; Commentary: ;; +;; Layer: 4 (Optional). +;; Category: O/D/P. +;; Load shape: eager. +;; Eager reason: none; web clipping runs via org-protocol/command, a Phase 4 +;; protocol/command-loaded deferral candidate. +;; Top-level side effects: org-protocol handler registration via use-package. +;; Runtime requires: none (configures packages via use-package). +;; Direct test load: yes. +;; ;; This package provides a seamless "fire-and-forget" workflow for clipping ;; web pages from the browser directly into an Org file using org-protocol ;; and org-web-tools. diff --git a/tests/test-init-module-headers.el b/tests/test-init-module-headers.el index 7ab99448..267a9155 100644 --- a/tests/test-init-module-headers.el +++ b/tests/test-init-module-headers.el @@ -78,7 +78,21 @@ "prog-json" "prog-yaml" "prog-shell" - "prog-training") + "prog-training" + ;; Batch 7 — Org modules (Layer 3-4) + "org-config" + "org-agenda-config" + "org-babel-config" + "org-capture-config" + "org-contacts-config" + "org-drill-config" + "org-export-config" + "org-noter-config" + "org-refile-config" + "org-reveal-config" + "org-roam-config" + "org-webclipper" + "hugo-config") "Modules annotated with the load-graph header contract. Grows one batch at a time. Parity with the init.el require set is the Phase 1 exit criterion.") |
