s-debug
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.zipInstalls 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.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
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.
| Task | MCP Tool |
|---|---|
| Discover targets | diagnostic.targets() |
| Get all output (after confirmed reload) | addon.output(agent_mode=true, target=...) |
| Run a snippet in game | lua.queue(code=[...], labels=[...], target=...), then lua.results(target=...) after the reload |
| Static checks | addon.lint(addon="MyAddon"), addon.security(addon="MyAddon") |
Routing Logic
| Request type | Load reference |
|---|---|
| Evidence-based, hypothesis-driven method | references/evidence-based-debugging.md |
| Lua errors, nil values | references/error-patterns.md |
| Isolation, in-game tools, strategies | references/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
- Gather evidence: ask for the reload, wait for confirmation, read
addon.outputfor the chosen target; check its freshness timestamp. - Hypothesize: write 3-5 testable "if X then Y because Z" statements.
- Instrument: add small
MechanicLib:Loglines that each map to a hypothesis. - Reproduce: ask the user to
/reloadand trigger the behaviour; wait for confirmation; read output again. - Fix the proven cause with the minimal change; reload and verify with fresh output; then remove the instrumentation.
- 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
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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| s-debug (this skill) | 0 | 9mo | Review | Advanced |
| godot | 1,044 | 7mo | Review | Intermediate |
| python-testing-patterns | 77 | 4mo | Review | Intermediate |
| error-handling-patterns | 35 | 4mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by Falkicon
View all by Falkicon →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.
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.
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.
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.
unreal-engine-cpp-pro
sickn33
Expert guide for Unreal Engine 5.x C++ development, covering UObject hygiene, performance patterns, and best practices.
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.