references/conventions.md | Naming (foo- public, foo-- private), library headers, autoload cookies, docstring conventions, key-binding conventions, comment style |
references/lexical-binding-and-macros.md | Lexical vs. dynamic binding, closures, special variables; macro hygiene (gensym, evaluation-count pitfalls, declare indent/debug), eval-when-compile vs eval-and-compile |
references/hooks-advice-loading.md | Hooks (add-hook depth, mode hooks, derived-mode conventions), advice combinators and why hooks beat advice, autoloads, with-eval-after-load pitfalls, load-order reasoning |
references/customization.md | defcustom :type/:set/:initialize, why setopt matters, buffer-local options, themes vs. custom |
references/modern-libraries.md | pcase/pcase-let, seq, map, cl-lib, rx, threading macros, named-let, generalized variables (setf), string utilities |
references/debugging-and-testing.md | edebug, debug-on-error, M-x profiler, benchmarking, ERT patterns (fixtures, should forms, ert-deftest naming, running via just test) |
references/emacs-30-31-changes.md | Emacs 30/31 NEWS filtered for config authors — new APIs to adopt, obsoletions to avoid, version-gating |