问题域/PD-188

插件系统架构

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 阻塞报错