s-lint
Tools and workflow for maintaining quality and style in World of Warcraft addon development.
Install
mkdir -p .claude/skills/s-lint && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/9625" && unzip -o skill.zip -d .claude/skills/s-lint && rm skill.zipInstalls to .claude/skills/s-lint
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Ensure code quality using Luacheck linting and StyLua formatting. Covers common warnings, style rules, and auto-formatting. Use when checking code quality, fixing style issues, or preparing code for review. Triggers: lint, format, style, luacheck, stylua, code quality, warnings.Key capabilities
- →Lint Lua code
- →Format code with StyLua
- →Perform security analysis
- →Analyze code complexity
How it works
It uses Luacheck for syntax and style linting and StyLua for consistent formatting.
Inputs & outputs
When to use s-lint
- →Formatting Lua code for WoW
- →Detecting undefined globals in addons
- →Performing complexity analysis on functions
About this skill
Linting WoW Addons
Expert guidance for code quality and formatting in WoW addon development.
Related Commands
- c-lint - Lint and format workflow
- c-review - Full code review (includes lint step)
- c-clean - Cleanup workflow (dead code, stale docs)
MCP Tools
| Task | MCP Tool |
|---|---|
| Lint Addon | addon.lint(addon="MyAddon") |
| Format Addon | addon.format(addon="MyAddon") |
| Check Format Only | addon.format(addon="MyAddon", check=true) |
| Security Analysis | addon.security(addon="MyAddon") |
| Complexity Analysis | addon.complexity(addon="MyAddon") |
Capabilities
- Luacheck Linting — Detect syntax errors, undefined globals, unused variables
- StyLua Formatting — Consistent code style across all files
- Error Resolution — Fix common linting issues systematically
- Security Analysis — Detect combat lockdown violations, secret leaks, taint risks
- Complexity Analysis — Find deep nesting, long functions, magic numbers
- Dead Code Detection — For unused function analysis, use
addon.deadcode(see s-clean)
Common Luacheck Warnings
| Code | Meaning | Fix |
|---|---|---|
| W111 | Setting undefined global | Add to .luacheckrc globals or fix typo |
| W112 | Mutating undefined global | Same as W111 |
| W113 | Accessing undefined global | Check if API exists, add to read_globals |
| W211 | Unused local variable | Remove or prefix with _ |
| W212 | Unused argument | Prefix with _ (e.g., _event) |
| W213 | Unused loop variable | Prefix with _ |
| W311 | Value assigned but never used | Remove assignment or use the value |
| W431 | Shadowing upvalue | Rename the local variable |
.luacheckrc Configuration
Standard WoW addon configuration:
std = "lua51"
max_line_length = false
globals = {
-- Addon globals
"MyAddon",
}
read_globals = {
-- WoW API
"C_Timer", "C_Spell", "CreateFrame",
-- Ace3
"LibStub",
}
StyLua Configuration
Standard .stylua.toml:
column_width = 120
line_endings = "Unix"
indent_type = "Tabs"
indent_width = 4
quote_style = "AutoPreferDouble"
call_parentheses = "Always"
Quick Reference
Lint Then Format
# Check for issues
addon.lint(addon="MyAddon")
# Auto-format
addon.format(addon="MyAddon")
# Verify clean
addon.lint(addon="MyAddon")
Best Practices
- Run lint before commit — Catch issues early
- Format consistently — Use StyLua for all files
- Configure globals — Add addon-specific globals to
.luacheckrc - Prefix unused — Use
_prefix for intentionally unused variables
Security Analysis
Beyond syntax linting, use addon.security to detect runtime safety issues:
| Category | Description |
|---|---|
combat_violation | Protected API calls without InCombatLockdown() guard |
secret_leak | Logging/printing secret values (12.0+) |
taint_risk | Unsafe global modifications (_G without namespace) |
unsafe_eval | loadstring/RunScript with unsanitized input |
Complexity Analysis
Use addon.complexity to identify maintainability issues:
| Category | Threshold | Description |
|---|---|---|
deep_nesting | > 5 levels | Excessive if/for/while nesting |
long_function | > 100 lines | Functions that should be split |
long_file | > 500 lines | Files that need restructuring |
magic_number | pattern-based | Unexplained numeric literals |
For comprehensive analysis, use c-audit.
When not to use it
- →When not developing WoW addons
- →When the code is not Lua
Prerequisites
Limitations
- →Requires WoW-specific configuration
How it compares
It provides WoW-specific linting rules and security analysis for combat lockdown violations.
Compared to similar skills
s-lint side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| s-lint (this skill) | 0 | 7mo | Review | Beginner |
| pr-review | 6 | 2mo | Review | Intermediate |
| django-verification | 5 | 4mo | Review | Intermediate |
| lint-and-validate | 6 | 6mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by Falkicon
View all by Falkicon →You might also like
pr-review
pytorch
Review PyTorch pull requests for code quality, test coverage, security, and backward compatibility. Use when reviewing PRs, when asked to review code changes, or when the user mentions "review PR", "code review", or "check this PR".
django-verification
affaan-m
Verification loop for Django projects: migrations, linting, tests with coverage, security scans, and deployment readiness checks before release or PR.
lint-and-validate
davila7
Automatic quality control, linting, and static analysis procedures. Use after every code modification to ensure syntax correctness and project standards. Triggers onKeywords: lint, format, check, validate, types, static analysis.
moai-foundation-quality
modu-ai
Enterprise code quality orchestrator with TRUST 5 validation, proactive analysis, and automated best practices enforcement
code-quality-enforcer
T-rav
>
verification-loop
tom237ttkk
A comprehensive verification system for Codex work sessions.