插件系统架构
Plugin System Architecture
实现完整的插件生命周期:声明式元数据、钩子注册、技能系统和 marketplace 分发
子问题
1.插件元数据声明与发现
2.生命周期钩子注册机制
3.技能(Skill)系统设计
4.依赖缓存与智能安装
5.跨平台运行时自动发现与 PATH 修复
6.插件禁用状态的零开销快速检查
7.Mode 配置继承与多语言变体管理
8.MCP 服务作为 worker HTTP API 的协议桥接
各项目的解法1 solutions
Signals
横向对比
| 维度 | claude-mem |
|---|---|
| 插件声明方式 | plugin.json + hooks.json + .mcp.json 三文件声明式配置 |
| 钩子注册机制 | hooks.json 声明 5 种生命周期事件,matcher glob 模式匹配 |
| 技能系统 | SKILL.md YAML frontmatter 声明,Claude Code 自动加载 |
| 依赖管理 | smart-install.js 版本标记缓存,Bun/npm 双 fallback |
| 运行时架构 | 独立 worker 守护进程 + HTTP API + MCP stdio 代理 |
| 优雅降级 | transport/client 错误二分类,worker 不可用时 exit 0 静默 |
| 分发渠道 | marketplace 安装 + npm SDK 双分发,exports 字段多入口 |
| Mode 扩展 | JSON 配置继承(parent--override),支持 30+ 语言变体 |
最佳实践
1.使用 hooks.json 声明式注册钩子,避免硬编码生命周期绑定
2.每个钩子脚本入口先做 O(1) 禁用检查,避免禁用插件产生进程开销
3.未知事件类型返回 no-op handler 而非抛异常,确保前向兼容
4.版本标记文件同时记录包版本和运行时版本,任一变更触发重装
5.worker 不可用时 exit 0 优雅降级,client bug 时 exit 2 阻塞报错