<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/modules/org-drill-config.el, branch load-graph-classify-end</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-end</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-end'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-24T21:34:16+00:00</updated>
<entry>
<title>docs(load-graph): classify Org modules</title>
<updated>2026-05-24T21:34:16+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-24T21:34:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=02baa68063f02cc571789c03b1101c28d139200d'/>
<id>urn:sha1:02baa68063f02cc571789c03b1101c28d139200d</id>
<content type='text'>
Seventh classification batch: the thirteen Org modules — config, agenda, babel, capture, contacts, drill, export, noter, refile, reveal, roam, webclipper, hugo. I annotated each header, added a Batch 7 table to the inventory, and extended the validation allowlist. 65 of 102 modules are now classified.

The daily workflows (config, agenda, capture, refile, roam) keep their eager reason 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 recorded as the side effects the spec already tracks for cache-lifecycle work. No new hidden dependencies.
</content>
</entry>
<entry>
<title>refactor(org-drill): share one validated drill-file selector</title>
<updated>2026-05-24T09:25:24+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-24T09:25:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=49038c418ead0adc83ffc8fce43c0cb6da9813df'/>
<id>urn:sha1:49038c418ead0adc83ffc8fce43c0cb6da9813df</id>
<content type='text'>
org-capture-config.el and org-drill-config.el each scanned drill-dir with an inline directory-files call, so a missing, empty, or unreadable drill-dir surfaced as a low-level directory-files error or an empty completing-read, depending on which command ran. Added cj/--drill-files-or-error, the single validated entry point: it signals a clear user-error when the directory is missing, unreadable, or has no drill files, and otherwise returns the list. cj/--drill-pick-file and both drill capture templates now route through it. The pure cj/--drill-files-in primitive and its tests are unchanged. Tests cover missing dir, empty dir, a non-org-only dir, and a normal listing.
</content>
</entry>
<entry>
<title>refactor(org-drill): hoist the commands out of :config and clear the byte-compile warnings</title>
<updated>2026-05-12T18:29:38+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-12T18:29:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=fad6f3288ba7c9451bd0b2e0d38c67d267b7fc19'/>
<id>urn:sha1:fad6f3288ba7c9451bd0b2e0d38c67d267b7fc19</id>
<content type='text'>
The `cj/drill-*` defuns and `cj/drill-map` lived inside the `use-package org-drill` `:config` block, so the byte-compiler never registered them — every cross-reference between them warned ("function `cj/drill-this-file' is not known", and so on). I moved all of that to module top level, where the compiler sees it. The ten `(setq org-drill-...)` lines became a `:custom` block (no more "assignment to free variable"). Added `(require 'user-constants)` and `(require 'keybindings)` for `drill-dir` and `cj/custom-keymap`, plus `declare-function` for `org-drill`, `org-drill-resume`, `org-capture`, and `org-refile`. The module byte-compiles clean now, and `C-; D` still mounts the drill submenu with the same leaf keys.

I also gave `tests/test-org-drill-first-function.el` a `cj/custom-keymap` stub: its "loads without error" test does a bare `load` of the module, which now runs the keymap mount at load time instead of deferring it inside `:config`.
</content>
</entry>
<entry>
<title>feat(org-drill): drill any Org file from anywhere</title>
<updated>2026-05-12T17:45:40+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-12T17:45:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=162d52dfc5a401c95dcbb6f5630d4373568a70e6'/>
<id>urn:sha1:162d52dfc5a401c95dcbb6f5630d4373568a70e6</id>
<content type='text'>
`org-drill` has no fixed home — with `org-drill-scope` left at its default it just drills the current buffer. So the only thing in my config tied to a location was `cj/drill-start`, which forced a pick from `drill-dir`.

`C-; D f` (`cj/drill-this-file`) drills whatever Org buffer is current, so a drill file living anywhere works. It `user-error`s when the buffer isn't an Org buffer.

`C-u C-; D s` (and `C-u C-; D e`) now prompts for the directory to pick from instead of always using `drill-dir`. Bare `C-; D s` is unchanged. I pulled the picking logic into `cj/--drill-files-in`, `cj/--drill-pick-dir`, and `cj/--drill-pick-file` so it's unit-testable. New `tests/test-org-drill-config.el`: 12 ERT tests over those helpers, `cj/drill-this-file`, `cj/drill-start`, and the keymap.
</content>
</entry>
<entry>
<title>chore(org-drill): use local :load-path checkout for active dev</title>
<updated>2026-05-09T21:52:50+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-09T21:52:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=d0e44db46f7d24883e78ce94c3681170b23022f6'/>
<id>urn:sha1:d0e44db46f7d24883e78ce94c3681170b23022f6</id>
<content type='text'>
Switches from `:vc` to `:load-path "~/code/org-drill"` so I can iterate against the local clone. The use-package block keeps the `:vc` form commented immediately above, ready to flip back when the dev work lands.
</content>
</entry>
<entry>
<title>chore(deps): add commented :load-path hints for local-dev swaps</title>
<updated>2026-04-30T15:12:54+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-30T15:12:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=d28bd8404f856985d82d493416633fee02e737f5'/>
<id>urn:sha1:d28bd8404f856985d82d493416633fee02e737f5</id>
<content type='text'>
Each :vc-installed package whose source repo is also cloned under
~/code now carries a commented :load-path line directly under the
:vc form. Uncomment the :load-path and comment the :vc to flip into
local development without rewriting the use-package block.

Covered: gloss, org-drill, wttrin (emacs-wttrin), chime.

Skipped: org-msg. The previous local clone at ~/code/org-msg is no
longer present; if it gets re-cloned later, add the same hint there.
</content>
</entry>
<entry>
<title>chore(deps): point org-drill :vc at cjennings.net primary</title>
<updated>2026-04-29T15:12:43+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-29T15:12:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=be3e227f3aa75c018fa4f7486226d691765012b5'/>
<id>urn:sha1:be3e227f3aa75c018fa4f7486226d691765012b5</id>
<content type='text'>
The cjennings.net bare for org-drill has a GitHub mirror as of today's earlier remote migration. Update the :vc URL in modules/org-drill-config.el to point at the primary instead of the mirror so a fresh install clones from the source-of-truth.
</content>
</entry>
<entry>
<title>fix(org-drill): switch from local load-path to VC package install</title>
<updated>2026-01-27T13:00:23+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-27T13:00:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=98aca11d7e385d146e5e49be590b75e575a685ec'/>
<id>urn:sha1:98aca11d7e385d146e5e49be590b75e575a685ec</id>
<content type='text'>
Use :vc to install org-drill from GitHub instead of :load-path to
local clone. Add dupre color palette reference image.
</content>
</entry>
<entry>
<title>feat(fonts): Update fonts to Berkeley Mono + Lexend, simplify org-drill config</title>
<updated>2025-11-13T04:20:06+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-13T04:20:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=f2e8b1ff4e983fda036871c10022329fabfadbc0'/>
<id>urn:sha1:f2e8b1ff4e983fda036871c10022329fabfadbc0</id>
<content type='text'>
Font changes:
- Set Berkeley Mono + Lexend as default fonts
- Updated EBook preset to use Lexend
- Created FiraCode preset preserving old defaults
- Installed new fonts: Charis SIL, Bitstream Vera, Literata, Lexend

Org-drill changes:
- Removed fontaine-dependent font switching code
- Now uses org-drill's built-in display management
- Configured 24-point font, variable-pitch, hidden modeline
- Added comprehensive tests for display management (10 tests, all passing)

org-drill now loads from local ~/code/org-drill for development.
</content>
</entry>
<entry>
<title>org-drill-config: enhance org-drill display settings</title>
<updated>2025-11-11T23:40:14+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-11T23:40:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=1a445cea8e927698e5f29793ced5cd16ff4281dc'/>
<id>urn:sha1:1a445cea8e927698e5f29793ced5cd16ff4281dc</id>
<content type='text'>
Added display customization for org-drill cards, including larger
text and proportional font. Adjusted session limits to 100 cards and
30 minutes. Integrated a hook to apply these changes during drill
sessions. Updated org-drill package configuration to use the newest
revision from the main branch.
</content>
</entry>
</feed>
