前言¶
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