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.zip

Installs 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.
279 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Beginner

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

You give it
Lua source code
You get back
Linted and formatted code

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

TaskMCP Tool
Lint Addonaddon.lint(addon="MyAddon")
Format Addonaddon.format(addon="MyAddon")
Check Format Onlyaddon.format(addon="MyAddon", check=true)
Security Analysisaddon.security(addon="MyAddon")
Complexity Analysisaddon.complexity(addon="MyAddon")

Capabilities

  1. Luacheck Linting — Detect syntax errors, undefined globals, unused variables
  2. StyLua Formatting — Consistent code style across all files
  3. Error Resolution — Fix common linting issues systematically
  4. Security Analysis — Detect combat lockdown violations, secret leaks, taint risks
  5. Complexity Analysis — Find deep nesting, long functions, magic numbers
  6. Dead Code Detection — For unused function analysis, use addon.deadcode (see s-clean)

Common Luacheck Warnings

CodeMeaningFix
W111Setting undefined globalAdd to .luacheckrc globals or fix typo
W112Mutating undefined globalSame as W111
W113Accessing undefined globalCheck if API exists, add to read_globals
W211Unused local variableRemove or prefix with _
W212Unused argumentPrefix with _ (e.g., _event)
W213Unused loop variablePrefix with _
W311Value assigned but never usedRemove assignment or use the value
W431Shadowing upvalueRename 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

  1. Run lint before commit — Catch issues early
  2. Format consistently — Use StyLua for all files
  3. Configure globals — Add addon-specific globals to .luacheckrc
  4. Prefix unused — Use _ prefix for intentionally unused variables

Security Analysis

Beyond syntax linting, use addon.security to detect runtime safety issues:

CategoryDescription
combat_violationProtected API calls without InCombatLockdown() guard
secret_leakLogging/printing secret values (12.0+)
taint_riskUnsafe global modifications (_G without namespace)
unsafe_evalloadstring/RunScript with unsanitized input

Complexity Analysis

Use addon.complexity to identify maintainability issues:

CategoryThresholdDescription
deep_nesting> 5 levelsExcessive if/for/while nesting
long_function> 100 linesFunctions that should be split
long_file> 500 linesFiles that need restructuring
magic_numberpattern-basedUnexplained 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

LuacheckStyLua

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.

SkillInstallsUpdatedSafetyDifficulty
s-lint (this skill)07moReviewBeginner
pr-review62moReviewIntermediate
django-verification54moReviewIntermediate
lint-and-validate66moReviewBeginner

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry