Imported from jaidetree/system (
dotfiles/.config/doom/AGENTS.md). Install upstream withnpx skills add jaidetree/system --skill doom. Copyright stays with the author.
AGENTS
Private $DOOMDIR for Doom Emacs. Part of the larger system dotfiles/nix
monorepo (see root AGENTS.md); this file covers only this directory.
Files
init.el— enabled Doom modules (thedoom!block). Editing this requiresdoom sync+ Emacs restart.packages.el— extra/overridden packages viapackage!. Also requiresdoom syncafter changes.config.el— private config (theme, keybindings, functions, hooks). Changes take effect on Emacs restart alone; nodoom syncneeded.config.local.el— gitignored, machine-local overrides. Loaded from the end ofconfig.elvia(load! "config.local" nil 'noerror). Use this for host-specific settings instead of editingconfig.el.modules/— private Doom modules (see below).
The one command
After changing packages.el or init.el:
~/.config/emacs/bin/doom sync
then restart Emacs. If it fails, its output names the failing recipe/file —
fix that and rerun the same command. config.el-only changes need neither.
Private modules (modules/)
modules/editor/lisp-state— Spacemacs-style evil lisp state for structural sexp editing (vendoredjaidetree/evil-lisp-statefork). See itsREADME.orgfor the upstream undo-tree/toggle patches it carries and how to run its integration test.modules/tools/claude-code— MCP-based Claude Code integration (claude-code-ide.el), bound underSPC o c. See itsREADME.orgfor prerequisites and theclaude-code-ide-cli-pathmachine-local override pattern.
Each private module has its own README.org/config.el/packages.el —
read the module's README before changing its config.el.
Conventions
- Enable/disable modules only in
init.el; keep module flags (e.g.+everywhere,+lsp) next to the module name as Doom expects. - Wrap package reconfiguration in
with-eval-after-load, except for file/directory vars (e.g.org-directory) anddoom-/+-prefixed variables, which must be set eagerly. - Host-specific settings go in
config.local.el, notconfig.el. - Temporary upstream-bug workarounds in
config.elare marked;; TEMPORARY:with a link to the upstream issue — remove them once fixed upstream.
Agent skills
Project vault
Shares the repo-wide vault at ../../../.system-vault/ (repo root:
.system-vault/), home for knowledge notes, ADRs, reference material. See
docs/agents/vault.md.
Issue tracker
Projects for this doom config live under the fixed doom namespace:
../../../.system-vault/Projects/doom/<project-name>/, where <project-name>
is a per-feature slug (e.g. ghostel-buffer-references). Never put specs
directly in Projects/doom/ itself — always create the nested per-feature
project dir. See docs/agents/issue-tracker.md.
Knowledge tagging
Every knowledge note, issue, and spec about this doom config gets the doom
tag (frontmatter tags: [doom], alongside any triage role tag), so doom
material is filterable within the shared, multi-project vault.
Triage labels
Roles applied as frontmatter tags. See docs/agents/triage-labels.md.
Domain docs
Single-context, glossary at ../../../.system-vault/Domain/CONTEXT.md, ADRs
at ../../../.system-vault/ADRs. See docs/agents/domain.md.