dsh-taskboard

August 28, 2026 · View on GitHub

npm version License

English | 简体中文

dsh-taskboard

DeepSeek Harness 的任务看板插件:人建卡、agent 认领执行、人验收。任务挂项目(workspace)、可指定模型与 preset、支持手动与定时执行,全流程双向协作。

  • 闭环协作:人建卡 → agent 认领执行 → 结构化报告 → 人验收(✓ 完成 / ✗ 退回附原因)
  • 10 个 taskboard_* agent 工具 + 代码级协议闸:agent 永远移不到 done、任务被持有时不可抢、跨项目不可认领
  • 执行:手动或 cron 定时(host 侧调度,浏览器关了照跑);每次执行在任务项目内开全新会话,可指定模型与 preset
  • Git Worktree 隔离:每次执行独立 worktree + 任务分支,验收时一键合并;非 git 项目自动降级
  • 验收效率:DoD 验收清单(agent 勾选附证据)、结构化执行报告(摘要/改动文件/自验/产物/风险)、看板内 diff 查看器
  • 实时看板:SSE 实时刷新、五列流转、筛选排序持久化、JSON 导入导出、任务模板

零配置:安装即用——无需 Token、无需 API Key、无需额外服务或数据库。

界面

任务看板

新建任务

目录

环境要求

依赖要求说明
DeepSeek Harness≥ 0.1.1需要 dsh plugin 子命令与 web profile
Node.js≥ 20仅 GitHub 源安装构建时需要
git可选Worktree 隔离需要;缺失时自动降级原目录执行

安装

# 一键安装(npm,预构建、免构建授权 —— 推荐)
dsh plugin --profile web add dsh-taskboard

# 或从 GitHub 源安装
dsh plugin --profile web add github:cloader/dsh-taskboard

安装后重启 dsh web 并刷新页面:侧边栏出现「任务看板」入口即成功。无需任何后续配置。

GitHub 源安装卡在 prepare / allowBuilds?

git 源插件安装时经 prepare 脚本构建,pnpm 会先阻止——按报错提示把精确 key 加进 profile 目录 pnpm-workspace.yamlallowBuilds 后重跑即可。npm 源是预构建产物,无此步骤。

开发模式安装(改代码即生效)
git clone https://github.com/cloader/dsh-taskboard.git
cd dsh-taskboard
npm install && npm run build
dsh plugin --profile web add "link:/path/to/dsh-taskboard"

link 安装后,仓库里 npm run build 重建、刷新页面即生效;改完宿主侧代码需重启 dsh web

卸载:dsh plugin --profile web remove dsh-taskboard(台账数据保留在 DSH 主目录,见配置与数据)。

官方 @deepseek-ai/dsh-* 包只写进 profile 的 bundles 列表,不要 plugin add 进 dependencies(避免 SDK 双实例遮蔽)。

快速开始

第 1 步 · 建卡:看板右上「+ 新建任务」——选项目、紧急度、执行方式(认领/定时+cron)、模型与 preset、Git 隔离开关、验收清单;可勾「⚡ 立即执行」。

第 2 步 · agent 执行:三种触发方式任选——

  1. GUI「立即执行」/「↻ 续跑」(详情页或表单)
  2. cron 定时(host 侧调度,无需开浏览器)
  3. 任意会话里让 agent 用 taskboard_* 工具认领:按看板上的任务 t-xxxxx 执行

第 3 步 · 人验收:待验收列「✓ 完成」一键验收;「✗ 退回」退回待办并附原因(agent 下轮开工前会读)。

一次完整的 agent 工作流(协议由插件在执行开场自动下达):

你:执行看板任务 t-ab12cd
agent:
  taskboard_list                # 查板:项目内 todo 任务
  taskboard_get t-ab12cd        # 读需求、评论、验收清单
  taskboard_move → in_progress  # 认领(代码闸:被持有/跨项目会被拒绝)
  ……编码 / 测试……
  taskboard_checklist check     # 逐项勾验收清单,附证据 note
  taskboard_execution_report    # 结构化报告:摘要/改动文件/自验/产物/风险
  taskboard_comment_add         # 交接说明
  taskboard_move → in_review    # 移待验收
你:看板待验收列 ✓ 完成   # done 永远只属于人——agent 调用会被代码闸拒绝

Agent 工具参考

任何会话可用;项目边界:只有属于任务所在项目的会话才能认领或执行。

工具作用
taskboard_list查板(按项目/状态/紧急度过滤,紧凑摘要)
taskboard_get读单卡全文:描述、prompt、评论流、清单、执行记录
taskboard_comments列出任务评论(视为最新需求,先读后动)
taskboard_create建卡(workspaceId、紧急度、清单、preset、隔离、定时)
taskboard_update改标题/描述/prompt/紧急度/清单(model/execution 只读)
taskboard_move移卡:todo→in_progress→in_review(到不了 done
taskboard_comment_add追加评论(交接、风险、进展)
taskboard_delete软删除(可 purge;执行中不可删)
taskboard_checklist验收清单 add / check(附证据)/ uncheck
taskboard_execution_report提交结构化执行报告,自动挂到当前执行

功能特性

看板协作

  • 五列看板(待规划 / 待办 / 进行中 / 待验收 / 已完成)+ 受阻标记,SSE 实时刷新
  • 任务挂项目:认领校验会话归属,跨项目不可抢
  • 紧急度三色(紧急/一般/不急)筛选与色条;搜索(标题/ID)与列内排序,筛选排序持久化
  • 列头状态色圆点:待规划灰 / 待办蓝 / 进行中橙 / 待验收紫 / 已完成绿 / 已删除红
  • 新建/编辑弹窗:项目、模型(含思考强度)、紧急度、执行方式、cron 实时校验与下次运行预览、执行隔离开关、验收清单编辑
  • 详情面板:状态流转(done 仅限人工;清单未全勾时完成需二次确认并显示未勾数)、agent/用户评论流、执行记录(倒序,最新在最上;会话 ID 点击跳转打开该执行会话;已删除/已归档分开提示)、停止执行、Worktree 隔离块(分支 / 提交 / 改动统计 / 合并与清理)、执行报告块、验收清单块
  • 待验收列卡片快捷操作:「✓ 完成」一键验收、「✗ 退回」退回待办并可附退回原因(agent 开工前会读)
  • 一键跳转执行会话(0.5.4):任务卡片新增「🤖 会话ID ↗」按钮、详情页顶部新增「🤖 跳转会话 ↗」按钮,持有者 Chip 同样可点——进行中优先、其次最近一次执行对应的会话一键直达(看板自动收起);已归档 / 已删除 / 会话服务不可用分别精准提示
  • 记住上次模型(0.5.4):新建任务自动带出上次选用的模型与思考强度(模板预填与编辑不受影响)
  • 验收清单 DoD(0.4.0):建卡时定验收条件(≤30 项);agent 用 taskboard_checklist 增补/勾选(附证据 note);用户在详情页直接勾选;待验收时未完成项红色高亮 + 卡片「☑ n/m」角标(未全勾显红);清单编辑在表单中整组管理(勾选状态与证据保留)
  • 结构化执行报告(0.4.0):agent 收尾用 taskboard_execution_report 提交(摘要 / 改动文件 / 自验 / 产物 / 剩余风险),自动挂到当前执行记录;待验收详情页分栏渲染;开场框架行明示提交时序(报告 → 评论 → 移待验收)
  • JSON 导入(0.4.0):顶栏「⬆ 导入」选择备份文件 → 干跑预览(新增 / 覆盖 / 无效分类明细)→ 合并(按 id upsert)或整册替换(自动先备份当前台账 + 二次确认);⬇ JSON 导出的文件即同格式可直接恢复
  • 任务模板(0.4.0):「+ 新建任务 ▼」下拉(空白 / 内置 新增功能·Bug 修复·发布检查·例行巡检 / 管理模板)一键预填表单(标题/描述/Prompt/紧急度/定时/隔离/preset/清单);任务详情「⌗ 存为模板」沉淀常用配置;模板存 DSH 主目录 side file,改名/删除在管理弹窗
  • Diff 查看器(0.4.0):隔离块提交行、未提交修改文件行点击即在看板内展开 diff(提交 git show / 文件 git diff,128KB·2000 行封顶标注截断);worktree 已删时回落主仓(仅限提交与带基线的范围 diff)

Agent 工具(taskboard_*)

  • 10 个工具:查板 / 建卡 / 改卡 / 移卡 / 评论 / 软删除 / 验收清单 / 执行报告,任何会话可用
  • 代码级协议闸:agent 永远移不到 done(清单全勾也不行);任务被持有时不可抢占;model/execution 对 agent 只读

执行

  • 手动执行或 cron 定时:每次执行在任务项目内新建全新会话(干净上下文、可指定模型、可指定 preset);开场两条消息同一回合送达——插件上下文行携带任务框架与交接协议(含失败回退路径),卡片内容(标题+描述+提示词)以正常用户消息呈现
  • 任务级 preset(0.3.3):新建/编辑表单「执行模式(preset)」下拉——执行会话按该 preset 组合(工具集与人设由此而来,对齐 GUI 新会话的组合方式);默认预选部署默认 preset,也可选「跟随部署默认」;preset 损坏时执行直接失败并把原因写进执行记录(不产出半组合会话);随时可改,下轮执行生效
  • Git Worktree 隔离执行(0.3.0):任务级开关(0.5.0 起新建任务的默认值由「看板设置」统一决定,出厂默认原目录执行),每次执行在 <项目>/.dsh-worktrees/<任务ID> 独立 worktree 上进行,分支 task/<标题>+<任务ID>(首次创建后定死,改名不改);执行会话归属项目根目录(分组、工具与文件沙箱完整可用——DSH 要求会话 cwd 即工作区根,0.3.2 修正),worktree 路径与边界纪律在开场指令中明确下达;结算自动采集提交列表 / 未提交修改警告 / 改动统计;非 git 项目或 git 不可用时自动降级原目录执行(执行记录注明降级原因,台账与执行主流程永不因 git 失败而失败);验收时详情页一键 --no-ff 合并到主工作区(主区脏或冲突原样报告,不自动解决)、删除 worktree(有未提交修改时拒绝)、可选删分支;支持「↻ 续跑」在现有 worktree/分支上继续执行(保留上次改动与提交)
  • 看板设置(0.5.0):顶栏「🛠 设置」——选择新建任务默认怎么执行(🌿 Worktree 隔离 / 📁 原目录执行,出厂默认后者)。保存后新建的任务都按它来;之后改设置,已建好的任务不受影响

    Worktree 隔离是协作约定而非沙箱:执行会话拥有完整工具权限,隔离依赖分支约定,不适用于运行不可信代码的场景。

  • host 侧调度:关掉浏览器照常触发;错过窗口跳过不补跑
  • 乐观并发(ifVersion)+ 完整归因(谁改的、哪个会话执行的)
  • ⚙ 健康诊断:台账基本项 + 遗留 worktree(台账无主但目录存在)一键清理

安全

  • 验收权只属于人:agent 把任务移到 done 的调用被代码级协议闸直接拒绝(不是提示词约定);任务被持有时不可抢占,跨项目不可认领。
  • Worktree 隔离是协作约定而非沙箱:执行会话拥有完整工具权限,隔离依赖分支约定,不适用于运行不可信代码的场景。
  • 数据本地:台账、模板全部存本机 DSH 主目录;不外发任何数据,无需 Token / API Key。

配置与数据

开箱即用,全部配置项如下(均为可选):

环境变量默认说明
DSH_TASKBOARD_MAX_CONCURRENT3全局同时执行的会话数上限
DSH_HOME~/.dshDSH 主目录(跟随部署,插件数据随之)
ATB_TRACE未设置=1 时 host 打印工具调用跟踪(调试用)

数据文件(均在 DSH 主目录,卸载插件不删除):

文件内容
dsh-taskboard.json任务台账(全部任务/执行/评论)
dsh-taskboard-templates.json任务模板
dsh-taskboard.json.backup-<时间戳>整册导入替换前的自动备份
<项目>/.dsh-worktrees/<任务ID>/任务执行 worktree

随时可顶栏「⬇ JSON」全量备份、「⬇ CSV」导出任务清单(带 BOM,Excel 直接打开)。

常见问题

侧边栏没有「任务看板」入口? 刷新页面;仍没有则确认插件已装进当前 profile 并重启 dsh web(宿主半区在进程启动时加载)。三代 shell 均支持:data-pane(dev)、哈希类名(官方布局,0.4.2 起)、DSH Desktop 非兼容 extended frame(0.5.2 起)。

任务数据存在哪?怎么备份?配置与数据。GUI「⬇ JSON」随时全量导出;「⬆ 导入」可恢复。

浏览器关了,定时任务还跑吗? 跑。调度在 host 进程侧,与浏览器无关;错过的时间窗口跳过不补跑。

项目不是 git 仓库,能用吗? 能。Worktree 隔离自动降级为原目录执行,执行记录注明降级原因;其余功能不受影响。

多个项目怎么协作? 任务挂项目(= DSH workspace)。认领校验会话归属:只有任务所在项目内的会话能认领/执行,跨项目不可抢。

agent 会把任务直接标成「已完成」吗? 不会。这是代码级协议闸(不是提示词约定):taskboard_move 到 done 的调用被直接拒绝,验收永远由人在看板完成。

GitHub 源安装报 prepare 被阻止? pnpm 的构建授权——按报错把 key 加进 profile 的 pnpm-workspace.yaml allowBuilds 后重跑;或改用 npm 源(预构建,无此步骤)。

开发

git clone https://github.com/cloader/dsh-taskboard.git
cd dsh-taskboard
npm install && npm run build    # host ESM + client CJS 双构建
npm test                        # vitest 全量(150 项)
node tests/manual-git-e2e.mjs   # 真 git 端到端手测(worktree 全链路 + 续跑 + diff 查看器)
node scripts/screenshot.mjs     # 重新生成 img/ 截图(需本机 Edge)

升级日志

0.5.4

  • 看板卡片与任务详情一键跳转执行会话: @jw5555555555#11:卡片元数据行新增「🤖 会话ID ↗」按钮、详情页顶部新增「🤖 跳转会话 ↗」按钮、持有者 Chip 可点击——进行中优先、其次最近一次执行对应的会话一键直达(看板自动收起);已归档 / 已删除 / 会话服务不可用分别给出明确提示
  • 新建任务记住上次选用的模型,支持设置思考强度: @jw5555555555#11:create 模式自动带出上次的模型与思考强度(模板预填与编辑不受影响);模型可固定思考强度(reasoningEffort,如 low/medium/high),随执行会话下发;支持思考强度的模型从 DSH 模型目录读取可用档位
  • 列内排序新增「按标题」: @Amoss-1#4:数字感知比较,数字前缀按真实数值排序(01 < 02 < 10 < 90,字符串比较会把 10 排到 02 前);排序选择随视图状态持久化
  • 界面细节:下拉 / 输入框适配明暗主题(DSH 主题变量 + color-scheme);模板管理弹窗布局优化

0.5.3

  • 执行 Prompt 改为追加式:自定义 Prompt 不再整体替换开场指令——实际发给执行会话的是「标题+任务描述+Prompt」,写在描述里的背景不再被漏掉;新建/编辑表单文案与 taskboard_create 工具描述同步更新
  • 新增内置「新增功能」模板:排在「Bug 修复」之前——标题前缀「新增:」,按「明确需求要点 → 实现 → 补测试 → 跑套件」四步走,自带三项验收清单
  • 「Bug 修复」模板首行改为「修复以上问题并按序交接」:描述现在先于 Prompt 送达,「以上」才指得住

📜 更早版本的完整更新日志见 changelog.md

License: Apache-2.0