name: add-platform description: 'Add support for a new target platform to acplugin (e.g., Windsurf, Zed, etc.)'
添加新目标平台
当需要支持新的 AI 编程工具作为转换目标时,按以下步骤操作。
前置调研
-
了解目标平台的配置格式:
- Skills/技能文件格式和路径
- 自定义指令文件(类似 CLAUDE.md / AGENTS.md)
- MCP 服务器配置格式
- Agent 定义方式(如果有)
- 命令/斜杠命令格式
- Hooks 系统(如果有)
-
确认格式差异和降级策略
实施步骤
1. 类型注册 (src/types.ts)
在 Platform 联合类型中添加新值:
export type Platform = 'codex' | 'opencode' | 'cursor' | 'newplatform';
2. 每个 Converter 添加分支
在所有 src/converter/*.ts 文件中,给 switch (platform) 添加新的 case。
参考现有平台的转换逻辑,特别关注:
- 路径映射:新平台的目录结构
- Frontmatter 差异:新平台是否需要特殊字段
- 降级策略:不支持的功能如何处理
3. 创建 Writer (src/writer/newplatform.ts)
复制 cursor.ts 作为模板,修改平台名:
export function generateNewPlatform(scan: ScanResult): ConvertResult { ... }
4. CLI 注册 (src/index.ts)
generateForPlatform()添加新 casevalidPlatforms数组添加新值- import 新 writer
5. TUI 注册 (src/tui.ts)
在 selectPlatforms() 的 choices 中添加新选项。
6. 测试
- 每个 converter 测试文件添加新平台的用例
- 新增
src/__tests__/newplatform-writer.test.ts(可选)
7. 文档
- 更新 README.md 和 README.zh-CN.md 的支持矩阵表格
- 更新 llmdoc/reference/conversion-matrix.md
降级策略参考
| 场景 | 推荐策略 |
|---|---|
| 平台无 Agent 系统 | 降级为指令/规则文件 |
| 平台无 Hooks | 记录为文档 + 输出 warning |
| 平台 MCP 格式不同 | 做字段映射转换 |
| 平台无 Skills 概念 | 转为命令或规则文件 |
| Claude 特有字段 | 保留为 HTML 注释 |