| name | s-clean |
| description | Find and remove dead code and stale documentation. Covers unused functions, orphaned files, dead links, and outdated references. Use for maintenance, pre-release cleanup, or codebase hygiene. Triggers: clean, dead code, unused, orphan, stale, cruft, maintenance.
|
Cleaning WoW Addons
Expert guidance for finding and removing cruft in addon codebases.
Related Commands
MCP Tools
| Task |
MCP Tool |
| Find Dead Code |
addon.deadcode(addon="MyAddon") |
| Find Stale Docs |
docs.stale(addon="MyAddon") |
| Filter by Confidence |
addon.deadcode(addon="MyAddon", include_suspicious=false) |
Capabilities
- Dead Code Detection — Find unused functions, orphaned files, dead exports
- Stale Docs Detection — Find broken links, outdated refs, version drift
- Confidence Levels — Definite (100%), Likely (90%+), Suspicious (70%+)
Detection Categories
Dead Code (addon.deadcode)
| Category |
Description |
unused_function |
Functions defined but never called |
orphaned_file |
Lua files not in TOC |
dead_export |
Exported values never used |
unused_library |
Libraries in Libs/ never used |
stale_event |
Event handlers for unregistered events |
commented_code |
Large blocks of commented-out code |
Stale Docs (docs.stale)
| Category |
Description |
dead_link |
Internal links to non-existent files |
dead_reference |
Mentions of functions/files that don't exist |
version_drift |
Old version numbers in documentation |
relative_staleness |
Docs not updated in many commits |
Workflow
Quick Cleanup
- Run
addon.deadcode with include_suspicious=false for high-confidence issues only
- Remove identified dead code
- Run
docs.stale to find documentation issues
- Fix broken links and update outdated references
Deep Cleanup
- Run
addon.deadcode with all confidence levels
- Manually verify suspicious findings before removal
- Run
docs.stale with all techniques
- Update documentation to match current code
Confidence Interpretation
| Level |
Meaning |
Action |
| Definite |
100% certain (e.g., file not in TOC) |
Safe to remove |
| Likely |
90%+ certain (e.g., function never called) |
Review briefly, usually safe |
| Suspicious |
70%+ certain (e.g., dynamic code patterns) |
Manual verification required |
Best Practices
- Start with definite issues — These are safe to fix immediately
- Check dynamic patterns —
_G, rawget, loadstring may hide usage
- Preserve intentional dead code — Mark with
-- KEEP: comment if needed
- Update docs after code changes — Run
docs.stale after refactoring