前言¶
DeepSeek Harness(DSH)的插件化架构让很多任务可以交给插件完成。在“工作流”类插件中,dsh-work-planner 是一个专门解决“如何把一堆 GitHub Issue 变成可执行的、有顺序的工作包”的工具。它会在后台把 Issue 整理成 Work Package,并按依赖关系、重要度和紧急度排序,把下一个要做的任务放在侧边栏,供你或智能体直接点“着手”。
插件定位¶
dsh-work-planner 是一个 DSH 插件,由维护者 lifwsp 开发,分类为工作流。它从 GitHub Issue 中提取任务,按规则在后台生成“工作包”,并通过侧边栏展示下一个任务,让智能体可以拿到明确的完成条件和涉及文件,开始编码。插件本身不会向 GitHub 写入 Issue,只读取信息并维护本地计划。
核心功能¶
-
Issue 收集与打包
- 插件会从仓库读取 Issue 列表,根据功能领域(areas)、涉及文件(files)、父级 Issue 等规则,将多个 Issue 打包成一个 Work Package。
- 打包时遵循maxPackageSize限制(S=1、M=2、L=4 的累加值),避免单个包过大。 -
顺序与依赖管理
- 依赖关系通过 Issue 标题或注释中的blocked by #N识别,插件会标记“先行待ち”的包。
- 顺序在后台按优先级、重要度、紧急度、对后续包的解放程度、规模等维度计算,每小时更新一次。 -
侧边栏展示与操作
- 安装 dsh-better-sidebar 后,可在仓库会话的侧边栏新增“Issue 計画”标签。
- 标签顶部显示“次はこれ”(下一个包),提供“これに着手”按钮,点击后智能体会获得该包的完成条件、涉及文件、父 Issue、里程碑等信息,可批准后切分支、实现并提交Closes #N的 PR。
- 可通过鼠标悬停在圆点图标上查看选择理由和同步状态,感叹号 ! 表示需要确认。 -
命令行操作
-/issues:显示当前计划。
-/issues next [ID]:将下一个或指定 ID 的包交给智能体。
-/issues pin N/defer N/clear N:将 Issue N 设为优先、后回或恢复默认。
-/issues done [N…]:将 Issue N 标记为“实现完成”(进入“クローズ待ち”状态),省略 N 则标记所有当前任务。
-/issues stop:仅移除“作業中”标记,不标记为完成。
-/issues reopen N:将已进入“クローズ待ち”的 Issue N 重新放回计划。
-/issues sync:立即与 GitHub 同步。 -
“クローズ待ち”状态管理
- 以下情况会进入“クローズ待ち”:- 智能体调用
issue_plan_update action=finish或使用“実装完了”按钮。 - 存在未推送到默认分支的本地分支,且分支名或提交信息包含 Issue 编号(最近 30 天内有提交)。
- 存在打开的 PR 或最近 30 天内已合并的 PR,其标题或正文包含
Closes #N。 - 一旦进入该状态,包会从推荐列表中移除,直到 GitHub 上 Issue 被关闭或手动恢复。
- 智能体调用
-
起票时的元数据记录
- 智能体在创建或编辑 Issue 时,会在末尾插入 HTML 注释块,记录功能领域、规模(size)、涉及文件和完成条件。
- 依赖关系会通过gh issue create --blocked-by写入 GitHub 的 Issue Dependencies。
- 父子关系通过--parent写入 Sub-issues。
- 期限与里程碑通过--milestone写入。
- 重要度优先通过 Priority 字段,否则通过标签或priority:high等。 -
决策模型集成
- 默认不使用决策模型,此时仅按依赖和编号排序,规模与重要度不估算。
- 启用后,可在配置中指定decisionProvider(liquid、openrouter、typesafe、custom),并设置allowExternalJudgment: true。
- 决策模型会接收 Issue 的标题、标签、正文和评论,用于判断是否可以合并到同一个包。
安装与启用¶
安装命令如下(替换 web 为你的 DSH profile 名称):
dsh plugin --profile web add github:lifwsp/dsh-work-planner
如需卸载:
dsh plugin --profile web remove dsh-work-planner
使用侧边栏标签前,需要先安装 dsh-better-sidebar。
典型用法¶
- 在仓库会话的侧边栏点击“+”号,添加“Issue 計画”标签。
- 标签顶部显示下一个 Work Package,点击“これに着手”让智能体查看方針,批准后智能体会创建分支、实现并提交 PR。
- 如需调整顺序,可点击 Issue 旁的“優先”或“後回し”按钮。
- 实现完成后,使用“実装完了”按钮或
/issues done将 Issue 标记为“クローズ待ち”。 - 需要手动调整或重新放入计划时,使用
/issues reopen N将 Issue 从“クローズ待ち”恢复到计划中。
适用场景与注意¶
- 适合有较多 GitHub Issue、需要按顺序执行、且希望减少手动整理工作的项目。
- 插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
- 计划数据保存在本地,最新约 200 条记录,不会污染 GitHub Issue 列表。
小结¶
dsh-work-planner 通过规则驱动的方式,将 GitHub Issue 转化为有序的工作包,并在侧边栏提供直观的“下一个任务”入口,帮助智能体和开发者更高效地推进项目。相关目录页与源码地址如下:
- 目录页:https://www.skillhub.cn/plugins/lifwsp/dsh-work-planner
- GitHub:https://github.com/lifwsp/dsh-work-planner