yangdongzhen590/dsh-knj-workflow

Config-driven development-task orchestration plugin for DeepSeek Harness: workflows + task management + stage progress UI.

Project Overview项目介绍

DSH plugin for configuration-driven workflow orchestration that binds multi-stage pipelines to dev tasks. Core capabilities include per-stage prompt plus optional skill routing, automatic task startup, real-time progress visualization in the right sidebar, failed-stage rerun, and checkpoint-based resume via on-disk stage results. Use it when multi-step dev work needs a trackable, resumable pipeline. Caveat: the workflow engine lives in the agent preset realm from rc.8 onward, so the profile realm must be configured correctly; default data directory is ~/.dsh/dev-orchestrator/.

DSH 工作流编排插件,支持以配置驱动方式定义多阶段工作流并将其绑定到开发任务。核心能力包括阶段提示词与可选技能路由、任务自动启动、右侧栏实时进度可视化、失败阶段重跑以及基于断点落盘的断点续跑。适用于需要把多步开发流程串成可追踪管道的场景。注意:编排器从 rc.8 起位于 agent preset realm,需在 profile 域正确加载;数据目录默认在 ~/.dsh/dev-orchestrator/。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add dsh-knj-workflow

yangdongzhen590/dsh-knj-workflow 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-knj-workflow

开发任务编排插件(DeepSeek Harness):配置驱动的工作流 + 开发任务管理 + 可视化阶段进度。

📖 详细设计文档见 DESIGN.md(架构、数据模型、Host/Client 设计、编排器、踩坑记录、验证记录)。

功能

  • 工作流管理:可新增 N 个工作流,每个工作流由多个阶段组成;阶段行为由 prompt(提示词)+ 可选 skill 定义
  • 模板导入/导出:工作流列表与图编辑器均支持把模板导出为 .workflow.json 文件、从文件导入(跨机器移植);导入后先进入编辑器检查再保存,同 ID 冲突会提示
  • 开发任务:创建任务并绑定工作流,自动启动执行
  • 可视化进度:右侧栏「开发任务」tab 横向步骤条展示每个阶段状态(待执行/运行中/完成/失败),实时刷新
  • 阶段重跑 / 继续:失败的阶段可点击「重跑」,暂停/失败的任务可点击「继续」——基于断点持久化(每阶段结果落盘)
  • 斜杠命令/dev-task new <标题>/dev-task list/dev-task status <id>/dev-task wf
  • 定时调度集成(可选):为 dsh-scheduler 提供进程内 knjWorkflowScheduler 服务;定时触发时按最新保存的流程定义创建并启动任务,历史可直达该任务详情
  • UI 融入原生:左侧栏底部「新建任务」入口 + 右侧栏两个 tab(better-sidebar 扩展点),全部使用 DSH 原生设计令牌(--dsw-*

架构

┌─ Client 端(lib/client.js)───────────────────────────────┐
│  左侧栏 sidebar.footer.action →「➕ 新建任务」              │
│  右侧栏 better-sidebar →「开发任务」「工作流」两个 tab        │
└──────────────┬──────────────────────────────────────────┘
               │ fetch('/devtask/...') 同源 HTTP
┌──────────────▼──────────────────────────────────────────┐
│  Host 端(lib/index.js)                                  │
│  DevTaskStore(JSON 持久化) + HTTP API + /dev-task 命令   │
│  WorkflowBridge:从 parent agent 作用域取 workflowEngine    │
│  (rc.8 起引擎位于 agent preset realm,非 host realm)      │
└──────────────┬──────────────────────────────────────────┘
               │ ctx.workflowEngine(script = lib/orchestrator.js)
┌──────────────▼──────────────────────────────────────────┐
│  编排器(lib/orchestrator.js)支持 resumeFrom / rerunStage │
│  每阶段子 agent 结果落盘 <taskDir>/stages/<stageId>.json   │
└─────────────────────────────────────────────────────────┘

数据目录(默认):~/.dsh/dev-orchestrator/
  workflows.json                    # N 个工作流定义
  tasks/<taskId>/task.json          # 任务元数据 + 阶段状态
  tasks/<taskId>/stages/<stageId>.json  # 阶段断点产物

安装

dsh plugin --profile web add dsh-knj-workflow

npm 包 dsh-knj-workflow;安装后重启 dsh web 生效。dsh-scheduler 可独立安装;同时安装本插件后,调度器才会显示「KNJ 工作流」任务类型。

配置(可选,在 profile 的 cordis.patch.yml 中按 id knj-workflow 覆盖):

默认 说明
dataRoot ~/.dsh/dev-orchestrator 数据存储目录
httpPrefix /devtask HTTP API 前缀

HTTP API

方法 路径 说明
GET /devtask/health 健康检查
GET/POST/PUT /devtask/workflows 工作流列表 / 保存
DELETE /devtask/workflows/:id 删除工作流
GET/POST /devtask/tasks 任务列表 / 创建(绑定工作流并启动)
GET /devtask/tasks/:id 任务详情(含阶段状态)
POST /devtask/tasks/:id/start /cancel /resume 启动 / 取消 / 继续
POST /devtask/tasks/:id/rerun-stage 重跑指定阶段
GET /devtask/tasks/:id/stages/:stageId 阶段断点产物

编排器参数

  • args.config:工作流定义({ name, description, stages: [...] }
  • args.task:任务元数据({ id, title, taskDir }
  • args.resumeFrom:从某阶段继续(之前阶段读缓存)
  • args.rerunStage:只重跑某阶段(其余读缓存)
上一个 Prev dsh-capability-receipt 下一个 Next dsh-anysearch-refs