aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/design/module-inventory.org41
-rw-r--r--modules/hugo-config.el10
-rw-r--r--modules/org-agenda-config.el10
-rw-r--r--modules/org-babel-config.el10
-rw-r--r--modules/org-capture-config.el11
-rw-r--r--modules/org-config.el11
-rw-r--r--modules/org-contacts-config.el10
-rw-r--r--modules/org-drill-config.el9
-rw-r--r--modules/org-export-config.el10
-rw-r--r--modules/org-noter-config.el10
-rw-r--r--modules/org-refile-config.el11
-rw-r--r--modules/org-reveal-config.el10
-rw-r--r--modules/org-roam-config.el11
-rw-r--r--modules/org-webclipper.el9
-rw-r--r--tests/test-init-module-headers.el16
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.")