| name | k-ecosystem |
| description | Context for the Mechanic/Fen WoW addon development ecosystem. Covers all components (Mechanic, FenCore, FenUI, MechanicLib), their relationships, and AFD principles. Load this at the start of addon work. Triggers: ecosystem, fen, fencore, fenui, mechanic, addon, context. |
Fen Ecosystem
The Mechanic/Fen ecosystem is a unified platform for WoW addon development.
The Reload Loop (MANDATORY)
After ANY addon code change, you MUST verify the changes in-game:
- Ask the user to
/reloadin WoW (or trigger via keybinding CTRL+SHIFT+R) - Wait for the user to confirm the reload is complete
- Then use the
addon.outputMCP tool (agent_mode=true) to get errors, tests, and console logs
CRITICAL: Do NOT call
addon.outputimmediately after changes. The timing between reload and SavedVariables sync is unpredictable. Always wait for user confirmation.
Ecosystem Components
| Component | Purpose | Key Tools |
|---|---|---|
| Mechanic | Development hub (CLI, MCP, Dashboard) | env.status, addon.output, addon.lint, addon.test |
| FenCore | Pure logic library (no UI dependencies) | fencore.catalog, fencore.search, fencore.info |
| FenUI | UI widget library (frames, layouts) | Layout, Panel, Tabs, Grid, Buttons |
| MechanicLib | Bridge library (addon ↔ Mechanic) | RegisterAddon, Print, RegisterTest |
Component Relationships
┌─────────────────────────────────────────────────────┐
│ Your Addon │
├─────────────────────────────────────────────────────┤
│ Core Layer │ Bridge Layer │ View Layer │
│ (Pure Logic) │ (Events/Data) │ (UI Frames) │
│ │ │ │
│ Uses: FenCore │ Uses: Ace3 │ Uses: FenUI │
└─────────────────────────────────────────────────────┘
│ │ │
└────────────┬────┴─────────────────┘
│
┌───────▼───────┐
│ MechanicLib │ (Registers addon with Mechanic)
└───────┬───────┘
│
┌───────▼───────┐
│ Mechanic │ (Development hub)
└───────────────┘
Essential MCP Tools
| Task | MCP Tool |
|---|---|
| Get Addon Output | addon.output(agent_mode=true) |
| Lint Code | addon.lint(addon="MyAddon") |
| Run Tests | addon.test(addon="MyAddon") |
| Search APIs | api.search(query="*Spell*") |
| Search FenCore | fencore.search(query="clamp") |
| Env Status | env.status() |
AFD Core Principles
Mechanic follows Agent-First Development (AFD) — github.com/Falkicon/afd
- Tool-First: All functionality exists as an MCP tool before any UI
- Structured Results: Tools return predictable JSON with
success,data,error - Agent Mode: Use
agent_mode=truefor AI-optimized output
Related Knowledge
- k-mechanic - Deep dive into Mechanic tools
- k-fencore - FenCore library details
- k-fenui - FenUI widget library