What problem does it solve? Writing Neovim plugins in Lua involves subtle pitfalls: blocking the UI with synchronous process calls, circular module dependencies, stale asynchronous state, fold resets, and cursor jumps. This Skill provides architectural rules, debugging patterns, and live-instance verification procedures so plugin code stays responsive, modular, and correct. ## Core Features & Use Cases - Plugin Architecture Guidance: Enforces layered module structure (views -> render -> git -> infra), thin init.lua facades, dependency-free session state, and EmmyLua/LuaLS type annotations. - Asynchronous Execution Patterns: Covers vim.system-based async Git/CLI calls, monotonic request ID cancellation, optimistic UI journals, and serialized index mutations. - Rendering and Debugging References: Documents viewport-scoped decoration providers, native folding, Tree-sitter async parsing, Trouble.nvim v3 sources, Snacks.nvim diff rendering, and a catalog of 14 common failure modes with fixes. - Live Editor Verification: Drives running Neovim instances over the $NVIM socket to hot-reload modules, execute commands, and inspect buffers, diagnostics, and extmarks. - Use Case: When refactoring a Git status plugin, follow the layering rules to break circular requires, convert synchronous git calls to vim.system callbacks, then hot-reload the module in a running Neovim instance via --remote-expr to verify behavior without restarting the editor. ## Quick Start Ask the assistant to refactor your Neovim plugin's synchronous git calls into asynchronous vim.system callbacks following the neovim-lua-dev guidelines.