dsh-specflow:把规格、计划与任务进度保留在仓库里的 DSH 插件

前言

在 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 测试。

核心功能

提供可复用的工作流命令

插件提供五个可移植技能:constitutionspecifyplan-spectasksimplement

插件还提供六个可发现命令:/specflow/constitution/specify/plan-spec/tasks/implement

将工件保存在仓库中

SpecFlow 提供 spec.mdplan.mdtasks.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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜