config-auditing
Neovim Configuration Auditing Skill
Systematic configuration analysis for identifying issues, optimizations, and deprecated API usage in Neovim setups.
Supporting Documents
| Document | Purpose | When to Use |
|---|---|---|
| audit-checklist.md | Structured audit categories with detection patterns | Systematic config review |
| best-practices.md | lazy.nvim patterns, vim.opt usage, keymap conventions | Optimization suggestions |
| deprecated-apis.md | Version-specific deprecated APIs with grep patterns | Compatibility checks |
Quick Validation Commands
Run these headless commands for rapid assessment:
# Get Neovim version
nvim --version | head -1
# Get config path
nvim --headless -c "lua print(vim.fn.stdpath('config'))" -c "qa" 2>&1
# Count Lua files in config
find ~/.config/nvim -name "*.lua" 2>/dev/null | wc -l
# Count plugins (lazy.nvim)
ls ~/.local/share/nvim/lazy 2>/dev/null | wc -l
# Check for deprecated vim.api.nvim_buf_set_option usage
grep -rn "nvim_buf_set_option\|nvim_win_set_option" ~/.config/nvim --include="*.lua" 2>/dev/null | head -10
# Check startup time
nvim --startuptime /tmp/nvim-startup.log +q && tail -5 /tmp/nvim-startup.log
# Validate Lua syntax in config
nvim --headless -c "lua dofile(vim.fn.stdpath('config')..'/init.lua')" -c "qa" 2>&1
# Check for error on startup
nvim --headless -c "qa" 2>&1 | head -20
Scoring Criteria
Assign grades based on issue severity and count:
| Grade | Criteria | Description |
|---|---|---|
| A | 0 Critical, 0-2 Warnings | Excellent - Production ready |
| B | 0 Critical, 3-5 Warnings | Good - Minor improvements possible |
| C | 0 Critical, 6+ Warnings OR 1 Critical | Acceptable - Needs attention |
| D | 2-3 Critical issues | Poor - Significant problems |
| F | 4+ Critical issues | Failing - Requires immediate fixes |
Issue Severity Definitions
Critical: Security risks, breaking deprecated APIs (removed in current version), runtime errors Warning: Performance issues, deprecated APIs (still working), code style violations Suggestion: Optional improvements, modern alternatives, organization tips
Audit Workflow
-
Gather Environment Info
- Neovim version (determines which deprecated APIs apply)
- Plugin manager type (lazy.nvim, packer.nvim, etc.)
- Config structure (single file vs modular)
-
Run Category Audits
- Follow audit-checklist.md categories in order
- Use grep patterns to detect issues programmatically
- Note severity for each finding
-
Check Version Compatibility
- Reference deprecated-apis.md for user's Neovim version
- Flag APIs deprecated OR removed in their version
-
Apply Best Practices
- Compare against best-practices.md
- Suggest optimizations where applicable
-
Calculate Grade
- Count Critical/Warning/Suggestion issues
- Apply scoring criteria above
- Provide overall health assessment
Output Template
<audit_report>
## Summary
- **Grade**: [A-F]
- **Neovim Version**: [detected version]
- **Config Location**: [path]
- **Plugin Count**: [count]
## Critical Issues
[List each critical issue with file:line and fix]
## Warnings
[List each warning with file:line and recommendation]
## Suggestions
[List optional improvements]
## Statistics
| Metric | Value |
|--------|-------|
| Total Lua files | X |
| Total lines | Y |
| Plugins | Z |
| Startup time | Nms |
| Deprecated APIs | N |
</audit_report>
More from bityoungjae/marketplace
mathjax-rendering
Render mathematical formulas in Obsidian using LaTeX/MathJax syntax. Use when writing equations, matrices, integrals, summations, or any mathematical notation in Obsidian notes.
27tikzjax-diagramming
Create TikZ diagrams in Obsidian using TikZJax plugin. Use when visualizing geometric shapes, coordinate systems, game scenes, circuit diagrams, chemical structures, or complex technical drawings that require precise positioning.
8commit-helper
Analyzes git changes and creates commits with Korean messages following Conventional Commits. Use when the user asks to commit, make commits, organize changes, or says "커밋해줘", "변경사항 정리해줘", "커밋 만들어줘".
5mermaid-diagramming
Create Mermaid diagrams in Obsidian including flowcharts, sequence diagrams, class diagrams, and more. Use when visualizing processes, system architectures, workflows, or any structured relationships in Obsidian notes.
5neovim-debugging
Debug Neovim/LazyVim configuration issues. Use when: user reports Neovim errors, keymaps not working, plugins failing, or config problems. Provides systematic diagnosis through hypothesis testing, not just checklists. Think like a detective narrowing down possibilities.
4project-interview
Resources for conversational interviews to create learner profiles. Used by project-interviewer agent during /init.
4