OpenCode Support Implementation Plan (Superpowers)

摘要

本文档是Superpowers项目为OpenCode.ai添加完整原生支持的实施计划,目标是通过抽离共享核心技能逻辑、重构现有Codex实现、开发原生OpenCode JavaScript插件,实现Superpowers技能系统对OpenCode.ai的完整支持,同时消除代码冗余,保证核心逻辑的一致性。

目标

为Superpowers添加OpenCode.ai完整支持,开发与现有Codex实现共享核心逻辑的原生JavaScript插件。

整体架构

  1. 将通用的技能发现、解析逻辑抽离到共享模块lib/skills-core.js
  2. 重构现有Codex实现,使用抽离后的共享核心
  3. 基于OpenCode原生插件API开发OpenCode插件,包含自定义工具和会话钩子

技术栈

Node.js、JavaScript、OpenCode Plugin API、Git worktrees

实施阶段与关键任务

Phase 1: 创建共享核心模块

任务内容产出
任务1:提取前置元信息(Frontmatter)解析.codex/superpowers-codex抽离YAML前置元信息解析逻辑,创建lib/skills-core.js并实现extractFrontmatter函数lib/skills-core.js
任务2:提取技能发现逻辑添加findSkillsInDir递归查找目录中所有SKILL.md技能文件更新lib/skills-core.js
任务3:提取技能路径解析逻辑添加resolveSkillPath,支持个人技能覆盖同名Superpowers技能的阴影覆盖(shadowing)规则更新lib/skills-core.js
任务4:提取更新检查逻辑添加checkForUpdates,检查Git仓库是否有远程更新,超时不阻塞启动更新lib/skills-core.js

Phase 2: 重构Codex使用共享核心

  1. .codex/superpowers-codex添加共享核心模块导入
  2. 移除本地实现的extractFrontmatter/findSkillsInDir/checkForUpdates函数,替换为共享核心版本
  3. 每步替换后验证脚本功能正常并提交变更

Phase 3: 开发OpenCode插件

任务内容
任务9:创建插件目录结构创建.opencode/plugin/superpowers.js插件脚手架
任务10:实现use_skill工具支持按名称加载技能,解析前置元信息,输出技能内容,支持个人技能阴影覆盖规则
任务11:实现find_skills工具列出所有可用的Superpowers技能和个人技能
任务12:实现会话启动钩子会话启动时自动注入using-superpowers技能说明、工具映射规则和更新通知

Phase 4: 文档更新

  1. 创建OpenCode安装指南.opencode/INSTALL.md,包含 prerequisites、安装步骤、使用说明、故障排查
  2. 更新主README.md,添加OpenCode支持板块
  3. 更新发布说明RELEASE-NOTES.md,添加OpenCode支持记录和Codex重构说明

Phase 5: 最终验证

  1. 验证Codex核心命令find-skills/use-skill/bootstrap仍然可用
  2. 验证所有新创建文件都存在,目录结构符合预期
  3. 确认所有变更已提交,工作区干净,生成实施完成总结

成功验收标准

  • lib/skills-core.js已创建并包含所有核心函数
  • .codex/superpowers-codex已重构为使用共享核心
  • ✅ Codex所有核心命令工作正常
  • ✅ 已创建.opencode/plugin/superpowers.js并包含所需工具和钩子
  • ✅ 已创建安装指南,更新了README和RELEASE-NOTES
  • ✅ 所有变更已提交,工作区干净

手动测试步骤(需要安装OpenCode)

  1. 按照安装指南完成安装
  2. 启动OpenCode会话,验证启动引导正常显示
  3. 测试find_skillsuse_skill功能正常
  4. 验证支持文件访问、个人技能阴影覆盖、工具映射规则生效