AgentSkillsCN

s-develop

使用Ace3框架和暴雪UI API的核心WoW插件开发模式。涵盖事件驱动设计、SavedVariables、帧架构和API弹性。当构建插件、设计系统或集成库时使用。触发词:插件、WoW、Lua、Ace3、帧、事件、SavedVariables、架构。

SKILL.md
--- frontmatter
name: s-develop
description: >
  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.

Developing WoW Addons

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

Related Commands

  • c-develop - Build or extend addon features workflow

CLI Commands (Use These First)

MANDATORY: Always use CLI commands before manual exploration.

TaskCommand
Create Addonmech call addon.create -i '{"name": "MyAddon"}'
Sync Junctionsmech call addon.sync -i '{"addon": "MyAddon"}'
Validate TOCmech call addon.validate -i '{"addon": "MyAddon"}'
Check Librariesmech call libs.check -i '{"addon": "MyAddon"}'
Sync Librariesmech 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 typeLoad reference
Addon architecture, layers../../docs/addon-architecture.md
Event registration, callbacksreferences/event-patterns.md
Frame creation, UI engineeringreferences/frame-engineering.md
SavedVariables, AceDBreferences/saved-variables.md
Combat lockdown, secure codereferences/combat-lockdown.md
Blizzard API, C_ namespacesreferences/api-patterns.md
MechanicLib integration../../docs/integration/mechaniclib.md
Performance profiling../../docs/integration/performance.md

Quick Reference

Create New Addon

bash
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