Introduction¶
When pushing a feature in a DSH session, requirements, design decisions, and task lists are often scattered in a single conversation. After restarting the session, if only chat history remains, resuming the work can be quite laborious. The idea behind dsh-specflow is to save the work in the repository: subsequent sessions read the same batch of artifacts, find the next unfinished task, and restore the corresponding DSH goal.
What is this¶
dsh-specflow is a DeepSeek Harness (DSH) plugin maintained by lonelymoon87, described as “Specification-driven development workflows for DeepSeek Harness”. The license is MIT.
It supports the DSH plugin API >=0.1.0-rc.6 <0.2.0 and requires Node.js ^22.19.0 || >=24.0.0. v0.1.4 has been published on npm, and the documentation states it has been tested with DSH 0.1.0-rc.8 and 0.1.1-rc.1.
Core Features¶
Providing Reusable Workflow Commands¶
The plugin provides five portable skills: constitution, specify, plan-spec, tasks, implement.
The plugin also provides six discoverable commands: /specflow, /constitution, /specify, /plan-spec, /tasks, /implement.
Storing Artifacts in the Repository¶
SpecFlow provides spec.md, plan.md, and tasks.md templates and saves the work in the repository. Subsequent sessions can read these artifacts and resume unfinished tasks.
Supporting DSH Goals with Explicit Recovery¶
/implement supports creating a DSH goal and explicit recovery. /implement will refuse to replace unrelated active goals.
Reading Task Progress¶
The specflow_status tool reads checkbox progress from tasks.md. Task completion is counted only by Markdown checkbox lines.
When autoInjectContext is enabled, the active goal and the most recently observed task count are presented as the DSH runtime context visible to the model.
File Access and Permission Boundaries¶
SpecFlow reads tasks.md via the mounted DSH filesystem service. Skills can request to create or update files under .dsh/memory/ and .dsh/specs/, following the profile’s tool and approval policies.
The plugin does not make network requests, parse credentials, send telemetry, or register custom persistence session events.
Installation and Enablement¶
First, add the plugin to the web profile:
dsh plugin --profile web add dsh-specflow
Then, start DSH:
dsh web
After the steps above, you can enter /specflow in a DSH session to view the workflow.
If using fixed-source installation, it will run the prepare build; pnpm 10 and higher versions may need to allow exact package keys first as prompted.
Typical Usage¶
A complete example is as follows, where 001-resumable-exports is the specification directory name:
/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
The commands above first write constraints, then generate specs, plans, and tasks, and enter implementation.
After a restart or new session, you can use the following commands to resume:
/specflow 001-resumable-exports
/implement 001-resumable-exports
/specflow <NNN-slug> will report persisted checkbox progress, the next task, artifact paths, and the accurate recovery command.
Applicable Scenarios and Notes¶
Suitable for developers developing features in DSH who want to put specs, plans, and task lists into the repository, especially in scenarios requiring cross-session recovery of unfinished tasks.
The plugin runs with the current dsh process permissions; source code and license should be checked before installation. The license in the documentation is MIT; before use, you should also confirm that the DSH version, profile configuration, and approval policies meet team requirements.
Related Links¶
- GitHub: https://github.com/lonelymoon87/dsh-specflow
- Directory page provided in documentation: https://www.skillhub.cn/plugins/lonelymoon87/dsh-specflow