Skip to content

Latest commit

 

History

History
104 lines (70 loc) · 4.41 KB

File metadata and controls

104 lines (70 loc) · 4.41 KB

Why oso: OpenSpec + Superpowers 为什么需要桥接

各自的定位

工具 职责 接口 产出
Superpowers 方法论(HOW) 提供开发流程指导 Skill tool / Read SKILL.md 方法步骤
OpenSpec 治理(WHAT) 定义 artifact 及依赖关系 openspec CLI 文件结构

两者在设计上是完全正交的——没有任何一层意识到彼此的存在。要把它们配合使用,用户需要自己填补 6 道鸿沟。


鸿沟 1:工具接口不同

Superpowers skills 设计为通过 Skill 工具调用(Claude Code 原生支持)。

但 OpenSpec 的 instruction 字段写的是 "Use the Skill tool to invoke superpowers:brainstorming"——如果你的平台不支持 Skill 工具(如 OpenCode、Gemini CLI 等),这个 instruction 直接不可用。

必须手动逐条改成 Read 方式。

鸿沟 2:路径随环境变化

Superpowers skill 文件的实际路径因平台 + 用户名 + 安装方式不同而变化:

Windows: C:\Users\Alice\.cache\opencode\packages\...\brainstorming\SKILL.md
Linux:   /home/bob/.cache/opencode/packages/.../brainstorming/SKILL.md

schema.yaml 里写死的路径换台机器就炸。必须在每台机器上手动查找并替换所有路径(涉及 7 个 skill、4 个文件共 10+ 处)。

鸿沟 3:没有 skill ↔ artifact 映射

两边各自有一套实体,但没有标准对应关系:

Superpowers skill OpenSpec artifact 手动集成的工作
brainstorming brainstorm 写 instruction:去读 SKILL.md → 填 brainstorm.md 模板
writing-plans plan 同上,重复
subagent-driven-dev apply 阶段 写 instruction:调度子 Agent TDD 编码
using-git-worktrees apply 阶段 写 instruction:创建 worktree
finishing-branch finish 阶段 写 instruction:合并策略

7 个 skills × 7 个 artifacts,每个 instruction 都要手动写路径 + 配模板 + 指定输出位置。全部是手工作业,没有复用性。

鸿沟 4:没有编排层

按照 OpenSpec 的设计,生成一个变更的全部 artifact 需要:

openspec instructions brainstorm --change X
  → 读 brainstorming skill → 写 brainstorm.md
openspec instructions proposal --change X
  → 读 writing-plans skill → 写 proposal.md
openspec instructions specs --change X
  → 读 writing-plans skill → 写 specs.md
...(重复 7 次)

每次都要手动敲命令、读 skill、写文件。7 个 artifact 就要 7 轮手动操作。

12 个 OPSX 命令就是为了解决这个——每条命令封装一个完整阶段(创建/实现/验证/收尾),用户一个 /opsx-ff 走完所有 7 个 artifact 的生成。

鸿沟 5:没有版本兼容性保障

Superpowers 更新后 skill 内容可能变化(如 brainstorming 流程改版)。schema.yaml 里的 instruction 写的是"读这个文件然后执行",但:

  • 谁来判断新版 skill 和现有 instruction 是否兼容?
  • 兼容性断裂时谁会告警?
  • 如何回滚到已知可用的版本?

这些没有标准机制。

skills.lock.json 做的就是这件事:记录 7 个 skill 文件在部署时的 SHA-256 哈希,后续部署时自动比对,哈希不匹配则 WARNING。

鸿沟 6:没有变更隔离

即便 1-5 全部手工配好,也只能在一个工作目录下一次做一个变更。

想做第二个变更?要么等当前的 finish,要么手动 git stash——然后面临上下文切换丢失、变更碎片化的风险。

worktree 隔离是在你真正用这个组合做多变更开发时才会遇到的瓶颈。但它恰恰是 AI 编码场景下最高频的需求。


总结

鸿沟 没有 oso 有 oso
工具接口 手动改 7 条 instruction 预置适配
路径 每台机器手动替换 10+ 处路径 setup 脚本自动检测并替换
映射 手动维护 skill ↔ artifact 对应关系 写入 schema.yaml,开箱即用
编排 手动敲 7 轮命令完成一个变更 /opsx-ff 一键完成
版本锁 无,靠人工注意 SHA-256 自动校验
隔离 无,多变更冲突 git worktree 强制执行
# 没有 oso:数小时手工配置,每次换机器重来
# 有 oso:
npm install -g @moyaspace/openspec-superpowers-opencode
openspec-superpowers-opencode init my-project
# 以上 6 个鸿沟一次填平