From neovim-config
Use when editing, debugging, or validating a Neovim Lua configuration — including plugin management (vim.pack, lazy.nvim), LSP/completion wiring, treesitter, statusline, or startup behavior.
How this skill is triggered — by the user, by Claude, or both
Slash command
/neovim-config:neovim-configThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill when the task targets a Neovim Lua configuration and the work depends on loading the right checkout, applying plugin-specific wiring truthfully, and validating behavior with the right startup mode.
Use this skill when the task targets a Neovim Lua configuration and the work depends on loading the right checkout, applying plugin-specific wiring truthfully, and validating behavior with the right startup mode.
init.lua, lua/, plugin/, after/, or ftplugin/.vim.pack, lazy.nvim, lockfiles, pinned refs, or plugin bootstrap behavior.XDG_* repros.systematic-debugging.systematic-debugging.doc-coauthoring.| Situation | Use this skill? | Route instead |
|---|---|---|
| Update plugin specs, keymaps, LSP/completion setup, treesitter, statusline, or startup wiring in a Neovim Lua config | Yes | - |
Validate a worktree checkout, vim.pack migration, or startup regression that depends on loading the right Neovim config | Yes | - |
| Generic debugging for an app or runtime bug where Neovim config is only incidental | No | systematic-debugging |
| Documentation, onboarding, or explanation work for the config | No | doc-coauthoring |
Required before editing
init.lua, namespace path, NVIM_APPNAME, lockfile location).vim.pack, lazy.nvim, or another existing loader) and the exact plugin or runtime seam being changed.Helpful if present
:messages output, pack review result, or statusline/treesitter symptom..worktrees/ that need to be excluded from repo-wide validators.Only investigate if encountered
LspAttach reload paths.vim.NIL payloads from decoded JSON.nvim at the target checkout with XDG_CONFIG_HOME and NVIM_APPNAME before trusting any repro or smoke test.cd alone; the command must target the intended checkout.~/.config/<app> checkout, set XDG_CONFIG_HOME to the parent .config directory, not the repo root itself.XDG_CONFIG_HOME, XDG_DATA_HOME, XDG_STATE_HOME, and XDG_CACHE_HOME together so synthetic plugins or lockfile entries do not leak into the live config..worktrees/** so duplicate checkouts do not poison selene . or stylua --check ..nvim --headless can miss those states.vim.pack migrations, verify config side effects directly; an installed package or exposed command is not enough to prove the plugin config callback ran.main = ... annotations or explicit config functions over a shared loader override table.false values in Lua merges by checking ~= nil; do not use and/or ternaries for booleans.vim.pack: use real upstream repos and verified branches, tags, refs, or version ranges rather than lazy.nvim shorthands; verify the reviewed target ref before trusting pack output.blink.cmp: pin to branch = "v1" or version = vim.version.range("^1"), and confirm review or update output is actually comparing against that ref.LspAttach: check blink.cmp.config.sources.providers first because blink.reload() asserts on unknown providers.vim.NIL after vim.json.decode() before list operations.LspAttach will run at teardown.iter_matches() capture slots are lists; unwrap the capture before calling node methods like :range().vim.ui.progress_status() is already statusline-formatted text; do not double-escape its % markers.string.find() positions are 1-based and inclusive; adjust bracketed status or progress segment ranges accordingly.vim.pack, Blink, or Copilot change: confirm the pinned ref, config callback side effect, and runtime attach or reload behavior that actually motivated the edit.vim.pack, Blink, Copilot, treesitter, statusline, or shutdown-time LSP constraints.nvim is loading the intended checkout via XDG_CONFIG_HOME and NVIM_APPNAME.worktrees/** before trusting repo-wide stylua or selene resultsvim.pack, verify the config callback side effect or pinned ref behavior, not just package presencevim.pack loads blink.cmp v1 and Copilot completions work again."systematic-debugging)nvim."vim.ui.progress_status() renders correctly and the extmark highlight range stops clipping the brackets."lazy.nvim to vim.pack, pin the right upstream ref, and prove the config callback actually runs."references/runtime-checks.md - compact lookup table for config-targeting, vim.pack, Blink, Copilot, treesitter, and statusline validation checks.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub matt-riley/lucky-hat --plugin neovim-config