Document Emacs setup, fix stale docs, activate prettier - #14
Merged
Conversation
Add an Emacs section to CLAUDE.md covering the four non-obvious constraints: the ~/.emacs.d shadow, XDG state redirection, the daemon's missing mise shims, and load-time gating of modes and eglot. List the new make targets and add an Emacs keybinding table to the README. Also correct references that were already wrong: - make doctor claimed 32 checks; it reports 43 - docs/README.md linked advanced-usage.md, which does not exist, and referenced make performance-monitor, which is not a target - the prettier hook never runs (types is an AND), so drop the claim that it formats JSON/YAML/Markdown
The hook used `types: [json, yaml, markdown]`, which pre-commit treats as an AND -- no file can be all three, so prettier silently never ran on any commit. Switch to types_or and apply the resulting formatting. Only four files needed changes, mostly markdown table alignment. The reformatted .luarc.json is semantically identical, and no chezmoi template is affected: a .json.tmpl is not detected as JSON. Also drops the README's stale "32-point health check".
This was referenced Aug 8, 2026
DROOdotFOO
added a commit
that referenced
this pull request
Aug 8, 2026
Audited ~/.agents/skills against the upstream agent-skills archive. The skill tables in CLAUDE.md were already exact -- 18 categorised plus 40 workflow skills is precisely the 58 upstream SKILL.md files. Three things did not agree. chezmoi never prunes an archive external, so ~/.agents/skills had 15 entries absent from upstream. Most were inert (no SKILL.md), left by older repo layouts where stripComponents = 2 mapped other top-level dirs into place: agents/scribe -> scribe, .github/workflows -> workflows, benchmarks/suites -> suites. The note on the external blamed upstream skills/ for shipping non-skill dirs; it does not. Two of those 15 were live skills, and one was actively wrong: virtuals-protocol-acp existed in both roots, and the two hosts disagreed about which copy to load. Raxol's Skills.Store scans skills_external_dirs in order and later :ets.insert calls overwrite earlier ones, so its last root (skills-extra) wins. sync-skills.sh links the first root, which was skills/ -- the stale one. After the prettier reformat in #14 the copies diverged, so Claude Code was loading a stale skill while Raxol loaded the current one. Reorder SKILL_ROOTS so both hosts resolve a clash the same way. hf-cli was installed into the external by the hf CLI and tracked by neither repo, so it would vanish on a fresh machine. Vendor it into skills-extra, preserving its empty manifest via the empty_ prefix.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #13. Documents the Emacs setup and fixes doc references that
were already wrong before it.
Emacs docs
New
## Emacssection inCLAUDE.mdrecording the four constraints thatare easy to rediscover the hard way:
~/.emacs.dwins over XDG whenever it merely exists -- it is neverchecked for an
init.el, so a stray directory disables the whole configsilently
~/.config/emacsor it becomeschezmoi verifydriftinvisible without an explicit
exec-pathentrya restart after installing grammars or a server
Plus the new
maketargets and an Emacs keybinding table in the README.Every binding in that table was verified against the running daemon, and
every
maketarget named inCLAUDE.mdwas verified to exist.Corrections to pre-existing docs
make doctorwas documented as "32 checks" in bothCLAUDE.mdandREADME.md; it reports 43docs/README.mdlinkedadvanced-usage.md, which does not exist, andreferenced
make performance-monitor, which is not a target -- replacedwith the three docs that do exist and with
make perfPrettier was dead config
.pre-commit-config.yamlusedtypes: [json, yaml, markdown]. pre-committreats
typesas an AND, so no single file could ever match all three andthe hook never ran on any commit. Verified by running it directly against a
.json, a.yml, and a.mdfile -- all three reportedSkipped.Switched to
types_orand applied the result. Only four files neededchanges, mostly markdown table alignment. Reformatting is idempotent on a
second pass, the
.luarc.jsonchange is semantically identical (parsed andcompared), and no chezmoi template is touched, since a
.json.tmplis notdetected as JSON.
Manual testing
pre-commit run --all-filespasses; second pass makes no further edits.luarc.jsonparses and is semantically equal to the pre-format version.tmplfiles modified by prettiermaketarget named inCLAUDE.mdKey Commands exists in the Makefiledocs/README.mdresolveskey-bindingin the live daemon🤖 Generated with Claude Code