Audit the Neovim plugins in this dotfiles repo one by one. Researches what current Neovim already covers and each plugin's maintenance status and news, asks the user to keep, replace or remove each one with AskUserQuestion, then applies the decisions (keymaps rerouted, :Lazy clean, README), verifies with headless Neovim and commits. Use for "audit my Neovim plugins", "棚卸しして", "Neovim のプラグインを整理したい".
npx skills add https://github.com/babarot/dotfiles --skill nvim-plugin-audit
Audit the Neovim plugins in this repository together with the user: build the facts for every plugin, let the user decide one by one, then apply and verify the decisions. Claude Code only (it relies on AskUserQuestion).
home/.config/nvim/ in this repo (~/.config links to home/.config)lua/plugins/*.lua (lazy.nvim, one file per area)lazy-lock.json; plugin list with sections and counts: lua/plugins/README.mdlua/config/{options,keymaps,autocmds}.luanix/home/tools/neovim.nix. Never install servers or parsers from inside Neovim (no mason, no :TSInstall).nvim --version) and read the bundled release notes: $(dirname $(dirname $(readlink -f $(command -v nvim))))/share/nvim/runtime/doc/news*.txt. List what the core now covers (commands, default keymaps, options, built-in plugins under runtime/pack/dist/opt).For every plugin in lazy-lock.json (and every spec in lua/plugins/, including disabled ones):
gh api repos/<owner>/<repo> --jq '{pushed_at, archived}'dependencies or call require('<it>')Classify each as keep, replace, remove or ask. Judge by how the user works now: agents write most of the code, and Neovim is mainly for reading files and pointing Claude Code at them (claudecode.nvim), so reading and navigation matter more than writing aids. When the user wants to go conservatively, handle "replaced by core or a duplicate" first and leave writing aids for later.
Show the user a short summary (counts, the notable findings such as archived plugins or config that silently does nothing) before asking.
Use AskUserQuestion, at most 4 questions per call, one plugin (or one tight group, e.g. a plugin and its only dependency) per question:
If the user rejects the question to clarify, stop and ask what they want to know before continuing.
For each removal or replacement:
dependencies entries pointing at itlua/config/keymaps.lua), keeping the same keys when possiblelua/plugins/README.md: remove the entry, fix the section counts, and note replacements under "Replaced by Neovim itself"nvim --headless '+Lazy! clean' +qa so the plugin is removed and lazy-lock.json is updatednix/home/tools/neovim.nix, build both hosts as AGENTS.md describes, and ask the user to run darwin-rebuildWith headless Neovim (nvim --headless -c 'lua ...'), check:
vim.api.nvim_exec2('messages', { output = true })) with a real file openvim.fn.maparg(...)) and does what it should (e.g. feed the keys and inspect the buffer)vim.lsp.get_clients({ bufnr = buf }) and vim.treesitter.highlighter.active[buf] on a file of each affected languageSay plainly what could not be checked headless (rendering, popups) and ask the user to look.
git pull --ff-only, then git status and git diff --cached, and stage only the files this audit changednvim --headless '+Lazy! restore' '+Lazy! clean' +qa, and darwin-rebuild when Nix changed)Take babarot/nvim-plugin-audit from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.