Skip to content

Document Emacs setup, fix stale docs, activate prettier - #14

Merged
DROOdotFOO merged 2 commits into
mainfrom
docs-emacs
Aug 8, 2026
Merged

Document Emacs setup, fix stale docs, activate prettier#14
DROOdotFOO merged 2 commits into
mainfrom
docs-emacs

Conversation

@DROOdotFOO

Copy link
Copy Markdown
Owner

Follow-up to #13. Documents the Emacs setup and fixes doc references that
were already wrong before it.

Emacs docs

New ## Emacs section in CLAUDE.md recording the four constraints that
are easy to rediscover the hard way:

  • ~/.emacs.d wins over XDG whenever it merely exists -- it is never
    checked for an init.el, so a stray directory disables the whole config
    silently
  • runtime state must stay out of ~/.config/emacs or it becomes
    chezmoi verify drift
  • the daemon does not inherit mise, so mise-managed language servers are
    invisible without an explicit exec-path entry
  • mode remaps and eglot hooks are decided at load time, so the daemon needs
    a restart after installing grammars or a server

Plus the new make targets and an Emacs keybinding table in the README.
Every binding in that table was verified against the running daemon, and
every make target named in CLAUDE.md was verified to exist.

Corrections to pre-existing docs

  • make doctor was documented as "32 checks" in both CLAUDE.md and
    README.md; it reports 43
  • docs/README.md linked advanced-usage.md, which does not exist, and
    referenced make performance-monitor, which is not a target -- replaced
    with the three docs that do exist and with make perf

Prettier was dead config

.pre-commit-config.yaml used types: [json, yaml, markdown]. pre-commit
treats types as an AND, so no single file could ever match all three and
the hook never ran on any commit. Verified by running it directly against a
.json, a .yml, and a .md file -- all three reported Skipped.

Switched to types_or and applied the result. Only four files needed
changes, mostly markdown table alignment. Reformatting is idempotent on a
second pass, the .luarc.json change is semantically identical (parsed and
compared), and no chezmoi template is touched, since a .json.tmpl is not
detected as JSON.

Manual testing

  • pre-commit run --all-files passes; second pass makes no further edits
  • .luarc.json parses and is semantically equal to the pre-format version
  • 0 .tmpl files modified by prettier
  • every make target named in CLAUDE.md Key Commands exists in the Makefile
  • every markdown link in docs/README.md resolves
  • every keybinding in the README Emacs table confirmed via key-binding in the live daemon

🤖 Generated with Claude Code

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".
@DROOdotFOO
DROOdotFOO merged commit be8c366 into main Aug 8, 2026
5 checks passed
@DROOdotFOO
DROOdotFOO deleted the docs-emacs branch August 8, 2026 17:20
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant