前言¶
在 DSH 會話裏推進一個功能時,需求、設計決定和任務清單常常散落在一次對話中。會話重啓後,如果只有聊天記錄,重新接上工作就會比較費勁。dsh-specflow 的思路是把工作保存在倉庫中:後續會話讀取同一批工件,找到下一個未完成任務,並恢復對應的 DSH goal。
這是什麼¶
dsh-specflow 是 lonelymoon87 維護的 DeepSeek Harness(DSH)插件,描述爲 Specification-driven development workflows for DeepSeek Harness。許可證爲 MIT。
它支持 DSH >=0.1.0-rc.6 <0.2.0 插件 API,並要求 Node.js ^22.19.0 || >=24.0.0。v0.1.4 已在 npm 發佈,資料稱其經過 DSH 0.1.0-rc.8 和 0.1.1-rc.1 測試。
核心功能¶
提供可複用的工作流命令¶
插件提供五個可移植技能:constitution、specify、plan-spec、tasks、implement。
插件還提供六個可發現命令:/specflow、/constitution、/specify、/plan-spec、/tasks、/implement。
將工件保存在倉庫中¶
SpecFlow 提供 spec.md、plan.md 和 tasks.md 模板,並將工作保存在倉庫中。後續會話可以讀取這些工件,並恢復未完成任務。
支持 DSH goal 與顯式恢復¶
/implement 支持創建 DSH goal 並顯式恢復。/implement 會拒絕替換不相關的活躍 goal。
讀取任務進度¶
specflow_status 工具從 tasks.md 讀取複選框進度。任務完成僅按 Markdown 複選框行計數。
當 autoInjectContext 啓用時,活躍 goal 與最近觀察到的任務計數會作爲模型可見的 DSH runtime context。
文件訪問與權限邊界¶
SpecFlow 通過已掛載的 DSH 文件系統服務讀取 tasks.md。技能可請求在 .dsh/memory/ 與 .dsh/specs/ 下創建或更新文件,並遵循 profile 的工具與審批策略。
插件不進行網絡請求、不解析憑據、不發送遙測,也不註冊自定義持久化會話事件。
安裝與啓用¶
先添加插件到 web profile:
dsh plugin --profile web add dsh-specflow
再啓動 DSH:
dsh web
經過上面的步驟後,可以在 DSH 會話中輸入 /specflow 查看工作流。
如果採用固定來源安裝,會運行 prepare 構建;pnpm 10 及更高版本可能需要先按提示允許精確包鍵。
典型用法¶
一個完整示例如下,其中 001-resumable-exports 是規格目錄名:
/constitution Require focused tests for every behavior change
/specify Add resumable exports to the CLI
/plan-spec 001-resumable-exports
/tasks 001-resumable-exports
/implement 001-resumable-exports
上面的命令先寫入約束,再生成規格、計劃和任務,並進入實現。
重啓或新會話後,可以用下面命令恢復:
/specflow 001-resumable-exports
/implement 001-resumable-exports
/specflow <NNN-slug> 會報告持久化複選框進度、下一任務、工件路徑和準確恢復命令。
適用場景與注意¶
適合在 DSH 中開發功能、希望把規格、計劃與任務清單落到倉庫裏的開發者,尤其是需要跨會話恢復未完成任務的場景。
插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。資料中的許可證爲 MIT;使用前還應確認所用 DSH 版本、profile 配置和審批策略符合團隊要求。
相關鏈接¶
- GitHub:https://github.com/lonelymoon87/dsh-specflow
- 資料中給出的目錄頁:https://www.skillhub.cn/plugins/lonelymoon87/dsh-specflow