| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Bring .claude/hooks/validate-el.sh and .claude/rules/interaction.md back in line with the shared bundle, and add the new keybinding-display.md rule.
|
| |
|
|
| |
Routine sync of the .claude/rules and git hooks distributed with the language bundle. Adds the cross-project, emacs, interaction, todo-format, triggers, and working-files rules; refreshes the elisp and elisp-testing rules, the elisp validation hook, and the pre-commit hook.
|
| |
|
|
|
|
| |
`make test', `make coverage', and the editor's PostToolUse test runner all selected `(not (tag :slow))', which let the now-`:perf'-tagged benchmark suite run alongside the unit tests. Each of those three filters now also excludes `:perf', and a new `make benchmark' target runs the benchmark file on its own. `make test-file' and `make test-name' keep their old filters so the suite stays reachable for ad-hoc runs.
`COVERAGE_EXCLUDE' loses `test-lorem-optimum-benchmark.el'. The tag filter handles it now, so the only entry left is `test-all-comp-errors.el', which byte-compiles modules and can't run under undercover's instrumentation.
|
| |
|
|
| |
The validate-el.sh hook loaded stale `.elc` files when the matching `.el` was newer (e.g. after a sed-driven rename where the byte-compile hook never fires). `make test` already sets this. The hook didn't, so I added `(setq load-prefer-newer t)` to all three emacs invocations: the parens check, the byte-compile, and the test run.
|
| |
|
|
| |
The PROJECT_ROOT guard skipped any .el file outside the project on the theory that out-of-tree files are owned by their own project's hooks. In practice, when I edit an .el file in another repo from a Claude session in this one, the other project often doesn't have its own hook running, so the file was getting no validation at all. I dropped the guard so any .el file edited from a Claude session here gets validated, regardless of which repo it lives in.
|
| |
|
|
| |
This PostToolUse hook validates .el edits via check-parens and byte-compile-file. It was firing on edits to files outside the project root too, which meant byte-compiling without the foreign package's load-path set up and leaving .elc droppings in the wrong tree. Added a four-line PROJECT_ROOT guard so out-of-tree files exit silently.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-installed the elisp ruleset from ~/code/rulesets, picking up three
upstream bundle fixes:
- validate-el.sh now calls (package-initialize) so byte-compile can
resolve external packages (dash, etc.) via ~/.emacs.d/elpa/.
- validate-el.sh Phase 2 (test runner) now matches any .el file
outside tests/, not just modules/*.el. Supports flat-layout
projects (Elisp package repos where sources live at project root).
- .claude/rules/testing.md is now generic TDD principles (was
Python/TS specific); language-specific testing rules live in
elisp-testing.md, python-testing.md, etc.
elisp-testing.md gained a line referencing testing.md as the base.
|
|
|
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.
|