Back to list
benbrastmckie

skill-neovim-research

by benbrastmckie

NeoVim configuration optimized for writing in LaTeX with AI integration for Avante, Lectic, and Claude-Code

432🍴 463📅 Jan 15, 2026

SKILL.md


name: skill-neovim-research description: Research Neovim APIs, plugin patterns, and Lua development. Invoke for lua-language research tasks. allowed-tools: Read, Glob, Grep, WebSearch, WebFetch context:

  • project/neovim/domain/neovim-api.md
  • project/neovim/domain/lua-patterns.md
  • project/neovim/domain/plugin-ecosystem.md

Neovim Research Skill

Specialized research agent for Neovim configuration and Lua plugin development tasks.

Trigger Conditions

This skill activates when:

  • Task language is "lua"
  • Research involves Neovim APIs, plugins, or configuration
  • Codebase exploration for Lua patterns is needed

Research Strategies

1. Local Codebase First

Always check existing code first:

1. Grep for relevant patterns in lua/ and after/
2. Glob for similar modules in lua/neotex/
3. Read existing implementations
4. Understand existing patterns before proposing new ones

2. Neovim API Research

For Neovim-specific patterns:

1. WebSearch "neovim lua {concept}"
2. WebFetch neovim.io documentation
3. Check existing patterns in lua/neotex/core/
4. Reference the neovim-lua.md rule for standards

3. Plugin Research

For plugin-specific patterns:

1. Read plugin documentation via WebFetch
2. Check existing plugin configs in lua/neotex/plugins/
3. Search GitHub repos for patterns
4. Review plugin-specific tests in tests/

Research Areas

Neovim API Patterns

  • vim.api.* (buffer, window, command APIs)
  • vim.fn.* (Vimscript function bridge)
  • vim.opt.* (option setting)
  • vim.keymap.set() (keymapping)
  • vim.api.nvim_create_autocmd() (autocommands)
  • vim.lsp.* (language server protocol)

Plugin APIs

  • lazy.nvim (plugin management, lazy loading)
  • telescope.nvim (fuzzy finder patterns)
  • nvim-treesitter (syntax parsing)
  • nvim-lspconfig (LSP configuration)
  • which-key.nvim (keybinding documentation)

Lua Patterns

  • Module structure (local M = {})
  • Error handling (pcall)
  • Table manipulation
  • String patterns
  • Metatable usage

Testing Patterns

  • busted framework
  • plenary.nvim test utilities
  • Assertion patterns (is_nil/is_not_nil for match)
  • Test organization (*_spec.lua)

Configuration Patterns

  • Options organization
  • Keymap centralization
  • Autocommand grouping
  • Plugin lazy loading strategies

Execution Flow

1. Receive task context (description, focus)
2. Extract key concepts (API type, plugin, pattern)
3. Search local codebase for related patterns
4. Search web for Neovim/plugin documentation
5. Analyze implementation approaches
6. Synthesize findings
7. Create research report
8. Return results

Research Report Format

Create report at .claude/specs/{N}_{SLUG}/reports/research-{NNN}.md:

# Neovim Research Report: Task #{N}

**Task**: {title}
**Date**: {date}
**Focus**: {focus}

## Summary

{Overview of findings}

## Codebase Findings

### Related Files
- `lua/neotex/path/to/file.lua` - {description}

### Existing Patterns
```lua
-- Pattern name
local function example()
  -- ...
end

Similar Implementations

  • {Description of similar code}

Neovim API Findings

Relevant APIs

APIPurposeExample
vim.api.nvim_*{purpose}{code}

Best Practices

  • {Practice and rationale}

Plugin Integration

  • {Plugin} - {how it relates}

Integration Patterns

  • {Pattern description}
  1. {Step 1 with specific patterns to use}
  2. {Step 2}

Code Sketch

-- Proposed implementation approach
local M = {}

function M.setup(opts)
  -- ...
end

return M

Testing Strategy

  • Unit tests: {approach with busted}
  • Integration tests: {approach with plenary}

Potential Challenges

  • {Challenge and mitigation}

References

  • {Neovim documentation links}
  • {Plugin documentation links}
  • {Related codebase files}

## Return Format

```json
{
  "status": "completed",
  "summary": "Found N relevant patterns for implementation",
  "artifacts": [
    {
      "path": ".claude/specs/{N}_{SLUG}/reports/research-001.md",
      "type": "research",
      "description": "Neovim/Lua research report"
    }
  ],
  "patterns_found": [
    {"name": "pattern_name", "location": "lua/neotex/file.lua", "relevance": "high"}
  ],
  "apis_needed": [
    "vim.api.nvim_create_autocmd",
    "vim.keymap.set"
  ],
  "plugins_relevant": [
    {"name": "telescope.nvim", "relevance": "integration point"}
  ],
  "recommended_approach": "Description of recommended approach"
}

Key Resources

Official Documentation

Plugin Documentation

Community Resources

Key Codebase Locations

  • Entry point: nvim/init.lua
  • Core config: nvim/lua/neotex/config/
  • Plugin configs: nvim/lua/neotex/plugins/
  • Core utilities: nvim/lua/neotex/core/
  • Utilities: nvim/lua/neotex/util/
  • Tests: nvim/tests/
  • Standards: nvim/CLAUDE.md, nvim/docs/CODE_STANDARDS.md
  • Rules: .claude/rules/neovim-lua.md

Quick Exploration Commands

-- Check available API functions
:lua print(vim.inspect(vim.api))

-- Check option values
:lua print(vim.inspect(vim.opt.tabstop:get()))

-- Check loaded modules
:lua print(vim.inspect(package.loaded))

-- Find keymap conflicts
:verbose map <key>

Score

Total Score

70/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

+5
最近の活動

3ヶ月以内に更新

+5
フォーク

10回以上フォークされている

+5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon