s-develop

Falkicon's avatarfrom Falkicon

Core WoW addon development patterns using Ace3 framework and Blizzard UI APIs. Covers event-driven design, SavedVariables, frame architecture, and API resilience. Use when building addons, designing systems, or integrating libraries. Triggers: addon, WoW, Lua, Ace3, frame, event, SavedVariables, architecture.

⭐6stars🔀0forks📁View on GitHub🕐Updated Jan 7, 2026

When & Why to Use This Skill

This Claude skill provides expert guidance and automated workflows for World of Warcraft (WoW) addon development. It leverages the Ace3 framework and Blizzard UI APIs to help developers implement robust event-driven designs, manage persistent SavedVariables, and build resilient frame architectures. By focusing on testability, maintenance, and combat-safe programming, it streamlines the creation of high-quality game modifications.

Use Cases

  • Bootstrap new WoW addons with automated TOC validation and library synchronization using dedicated CLI commands.
  • Design scalable UI architectures using a three-layer pattern (Core/Bridge/View) to separate logic from presentation and improve maintainability.
  • Implement robust event-driven systems that register callbacks and handle game state changes efficiently without performance-heavy polling.
  • Manage complex user configurations and database defaults using AceDB integration and versioned SavedVariables.
  • Develop combat-aware interfaces that safely navigate combat lockdown and avoid UI 'taint' through secure handlers and defensive API usage.
names-develop
description>
Triggersaddon, WoW, Lua, Ace3, frame, event, SavedVariables, architecture.

Developing WoW Addons

Expert guidance for building World of Warcraft addons with a focus on testability and maintenance.

  • c-develop - Build or extend addon features workflow

CLI Commands (Use These First)

MANDATORY: Always use CLI commands before manual exploration.

Task Command
Create Addon mech call addon.create -i '{"name": "MyAddon"}'
Sync Junctions mech call addon.sync -i '{"addon": "MyAddon"}'
Validate TOC mech call addon.validate -i '{"addon": "MyAddon"}'
Check Libraries mech call libs.check -i '{"addon": "MyAddon"}'
Sync Libraries mech call libs.sync -i '{"addon": "MyAddon"}'

Capabilities

  1. Event-Driven Design — Register events, handle callbacks, bucket patterns
  2. Frame Architecture — Three-layer design (Core/Bridge/View), layouts, templates
  3. SavedVariables — Database design, AceDB, versioning, defaults
  4. Combat Lockdown — Protected functions, taint avoidance, secure handlers
  5. API Resilience — Defensive programming, C_ namespaces, secret values

Routing Logic

Request type Load reference
Addon architecture, layers ../../docs/addon-architecture.md
Event registration, callbacks references/event-patterns.md
Frame creation, UI engineering references/frame-engineering.md
SavedVariables, AceDB references/saved-variables.md
Combat lockdown, secure code references/combat-lockdown.md
Blizzard API, C_ namespaces references/api-patterns.md
MechanicLib integration ../../docs/integration/mechaniclib.md
Performance profiling ../../docs/integration/performance.md

Quick Reference

Create New Addon

mech call addon.create -i '{"name": "MyAddon", "author": "Name"}'
mech call addon.sync -i '{"addon": "MyAddon"}'

Core Principles

  1. Headless Core: Keep logic in pure Lua functions (Layer 1)
  2. Event-Driven: Avoid OnUpdate polling; use events (Layer 2)
  3. Defensive API: Always check for nil and use pcall for uncertain APIs
  4. Combat Aware: Never modify protected frames in combat