前言¶
OpenSpec 提供了一套规范驱动开发(SDD)的工作流:从探索(explore)到提议(propose),再到实现(apply)和归档(archive)。在 DeepSeek Harness(DSH)中,Agent 技能通常需要挂载到特定目录(如 .agents/skills)才能被识别,且裸命令需要能被解析。
dsh-openspec 解决了这两个问题:它将 OpenSpec 接入 DSH,内置了六个 Agent Skill,并直接从插件自身的依赖中解析 openspec CLI。无需全局安装,也不需要在每个项目中手动拷贝 .agents/skills。
安装与启用¶
通过官方命令安装插件:
dsh plugin add /path/to/dsh-openspec
安装后,插件会以内置(bundled)提供方的形式挂载六个 skill,并在 profile 加载时尝试安装 CLI 启动器(shim)。重启 profile 即可生效。
内置能力¶
插件内置了六个与 OpenSpec 工作流对应的 Skill:
- openspec-explore:思考伙伴,用于在变更前后探索想法、排查问题、澄清需求。
- openspec-propose:一步创建变更及其全部规划产物(proposal、spec delta、design、tasks)。
- openspec-apply-change:实现某个变更的任务清单。
- openspec-update-change:修订已有变更的规划产物(绝不修改代码)。
- openspec-sync-specs:把变更的 delta spec 合入主 spec,但不归档。
- openspec-archive-change:完成并归档一个变更。
使用流程¶
使用前,需要在项目目录初始化 OpenSpec:
openspec init --tools agents
初始化后,Agent 可以通过自然语言直接触发上述 Skill:
- 探索需求:输入“帮我想想怎么加暗色模式”,触发
openspec-explore。 - 创建变更:输入“提一个 add-dark-mode 变更”,触发
openspec-propose。 - 开始实现:输入“开始实现这个变更”,触发
openspec-apply-change。 - 归档变更:输入“归档它”,触发
openspec-archive-change。
命令行接口¶
插件提供了几个辅助命令,主要用于诊断和 CLI 接线:
/openspec doctor:诊断 Skill 数量、CLI 版本与入口,以及 shell 实际解析到的二进制路径。/openspec shim:将openspec启动器安装到 PATH。/openspec uninstall-shim:移除由本插件写入的启动器。/openspec init <绝对路径>:在指定绝对路径下执行openspec init --tools agents。
设计细节与注意¶
- 内置挂载:插件使用
bundledSkillDir挂载 Skill,这意味着它不依赖项目根目录的 Git 探测。在 git 仓库之外的工作区,Skill 依然可见。 - 目录冲突:插件不占用
.agents/skills目录,避免了与 Codex、Zed Agent 等工具的目录冲突。 - 规范归属:插件只负责分发能力,
openspec/目录保留在项目本地,不会被插件接管。 - 优先级:在 git 仓库内,如果项目目录存在
.agents/skills,其优先级高于内置副本。
总结¶
dsh-openspec 是一个开源插件(MIT 许可证),旨在简化 OpenSpec 在 DSH 中的集成。它通过内置 Skill 和依赖解析,消除了手动配置 Skill 目录和全局安装 CLI 的繁琐步骤,适合希望在 DSH 中使用规范驱动开发流程的开发者。
- GitHub: https://github.com/tamashi486/dsh-openspec
- Catalog: https://www.skillhub.cn/plugins/tamashi486/dsh-openspec