Provides evidence-based debugging for World of Warcraft addons, focusing on Lua errors and runtime instrumentation.

Install

mkdir -p .claude/skills/s-debug && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/9631" && unzip -o skill.zip -d .claude/skills/s-debug && rm skill.zip

Installs to .claude/skills/s-debug

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.

Diagnose and fix bugs using evidence-based investigation. Requires runtime evidence before fixes—never guess based on code alone. Covers hypothesis-driven debugging, instrumentation logging, Lua errors, taint issues, combat lockdown, and API failures. Triggers: error, bug, debug, fix, crash, taint, nil value, diagnose, hypothesis, runtime, evidence, instrumentation.
368 charsno explicit “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Advanced

Key capabilities

  • →Parse Lua errors
  • →Investigate combat lockdown
  • →Analyze taint issues
  • →Trace nil value errors

How it works

It uses hypothesis-driven investigation and runtime instrumentation to diagnose bugs.

Inputs & outputs

You give it
Runtime error logs
You get back
Root cause diagnosis

When to use s-debug

  • →Identify root cause of Lua errors
  • →Investigate combat lockdown failures
  • →Debug taint issues
  • →Validate API compatibility
  • →Trace nil value errors

About this skill

Debugging WoW Addons

Systematic debugging for WoW addons. Rule one: get runtime evidence before changing code.

Related Commands

  • c-debug - Reload-loop workflow for finding and fixing issues
  • c-review - Full code review (includes a debug step)

MCP Tools

Call MCP tools directly, never the shell. The target and reload protocol is defined once in using-mechanic: pick a diagnostic.targets entry, pass the same target everywhere, ask the user to /reload, wait for confirmation, then read.

TaskMCP Tool
Discover targetsdiagnostic.targets()
Get all output (after confirmed reload)addon.output(agent_mode=true, target=...)
Run a snippet in gamelua.queue(code=[...], labels=[...], target=...), then lua.results(target=...) after the reload
Static checksaddon.lint(addon="MyAddon"), addon.security(addon="MyAddon")

Routing Logic

Request typeLoad reference
Evidence-based, hypothesis-driven methodreferences/evidence-based-debugging.md
Lua errors, nil valuesreferences/error-patterns.md
Isolation, in-game tools, strategiesreferences/debugging-strategies.md
Error tracking (BugGrabber)../../../docs/integration/errors.md
Troubleshooting guide../../../docs/integration/troubleshooting.md
Structured logging../../../docs/integration/console.md
Frame inspection../../../docs/integration/inspect.md

Debug output: MechanicLib:Log, not print

print spams chat and needs a screenshot. MechanicLib:Log goes to the Console buffer, which addon.output returns, and is filterable and copyable. The first argument is your addon name; categories are tags such as CORE, API, EVENT, COOLDOWN, SECRET, PERF (mechaniclib).

local MechanicLib = LibStub("MechanicLib-1.0", true)
if MechanicLib then
    MechanicLib:Log("MyAddon", "value=" .. tostring(val), MechanicLib.Categories.CORE)
end

Console lines reach the desktop only through the addon's getDebugBuffer capability (last 50 lines per addon) and the hub's own buffer, after a reload. Do not log secret values (guard with issecretvalue).

Systematic workflow

  1. Gather evidence: ask for the reload, wait for confirmation, read addon.output for the chosen target; check its freshness timestamp.
  2. Hypothesize: write 3-5 testable "if X then Y because Z" statements.
  3. Instrument: add small MechanicLib:Log lines that each map to a hypothesis.
  4. Reproduce: ask the user to /reload and trigger the behaviour; wait for confirmation; read output again.
  5. Fix the proven cause with the minimal change; reload and verify with fresh output; then remove the instrumentation.
  6. Say plainly what was verified in game and what was not.

Common error patterns

  • attempt to index nil value: an API returned nil; check that the unit/data exists.
  • Action blocked by Blizzard / ADDON_ACTION_BLOCKED: a protected function was called in combat or from tainted code.
  • Interface action failed because of an AddOn: taint reached a secure UI path; find the first insecure write.
  • Secret-value errors (12.0+): arithmetic, comparison or concatenation on a value flagged by issecretvalue.

When not to use it

  • →When guessing based on code alone
  • →When runtime evidence is missing

Prerequisites

MechanicLib

Limitations

  • →Requires runtime evidence

How it compares

It mandates evidence-based investigation rather than guessing based on code.

Compared to similar skills

s-debug side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
s-debug (this skill)09moReviewAdvanced
godot1,0447moReviewIntermediate
python-testing-patterns774moReviewIntermediate
error-handling-patterns354moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

godot

bfollington

This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.

1,0441,947

python-testing-patterns

wshobson

Implement comprehensive testing strategies with pytest, fixtures, mocking, and test-driven development. Use when writing Python tests, setting up test suites, or implementing testing best practices.

77204

error-handling-patterns

wshobson

Master error handling patterns across languages including exceptions, Result types, error propagation, and graceful degradation to build resilient applications. Use when implementing error handling, designing APIs, or improving application reliability.

35170

chrome-devtools

mrgoonie

Browser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and JavaScript debugging.

41157

unreal-engine-cpp-pro

sickn33

Expert guide for Unreal Engine 5.x C++ development, covering UObject hygiene, performance patterns, and best practices.

43117

python-performance-optimization

wshobson

Profile and optimize Python code using cProfile, memory profilers, and performance best practices. Use when debugging slow Python code, optimizing bottlenecks, or improving application performance.

27131

Search skills

Search the agent skills registry