aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-24 17:07:34 -0500
committerCraig Jennings <c@cjennings.net>2026-05-24 17:07:34 -0500
commit63c60fefd4d03ba22d3a36f793fe466daae43c7e (patch)
tree1f174f9e6c745b90675cee1a9b688c485db96591 /todo.org
parentf84bba186dca1543f9c5f02c03af355188b6e87c (diff)
downloaddotemacs-63c60fefd4d03ba22d3a36f793fe466daae43c7e.tar.gz
dotemacs-63c60fefd4d03ba22d3a36f793fe466daae43c7e.zip
docs(todo): close module-classification task, split out elfeed-config
Rewrote the classify-modules child as a dated log entry now that 101 of 102 modules carry load-graph headers. Pulled the lone deferral — annotating elfeed-config — into its own task, blocked on the elfeed test-byte-compile fix.
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org20
1 files changed, 4 insertions, 16 deletions
diff --git a/todo.org b/todo.org
index d3d6cb94..8c6ab7be 100644
--- a/todo.org
+++ b/todo.org
@@ -384,23 +384,11 @@ Verify 2026-05-04:
- Parsed the spec and =todo.org= with =org-element=.
- Committed the tracked spec as =0528475=.
-**** DOING [#B] Classify modules by role and startup requirement :refactor:
-
-Create a simple inventory, probably in =docs/design/= or an org note linked
-from this task:
-- Pure library modules: should have explicit =require=s, no top-level keybinds,
- no timers, no package install/load side effects.
-- Package configuration modules: mostly =use-package=, hooks, mode bindings.
-- Startup side-effect modules: server startup, timers, dashboard, weather,
- calendar auto-sync, quick-video setup, etc.
-- User command modules: expose interactive commands but defer heavy package
- loading until the command runs.
+**** 2026-05-24 Sun @ 17:07:03 -0500 Classified modules by role and startup requirement
+Built [[file:docs/design/module-inventory.org][docs/design/module-inventory.org]] across 9 batches: 101 of 102 init.el-required modules annotated with the load-graph header contract (Layer, Category, Load shape, Eager reason, Top-level side effects, Runtime requires, Direct test load) and tabulated in the inventory. Added =tests/test-init-module-headers.el= to enforce the contract on each classified module. Retired the three vague =init.el= comments (latex-config WIP, prog-shell "combine elsewhere", "Modules In Test" banner) into real tasks. Recorded seven hidden =cj/custom-keymap= / cross-module dependencies for the Phase 2 dependency pass. Tagged the span =load-graph-classify-start..load-graph-classify-end=. elfeed-config is the one module left, pulled to its own task below.
-Acceptance criteria:
-- Every module has an assigned category.
-- Any module that must be eager has a documented reason.
-- Obvious "modules in test" or "WIP need to fix" comments in =init.el= are
- either retired or turned into actual tasks.
+**** TODO [#B] Annotate elfeed-config load-graph header :refactor:
+The single init.el module left unclassified. Its source is read and understood (Layer 4, O/D/P, command-loaded; runtime requires user-constants, system-lib, media-utils) and documented under "Deferred classification" in the inventory, but annotating its header triggers the PostToolUse byte-compile, which breaks =tests/test-elfeed-config-helpers.el=. Blocked on the "Make elfeed-config tests byte-compile-safe" task. Once that lands: add the 7-line header, move the module from "Deferred classification" into a Batch table in the inventory, and add it to the validation allowlist.
**** TODO [#B] Add explicit module dependencies before changing load order :refactor: