dsh-taskflow
Taskflow
AI 合同式任务看板 —— DeepSeek Harness Web 插件:AI 拆解、AI 实现、AI 举证,人来验收。
插件会安装到这里;不确定时保持 web。
npx -y @deepseek-ai/dsh plugin --profile web add github:LuckVd/dsh-taskflow#1a20289d7a3b0c1d9aaa6ee47ba4ea53f9038d39



dsh-taskflow
AI 合同式任务看板 —— DeepSeek Harness Web 插件:AI 拆解、AI 实现、AI 举证,人来验收。
插件会安装到这里;不确定时保持 web。
npx -y @deepseek-ai/dsh plugin --profile web add github:LuckVd/dsh-taskflow#1a20289d7a3b0c1d9aaa6ee47ba4ea53f9038d39



Taskflow 以 dsh-taskflow 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。
DeepSeek Harness (dsh) Web 插件 —— 你创建任务(验收标准可给可不给),AI 自己拆解、自己实现、自己举证;人来验收,通过才算 done,不通过打回继续迭代,全过程状态留痕。
人与 AI 之间的合同管理器:卡片不是提示词的容器,而是一份合同(做什么 + 怎么算做完 + 准许动用什么);看板是这块共享黑板的实时视图;调度器的职责是把「就绪的合同」喂给会话,验收人的职责是让「done」两个字有含金量。
创建任务时写下目标与验收标准(可留空交给 AI 起草),并可选择执行方式:
任务进入「实现中」后由 AI 自动拆解为子任务 DAG 并按依赖调度执行:WIP 并发上限(全局 1–8,全局/任务级取 min)、依赖 DAG 守卫防死锁、受挫显式标记「受阻 + 原因」、迭代轮数与 Token 用量回采落库。
done 卡可以「接续新任务」、review 可「确认并接续」——签的是新合同而非重开老合同(状态机零改动):
basedOn 建卡:父须 done、禁环、上限 10 个父;你建卡(目标 + 验收标准 + 权限/能力/目录/模型)
│
▼
AI 拆解 ──► 子任务 DAG 执行 ──► AI 任务级终检 ──► 待验收
▲ │
│ 通过 ────┤ 打回(AI triage 定位返工范围)
└────────────────────────────┘
done 卡可「接续新任务」签新合同,血缘成 DAG
| 能力 | 层面 | taskflow 的关系 |
|---|---|---|
/goal | 会话内完成驱动循环 | 不抢它的活:卡片运行时,会话内部照常用 goal |
/schedule | 会话内定时提醒 | 不重叠 |
dsh-task-board(第三方) | cron 作业发射器 | 独立新项目,数据目录分离,可共存;本项目吸收其教训重新设计 |
前置要求:dsh 宿主 0.1.2-rc.1+;Node.js 18+;本仓库克隆到本地任意路径(下文以 /opt/pro/dsh-taskflow 为例)。
git clone https://github.com/LuckVd/dsh-taskflow.git /opt/pro/dsh-taskflow
cd /opt/pro/dsh-taskflow
npm install # .npmrc 已带 legacy-peer-deps(dsh 包 npm peer 版本错位)
npm run build # 产出 dist/(宿主模块 + 客户端 bundle)
dsh plugin --profile <name> add dsh-taskflow
该命令会把本包注册进 profile 的依赖与 bundles 组合层(等价于在 ~/.dsh/profiles/<name>/package.json 的 dsh.profile.bundles 加入 "dsh-taskflow"、dependencies 加入本包),cordis.patch.yml 负责把插件插入宿主组合层。
本地开发(免重复 add):把 profile 依赖指到本地目录,改完代码 npm run build 后重启宿主即生效:
// ~/.dsh/profiles/<name>/package.json
{
"dsh": { "profiles": { "bundles": [ /* … */ "dsh-taskflow" ] } },
"dependencies": {
"dsh-taskflow": "link:/opt/pro/dsh-taskflow"
}
}
# 退出宿主进程后重新拉起,例如:
dsh --profile <name> --port 28080
浏览器打开宿主 Web 界面,侧栏出现「任务看板」入口即安装成功。数据落盘在 ~/.dsh/taskflow/(ledger.json),与宿主会话数据相互独立。
cordis.yml 中可覆盖插件配置:cron 定时建卡(schedules[])、webhook 门控 token(webhookToken)等;全局模型 / WIP 并发等运行时配置在看板工具栏 ⚙ 设置浮层里改,即改即落盘。
| 层 | 位置 | 说明 |
|---|---|---|
| protocol | src/protocol/ | ledger schema v1、action 白名单、拆解输出/证据校验(纯 TS,零依赖) |
| host | src/host/ | ledger 原子存储、状态机(T1–T10/S1–S6)、引擎(调度/证据门/打回迭代/恢复)、HTTP+SSE、dsh 适配器与插件入口 |
| client | src/client/ | 看板/弹窗/验收页/流程图(React + --dsw-alias-* 主题变量)、纯视图模型、HTTP/SSE 传输 |
| 文档 | 内容 |
|---|---|
docs/REQUIREMENTS.md | 需求文档:背景、定位、用户旅程、需求清单(FR/NFR)、里程碑、风险 |
docs/FUNCTIONS.md | 功能文档:概念模型、数据模型、状态机、逐项功能规格、UI/UX 规格、API 草案、安全模型 |
docs/PLAN-FOLLOWUP.md | 任务接续 / 血缘 DAG 方案与预览 |
docs/PLAN-APPROVAL.md | 执行权限与提权审批方案 |
docs/PLAN-MODEL.md | 全局模型设置方案 |
docs/ACCEPTANCE-M1.md | M1 自验收报告:逐 FR/NFR 证据 |
PRD 的 FR 清单已全量收口(FR-18 经裁决由任务级终检覆盖、file-watch 裁决不做),M1–M3 均已落地:
LuckVd/dsh-taskflowMIT