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.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
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:
1. **Ask** the user to `/reload` in WoW (or trigger via keybinding CTRL+SHIFT+R)
2. **Wait** for the user to confirm the reload is complete
3. **Then** use the `addon.output` MCP tool (agent_mode=true) to get errors, tests, and console logs
> **CRITICAL**: Do NOT call `addon.output` immediately 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](https://github.com/Falkicon/afd)
1. **Tool-First**: All functionality exists as an MCP tool before any UI
2. **Structured Results**: Tools return predictable JSON with `success`, `data`, `error`
3. **Agent Mode**: Use `agent_mode=true` for AI-optimized output
## Related Knowledge
- [k-mechanic](../k-mechanic/SKILL.md) - Deep dive into Mechanic tools
- [k-fencore](../k-fencore/SKILL.md) - FenCore library details
- [k-fenui](../k-fenui/SKILL.md) - FenUI widget library
No comments yet. Be the first to comment!