agentsclimarketplace

Neovim

Skill kriscard/Skills/skills/dotfiles/neovim

Neovim config healthcheck for ~/.dotfiles/.config/nvim/ using lazy.nvim and GNU Stow. Use when the user wants to validate or repair Neovim, add/remove plugins, diagnose startup performance, fix keymaps/LSP, or modernize config. Prefer audit for whole-dotfiles reviews and shell-env for non-Neovim terminal config.From its SKILL.md

Install
npx -y skills add kriscard/Skills --skill neovim

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 2 commands, including `cd ~/.dotfiles && stow nvim` and 1 more.

SKILL.md

4.1 KB, 937 tokens by cl100k_base, as published. Nobody here has run it

Neovim Configuration

Config lives at ~/.dotfiles/.config/nvim/, symlinked by GNU Stow, namespaced under kriscard/. Plugin manager is lazy.nvim.

Config Location

~/.dotfiles/.config/nvim/
├── init.lua                  # Entry point — sources all modules
├── lua/kriscard/
│   ├── core/
│   │   ├── options.lua       # vim.opt settings
│   │   ├── keymaps.lua       # vim.keymap.set with {desc = "..."}
│   │   └── autocmds.lua      # autocommands
│   └── plugins/              # lazy.nvim plugin specs (one file per plugin or group)
│       └── *.lua

Stow package: cd ~/.dotfiles && stow nvim (or whatever the package name is — check ls ~/.dotfiles).

First: classify the branch

  • Healthcheck or broken config → use Key Workflows; load references/config.md if needed.
  • Plugin add/remove/replacement → load references/plugins.md.
  • Startup/performance → load references/performance.md.
  • Whole-dotfiles health issue → route to audit; non-Neovim terminal config → route to shell-env.

Do not load all references.

Key Workflows

Validate config

:checkhealth          " full diagnostic
:checkhealth lazy     " plugin manager health
:checkhealth nvim-treesitter
:Lazy                 " plugin status dashboard

Done when health output is captured, any failing provider/plugin is named, and each issue has a fix or next diagnostic command.

Add a plugin

  1. Create or edit a file in lua/kriscard/plugins/.
  2. Return a lazy.nvim spec table.
  3. Save — lazy.nvim auto-detects changes on next start, or run :Lazy sync.
  4. Run :checkhealth <plugin> when the plugin provides health checks.

Done when the spec is in the Stow-managed source path, lazy.nvim can sync/load it, and any keymaps/commands include lazy-load boundaries.

Diagnose performance

Run :Lazy profile to see per-plugin load times. For CLI measurement:

nvim --headless --startuptime /tmp/nvim.log +q && sort -k2 -n /tmp/nvim.log | tail -20

Done when before/after startup measurements are recorded, top slow plugins or config files are named, and each recommendation maps to a lazy.nvim event, cmd, keys, or ft boundary or is marked needs deeper profiling.

Fix broken plugin

Move from least destructive to most destructive:

  1. :Lazy log — inspect recent install/update errors.
  2. :messages — capture Lua errors after startup.
  3. :Lazy sync — retry install/update when the error indicates missing or stale plugin state.
  4. :Lazy clean — remove unused plugins only after confirming they are no longer referenced.
  5. Delete ~/.local/share/nvim/lazy/<plugin> only as a last resort to force reinstall.

Done when the error is reproduced or log output is captured, the least destructive applicable repair has run, and the next startup/checkhealth result is recorded.

Quick Checks (run on every audit)

  • Plugins use opts = {} instead of config = function() require("x").setup({}) end where possible
  • Keymaps include {desc = "..."} for which-key integration
  • LSP plugins are not loaded eagerly (use event = "BufReadPre")
  • No duplicate keymaps (:verbose map <key> to check)
  • vim.loader.enable() called in init.lua (bytecode cache, free perf)

Completion gate: do not declare Neovim work done until the changed source path, validation command, and result are reported.

References

PriorityLoad whenReference
HighPlugin recommendations, modern picks, what to add/remove, abandoned pluginsreferences/plugins.md
HighStartup time, lazy-loading strategies, profiling, which plugins are slowreferences/performance.md
MediumConfig structure, best practices, common mistakes, keymaps, LSP setupreferences/config.md

What ships with it: 3 files

12.3 KB alongside SKILL.md

references/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.