Skip to content
Development
Skill

/nvim-plugin

`:h lua-plugin` (https://neovim.io/doc/user/lua-plugin/) is the authority on layout, `setup()` patterns, `<Plug>` mappings, guard variables, health checks and deprecation. Read it rather than working from memory — it is opinionated and it changes. This skill only records what it

BOOST
From plugin
fredrikaverpil-dotfiles
25913 skills1 MCP
Install
$ npx -y skills add fredrikaverpil/dotfiles --skill nvim-plugin --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/nvim-plugin

Context preview

The summary Claude sees to decide when to auto-load this skill.

`:h lua-plugin` (https://neovim.io/doc/user/lua-plugin/) is the authority on layout, `setup()` patterns, `<Plug>` mappings, guard variables, health checks and deprecation. Read it rather than working from memory — it is opinionated and it changes. This skill only records what it

SKILL.md

nvim-plugin.SKILL.md
name: nvim-plugin
description:
  Conventions and tooling for authoring a Neovim plugin in Lua. Use when
  creating, modifying, or reviewing a plugin — plugin structure, ftplugin,
  health checks, `setup()`, vimdoc, LuaCATS, lazy loading — or when working in a
  directory that looks like one (plugin/, lua/, ftplugin/).

Writing Neovim plugins

`:h lua-plugin` (https://neovim.io/doc/user/lua-plugin/) is the authority on layout, `setup()` patterns, `<Plug>` mappings, guard variables, health checks and deprecation. Read it rather than working from memory — it is opinionated and it changes. This skill only records what it leaves out.

Style

Per `.stylua.toml`: 2-space indentation, double quotes, 120-char width, requires sorted by `stylua`.

Tooling

  • **vimdoc**: author in Markdown, generate with `panvimdoc`, then `:helptags

doc/`.

  • **Types**: annotate the public API with LuaCATS and run

`lua-typecheck-action` in CI, so luals catches breakage before users do.

  • **Releases**: SemVer via `luarocks-tag-release` or `release-please-action`.

Publish to luarocks when the plugin has Lua dependencies or is one itself.

Development loop

  • `:restart` reloads plugin changes.
  • `nvim --startuptime /tmp/nvim-startup.log` to check what eager loading in

`plugin/` costs.

Ships withfredrikaverpil-dotfiles

Personal dotfiles, managed in three layers: Nix (nix/): system configuration and packages, pinned by flake.lock and applied with a rebuild. Fully reproducible. Stow (stow/): dotfiles symlinked into $HOME with GNU Stow (not Nix).

Get the whole plugin
Stats
259
Stars
7
Forks
Active
Maintenance
QML
Language
MIT
License
21h ago
Last commit
10y ago
Created
6h ago
Added

Repo: fredrikaverpil/dotfiles

Other skills on fredrikaverpil-dotfiles.