aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-24 16:30:20 -0500
committerCraig Jennings <c@cjennings.net>2026-05-24 16:30:20 -0500
commit61dad3bd7b327eb0cf5bb3a6a0421a7055ed126b (patch)
treed6461d99b3c0842880a1d10f885387587113c331 /docs
parente1789025131b048049777542a91fb7eb55195ce5 (diff)
downloaddotemacs-61dad3bd7b327eb0cf5bb3a6a0421a7055ed126b.tar.gz
dotemacs-61dad3bd7b327eb0cf5bb3a6a0421a7055ed126b.zip
docs(load-graph): classify dev, diff, help, lint, and VC modules
Fifth classification batch: the development-workflow entry points and package config — coverage-core, coverage-elisp, dev-fkeys, diff-config, help-config, help-utils, flycheck-config, test-runner, vc-config. I annotated each header, added a Batch 5 table to the inventory, and extended the validation allowlist. 42 of 102 modules are now classified. Two more hidden dependencies turned up, both about cj/custom-keymap. dev-fkeys repeats the custom-buffer-file boundp shim for its C-; P binding. flycheck-config binds (:map cj/custom-keymap ...) through use-package without requiring keybindings, so it fails to load standalone. Both recorded for the Phase 2 dependency pass.
Diffstat (limited to 'docs')
-rw-r--r--docs/design/module-inventory.org37
1 files changed, 26 insertions, 11 deletions
diff --git a/docs/design/module-inventory.org b/docs/design/module-inventory.org
index 9a6a147f..dbde1557 100644
--- a/docs/design/module-inventory.org
+++ b/docs/design/module-inventory.org
@@ -27,7 +27,8 @@ This inventory is independent from the helper inventory owned by
- Batch 2 (Text/editing command modules, Layer 2): classified. 9 modules.
- Batch 3 (Core libraries and command modules): classified. 7 modules.
- Batch 4 (UI / core-UX modules, Layer 2): classified. 10 modules.
-- 33 of 102 modules classified.
+- Batch 5 (Dev entry-points, diff, help, lint, VC, Layer 2): classified. 9 modules.
+- 42 of 102 modules classified.
- No load-order changes have been made; =init.el= keeps its current eager order.
* Legend
@@ -118,6 +119,23 @@ eager reason and stay eager.
| =dashboard-config= | 2 | C/S | eager | eager | none | builds/opens dashboard buffer at startup | conditional |
| =nerd-icons-config= | 2 | C/P | eager | eager | none | package config | yes |
+** Batch 5 — Dev entry-points, diff, help, lint, VC (Layer 2)
+
+Command entry points and package config for the development workflow: coverage
+(F7), F-keys (F4/F6), diff, help, lint, the ERT runner, and Magit.
+
+| Module | Layer | Cat | Current | Target | Runtime requires | Top-level side effects | Direct load |
+|--------+-------+-----+---------+--------+------------------+------------------------+-------------|
+| =coverage-core= | 2 | C/L | eager | eager | seq, subr-x, system-lib | 1 global key (F7) | yes |
+| =coverage-elisp= | 2 | C/P | eager | eager | coverage-core | backend registration | yes |
+| =dev-fkeys= | 2 | C | eager | eager | cl-lib, system-lib | 6 F-key bindings; C-; P boundp-guarded | conditional |
+| =diff-config= | 2 | C/P | eager | eager | none | package config | yes |
+| =help-config= | 2 | C/P | eager | eager | none | 2 global keys, package config | yes |
+| =help-utils= | 2 | L/D | eager | command | none | 1 global key, package config | yes |
+| =flycheck-config= | 2 | C/P | eager | hook | none (needs keybindings for :map) | package config; cj/custom-keymap :map binding | conditional |
+| =test-runner= | 2 | C/L | eager | eager | ert, cl-lib, keybindings | test keymap under cj/custom-keymap | yes |
+| =vc-config= | 2 | C/P | eager | eager | user-constants, keybindings | 2 keymaps under cj/custom-keymap, package config | yes |
+
* Hidden dependencies found
Discoveries that belong to Phase 2 (make dependencies explicit). Recorded here,
@@ -137,10 +155,16 @@ not fixed here.
is nil and the binding silently drops. That guard is the
"define-if-not-present" shim the spec warns against. Phase 2/3 fix: require
keybindings (or use the registration API once it exists) and drop the guard.
+- =dev-fkeys= uses the same =(when (boundp 'cj/custom-keymap) ...)= shim plus an
+ =eval-when-compile= declaration for its =C-; P= binding, so the binding
+ silently drops when loaded without keybindings. Same Phase 2/3 fix.
+- =flycheck-config= binds =(:map cj/custom-keymap ...)= through use-package but
+ does not require keybindings, so the binding fails when the module loads
+ standalone. Phase 2 fix: require keybindings (or move to the registration API).
* Pending classification
-The remaining 69 modules required by =init.el=, awaiting per-module inspection.
+The remaining 60 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
@@ -152,22 +176,15 @@ Org, then optional integrations.
- [ ] calendar-sync
- [ ] calibredb-epub-config
- [ ] chrono-tools
-- [ ] coverage-core
-- [ ] coverage-elisp
-- [ ] dev-fkeys
-- [ ] diff-config
- [ ] dirvish-config
- [ ] dwim-shell-config
- [ ] elfeed-config
- [ ] erc-config
- [ ] eshell-config
- [ ] eww-config
-- [ ] flycheck-config
- [ ] flyspell-and-abbrev
- [ ] games-config
- [ ] gloss-config
-- [ ] help-config
-- [ ] help-utils
- [ ] httpd-config
- [ ] hugo-config
- [ ] jumper
@@ -207,10 +224,8 @@ Org, then optional integrations.
- [ ] slack-config
- [ ] system-commands
- [ ] telega-config
-- [ ] test-runner
- [ ] tramp-config
- [ ] transcription-config
-- [ ] vc-config
- [ ] video-audio-recording
- [ ] vterm-config
- [ ] weather-config