lihang-lh/dsh-task-panel
dsh-task-panel
dsh-task-panel is a community DeepSeek Harness plugin. Read the repository README before installing.
Install
npx @deepseek-ai/dsh plugin --profile web add github:lihang-lh/dsh-task-panelRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-task-panel)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from lihang-lh/dsh-task-panel, cleaned of badges and images.
老板任务面板 (Boss Task Panel)
一个运行在 DeepSeek Harness (DSH) 里的任务面板插件:把「聊天气泡」升级成「任务流水线」。
- 老板角色:你只负责两件事 —— 发布任务 和 验收结果。
- 插件角色:领取、规划、开发、复核全部由插件动态调度子代理完成。
- 不再翻聊天记录:发布任务时插件自动蒸馏全部历史会话,把匹配的旧会话关联到任务上;任务每个阶段都有独立 prompt 和自动读取器,完成后自动进入「待验收」,面板角标提醒你。
1. 任务流水线(七个状态 + 彩色状态点)
| Tab | 状态 | 指示点颜色 | 含义 |
|---|---|---|---|
| 待领取 | todo | 灰 | 任务已登记,等待插件领取(或排队等待执行名额) |
| 待澄清 | clarify | 粉 | 规划代理发现需求不明确,产出问题清单,等待老板回答后定稿计划 |
| 待确认 | confirm | 琥珀 | 规划代理已产出实施计划,等待老板确认(仅当任务关闭「自动确认」时出现) |
| 开发中 | develop | 蓝 | 开发代理正在执行 |
| 暂停中 | paused | 橙 | 老板点「暂停」后进入;可「继续执行」恢复原阶段,或「重新编辑」调整方向 |
| 复核中 | review | 紫 | 自动复核完成,等待老板验收 |
| 已完成 | done | 绿 | 老板验收通过 |
每个阶段是任务状态机的一环,迁移由「自动读取器」或老板按钮驱动,见 §3。发布粗需求(方向型任务)时,规划代理会先澄清(产出问题清单进「待澄清」)再定稿,避免自行假设。
2. 老板的工作流
发布任务 ──▶ 自动蒸馏历史会话(匹配的旧会话自动挂到任务上)
│
├─ 自动领取 ──▶ 规划代理产出「实施计划 + 问题清单 questions[]」
│ │
│ ├─ 有澄清问题 ──▶ 待澄清 Tab:老板逐条回答(至少 1 个)
│ │ └─▶ 澄清定稿轮(结合回答重规划)──┐
│ └─ 需求清晰(questions 为空)──────────────────────────┤
│ ▼
│ 计划定稿:写入 OpenSpec 产物 specs/proposals/<任务id>/
│ ├─ 自动确认(默认) ──▶ 开发代理实施(按 tasks.md 逐项勾选)
│ └─ 需确认 ──▶ 待确认 Tab,老板点「确认计划」
│
├─ 开发完成 ──▶ 自动进入复核 ──▶ 复核代理对照验收标准 + tasks.md 逐项自检
│
└─ 复核通过 ──▶ 复核中 Tab ──▶ 老板点「验收通过」──▶ 已完成
└─ 老板点「打回开发」──▶ 带反馈重回开发
任意阶段(已完成除外)都可点「暂停」──▶ 暂停中 Tab
├─「继续执行」──▶ 恢复到暂停前状态(若暂停时正在执行,自动重踢对应阶段)
└─「重新编辑」──▶ 修改标题/描述/验收标准,旧计划与产物清空,按新方向重新生成
发布时的自动蒸馏(tasks.create 内部):
- 用任务标题+描述对全部会话做全文检索(
sessionQuery.searchSessions); - 取排名前 6 个命中自动挂载,读出会话标题与命中片段(面板「扫描关联会话」最多返回 8 个候选供勾选);
- 挂到任务的
relatedSessions—— 规划/开发代理开跑前会先读这些历史上下文,等于「接着上次的会话继续做」。
面板里还有「扫描关联会话」按钮:发布前先检索,勾选你想挂载的历史会话,再发布。
3. 阶段 prompt 与自动读取器
每个阶段一个专属 prompt(index.js 的 buildPrompt)
- 领取/规划 (claim):要求子代理先读关联历史会话,以 OpenSpec 风格输出完整可执行的实施计划
{plan, steps, risks, questions}(steps 编号列出:做什么 / 涉及文件 / 如何验收),明确「不要开始实施」。 - 澄清定稿 (refine):老板回答澄清问题后触发的规划轮,结合回答输出最终计划(不再提问)。
- 开发 (develop):要求按已确认计划实施并自测(给出可验证证据),按
tasks.md逐项勾选,输出{done, summary, changedFiles, blocker}。 - 复核 (review):要求对照验收标准和 tasks.md 逐项核对实现,输出
{passed, issues, verdict}。
各阶段都通过 outputSchema(JSON Schema)约束子代理的输出,结果结构化、可被读取器机械解析 —— 不靠猜文本。
澄清环节(粗需求 → 完整步骤的第一步)
规划代理发现以下任一不明确点时,必须在 questions 中向老板提问(每问一句话可答,why 说明为什么需要),不得自行假设:
- 验收标准缺失或含糊,无法判断「做完」;
- 目标仓库 / 改动范围不明;
- 与现有实现或历史会话的关系不明;
- 技术方案有明显分叉需要老板拍板;
- 需求范围过大,需要确认优先级或拆解。
存在问题时任务进入「待澄清」Tab,老板逐条回答(至少 1 个)后触发澄清定稿轮;需求清晰时 questions 为空数组,直接定稿。整个流程保证:粗方向 → 澄清 → 完整开发步骤 → 才动手。
OpenSpec 产物(计划定稿时自动写入仓库)
计划定稿时,Host 在目标仓库写入 OpenSpec 风格产物:
<repoPath>/specs/proposals/<任务id>/
├── proposal.md # 背景与动机 / 目标与方案 / 风险 / 验收方式
└── tasks.md # 编号任务清单,开发代理每完成一项把 [ ] 改为 [x]
开发代理与复核代理的 prompt 都会引用 tasks.md(逐项实施 / 逐项核对),实现过程与验收都有仓库内可追踪的清单。目标仓库不可写时回退到面板目录,并在卡片上标注「(目标仓库不可写,回退于面板目录)」。
自动读取器(每阶段一个,Host 侧自动驱动)
| 读取器 | 触发 | 行为 |
|---|---|---|
| 领取读取器 | 任务进入待领取且有空闲执行名额 | 启动规划代理;产出计划后自动流入下一步 |
| 开发读取器 | 规划完成(自动确认)或老板确认 | 启动开发代理;done=true 时自动转入复核 |
| 复核读取器 | 开发代理报告完成 | 启动复核代理;产出报告后任务停在「复核中」并点亮面板角标 |
| 恢复读取器 | 每 20s 巡检一次 | 检测到开发子会话已不在线(进程重启)时,在任务上标注「可重新执行」 |
并发控制:默认同一时间只跑 1 个开发任务,其余自动排队,队列在「待领取」Tab 可见。
暂停 / 继续 / 重新编辑
…

