# mm API Event事件开发

在mm_os框架中开发API Event事件。Event分App级和Plugin级，覆盖5个阶段（before→check→main→render→after）。触发关键词：mm事件、事件路由、event开发。

## 执行步骤

### 步骤0：获取运行路径
使用 `get_run_path` 工具获取当前程序运行根目录，确认是否为 mm_os 项目。

### 步骤1：读取相关常识知识
使用 `read_knowledge knowledge_name='mm_event_system'` — Event 两级结构、五阶段、配置格式、脚本模式、与API关系

### 步骤2：读取工作提示词
使用 `read_work work_name='develop_mm_api_event'` — 完整开发流程（含App级和Plugin级）
使用 `read_work work_name='config_mm_event'` — event.json 配置细节
使用 `read_work work_name='script_mm_event'` — main.js/index.js 脚本编写

### 步骤3：确定 Event 层级和阶段
- App 级（`app/{模块名}/event_api/`）还是 Plugin 级（`app/{模块名}/plugin/{插件名}/event_api/`）
- 选择触发阶段：before / check / main / render / after

### 步骤4：配置event.json
App 级用单对象格式，Plugin 级用数组格式。使用 `write_text` 编写。

### 步骤5：编写事件处理器
App 级用 `module.exports = { _init, main }`，Plugin 级用 `exports.main = main`。使用 `write_text` 编写。

### 步骤6：测试事件触发
验证事件在指定阶段是否正确触发和执行。

## 输出成果
1. event.json 配置 / main.js（或 index.js/before.js/after.js）事件处理器

## 失败处理
- 若事件不触发，检查 stage 配置和 target 路径
- 若处理逻辑异常，添加日志排查

## 禁止行为
- ❌ 禁止事件处理中阻塞API主流程
- ❌ 禁止忽略事件处理的异常捕获
- ❌ 禁止跳过 `get_run_path` 直接操作文件