<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/CLAUDE.md, branch load-graph-classify-start</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-16T16:26:56+00:00</updated>
<entry>
<title>docs(claude): record five session insights in CLAUDE.md</title>
<updated>2026-05-16T16:26:56+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-16T16:26:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=63ae6e683d5166f744e8e7d45fe9a02d8a145088'/>
<id>urn:sha1:63ae6e683d5166f744e8e7d45fe9a02d8a145088</id>
<content type='text'>
Captures five durable findings worth carrying forward:

- :config blocks need a full Emacs launch smoke test.  nerd-icons (:defer change) and flycheck (eval in :command) both passed unit tests but broke at launch.
- gptel-model must be a symbol.  The modeline render calls symbolp and OpenAI's renderer is strict where Anthropic's tolerated strings.
- flycheck-define-checker rejects (eval ...) in the :command executable slot.  Wrap the whole macro in eval+backquote to splice a computed path.
- Emacs 30 batch mode: provide doesn't fire eval-after-load callbacks.  Only load does, so tests should assert against after-load-alist directly.
- Warn at module load when an external tool path is configured but missing (cj/executable-find-or-warn) instead of letting the first call fail mid-edit.
</content>
</entry>
<entry>
<title>docs: update test and coverage documentation</title>
<updated>2026-05-10T19:08:38+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-10T19:08:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=4f8eabac69f6477b83276e583dcdf91c17f6cf0f'/>
<id>urn:sha1:4f8eabac69f6477b83276e583dcdf91c17f6cf0f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: rename /docs/ → /.ai/ in gitignore and CLAUDE.md</title>
<updated>2026-04-20T09:17:56+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-20T09:17:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=7361813dccf3d234cb6f84185926a5411dcc30a2'/>
<id>urn:sha1:7361813dccf3d234cb6f84185926a5411dcc30a2</id>
<content type='text'>
.gitignore: rename the private-tooling entry from /docs/ to /.ai/.
CLAUDE.md: expand Layout to list /.ai/ (gitignored) and docs/
(reserved for real project documentation, if/when created).
</content>
</entry>
<entry>
<title>chore: sync bundle — add commits.md rule, attribution suppression</title>
<updated>2026-04-19T18:06:57+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T18:06:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=ff747056a05792d6212ff05a9f5343fd804cbff0'/>
<id>urn:sha1:ff747056a05792d6212ff05a9f5343fd804cbff0</id>
<content type='text'>
Picks up upstream bundle changes:
- New .claude/rules/commits.md: no AI attribution, conventional prefixes.
- settings.json: attribution.commit and attribution.pr empty strings
  (suppresses Claude Code default attribution).
- CLAUDE.md: Git Workflow references commits.md instead of the
  (gitignored) docs/protocols.org.
</content>
</entry>
<entry>
<title>chore: track CLAUDE.md and .claude/ bundle, narrow gitignore</title>
<updated>2026-04-19T17:14:54+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T17:14:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=1172e4ef1e2d5dbcf2274820ca7759e3aa54b6c6'/>
<id>urn:sha1:1172e4ef1e2d5dbcf2274820ca7759e3aa54b6c6</id>
<content type='text'>
Swap blanket /CLAUDE.md + /.claude/ gitignore rules for personal-only
overrides (.claude/settings.local.json, .claude/.cache/). Add the
tracked bundle content from ~/code/rulesets install-elisp:

  - CLAUDE.md                    (project instructions)
  - .claude/rules/elisp.md
  - .claude/rules/elisp-testing.md
  - .claude/rules/verification.md
  - .claude/hooks/validate-el.sh (portable via $CLAUDE_PROJECT_DIR)
  - .claude/settings.json        (allowlist + hook wiring)

Hooks now use $CLAUDE_PROJECT_DIR with script-relative fallback, so a
fresh clone of this repo works on any machine without path edits.

Project-local skills under .claude/skills/ were stale DeepSat-flavored
copies; deleted and replaced with symlinks into ~/.claude/skills/ via
the rulesets repo's global install.
</content>
</entry>
<entry>
<title>chore: gitignore and untrack CLAUDE.md</title>
<updated>2026-04-05T11:15:49+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-05T11:15:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=5aa212398eebd764ddc2dc0a31d829279517be40'/>
<id>urn:sha1:5aa212398eebd764ddc2dc0a31d829279517be40</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: sync templates, rename NOTES.org to notes.org</title>
<updated>2026-02-08T03:41:13+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-08T03:41:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=ecfa71b268678b60c18a6141ac5ea5bcb1d09f38'/>
<id>urn:sha1:ecfa71b268678b60c18a6141ac5ea5bcb1d09f38</id>
<content type='text'>
Execute cross-project announcements: delete old workflow files,
remove templates cache, rename NOTES.org to lowercase notes.org.
</content>
</entry>
<entry>
<title>docs: add CLAUDE.md for auto-loaded instructions</title>
<updated>2026-01-24T18:17:57+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-24T18:17:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=1d94eafb8e66bb24a39f426c72a6c987466f98dc'/>
<id>urn:sha1:1d94eafb8e66bb24a39f426c72a6c987466f98dc</id>
<content type='text'>
- Create CLAUDE.md at repo root with session-context update rule
- Key rules summary for commits, files, wrap-up
</content>
</entry>
</feed>
