planning-with-files
Optional persistent file-based planning for multi-phase or long-running work that benefits from recovery across sessions or…
Create, refactor, test, or release Neovim Lua plugins; assess Lua 5.1-5.5 compatibility and migrate standalone or embedded Lua programs.
$ npx -y skills add khaneliman/khanelinix --skill lua-toolkit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/lua-toolkitContext preview
The summary Claude sees to decide when to auto-load this skill.
Create, refactor, test, or release Neovim Lua plugins; assess Lua 5.1-5.5 compatibility and migrate standalone or embedded Lua programs.
name: lua-toolkit description: Create, refactor, test, or release Neovim Lua plugins; assess Lua 5.1-5.5 compatibility and migrate standalone or embedded Lua programs.
For Neovim plugins, target LuaJIT/Lua 5.1 with LuaRocks-first distribution, LuaCATS types, self-lazy-loading, and no forced `setup()`. For standalone or embedded programs, provide Lua version migration and compatibility verification without imposing Neovim architecture or APIs.
Route to one mode and load only that reference unless work crosses boundaries. Identify the actual interpreter or embedding host and the versions the project must retain before choosing syntax, library replacements, or checks.
[lua-version-migration.md](references/lua-version-migration.md), then [lua-compatibility-verification.md](references/lua-compatibility-verification.md) for runnable checks and evidence requirements. Cover every intervening boundary from the starting version to 5.5. Keep Neovim/LuaJIT support when required; installing standalone Lua 5.5 does not upgrade an embedding host.
retain their Lua 5.1 target and plugin-specific conventions.
1. [plugin-architecture.md](references/plugin-architecture.md): runtimepath directory model, `plugin/` vs `lua/` separation, deferred-`require` loading, no-runtime-entrypoint plugins, `util.lua` refactoring, global-pollution rules, `if jit then ... else` fallback. 2. [configuration.md](references/configuration.md): `vim.g.<plugin>` (table-or-function) config not forced `setup()`, partial LuaCATS config classes, dict-vs-list `vim.tbl_deep_extend` behavior, modern `vim.validate` (0.11+) signature, `lua/<plugin>/health.lua` checks. 3. [loading-and-install.md](references/loading-and-install.md): self-lazy-loading via `plugin/`+`ftplugin/` (don't rely on the plugin manager), minimal lazy.nvim specs, native-API-over-`plenary`, `lazy = true` deps, coroutine `build` constraints. 4. [apis-and-keymaps.md](references/apis-and-keymaps.md): single scoped command with `complete`, `<Plug>` mappings with no default keymaps, buffer-local state, `ftplugin` vs `after/ftplugin`. 5. [tooling-and-quality.md](references/tooling-and-quality.md): LuaCATS + lua-ls as primary correctness tool, `.luarc.json` (`"Lua 5.1"`), `lua51` `.luacheckrc`, stylua baseline. 6. [plenary-migration.md](references/plenary-migration.md): replace `plenary.job`, `plenary.path`, `plenary.scandir`, `plenary.async`, `plenary.curl`, `plenary.test_harness`, popup/window helpers, strings, filetype, and logging with native Neovim APIs or focused dependencies. 7. [testing-and-distribution.md](references/testing-and-distribution.md): `busted`+`nlua` (`neorocksTest` for Nix), stable/nightly CI matrix, vimcats/panvimdoc generation, SemVer `.rockspec`/`luarocks-tag-release`.
Target Lua 5.1 / LuaJIT 2.1, avoid globals, self-lazy-load, prefer lazy `vim.g.<plugin>` config over forced `setup()`, expose one scoped command plus `<Plug>` mappings, and gate types with LuaCATS/lua-ls. Read [core-rules.md](references/core-rules.md) when writing or reviewing plugin code.
Canonical real-world examples: `nvim-best-practices`, `nvim-lua-nix-plugin-template` (Nix CI), `rustaceanvim`, `neotest-haskell`.
See [operating-rules.md](references/operating-rules.md).
Run packages directly with: Or install from the packages output. For example:
Optional persistent file-based planning for multi-phase or long-running work that benefits from recovery across sessions or…
Audit coding-agent sessions and mine cross-harness history for recurring corrections, skill-routing gaps, and harness faults. Use…
Design and audit agent instructions, skills, plugins, subagents, prompts, hooks, and provider configuration. Use for AI-tool…
Sketch interfaces, state, and module structure before code. Use for explicit design-led implementation or as a caller-owned…
Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it. Use for /arena,…
Bevy workflows for ECS, migrations, first-party UI/input/rendering/assets/shaders, plugin selection, scenes, scheduling, hot…