RexCoding-Yu
dsh-project-manager
使用项目管理方法论使用dsh
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 17, 2026
- Updated
- Aug 17, 2026
Introduction
dsh-project-manager
DeepSeek Harness 的项目管理插件。人在会话里说目标,经理 Agent 记账并派发工作项;执行会话按一份不可变的上下文包干活;你只在侧栏处理待审核、阻塞、失联和收尾。
A project-manager plugin for DeepSeek Harness. Humans speak goals, a manager agent plans and dispatches, executor sessions work from an immutable context pack, and the sidebar is for exceptions.
| 包名 | @dsh-project-manager/plugin |
| 适配 | DeepSeek Harness 0.1.0-rc.6 |
| 发现标签 | GitHub Topic dsh-plugin |
| 许可证 | MIT |
目录
它解决什么问题
多个 Agent 做稍大一点的事时,常见失败往往不是模型不会写代码:
- 目标只活在聊天里,过两轮就漂
- 派出去的会话只拿到一个标题,只能猜范围和验收
- Agent 自己宣布完成,没有证据
- 人被看板拖住,没空处理真正要拍板的事
本插件把计划、执行、治理拆开。会话是职场,侧栏是账本。装上即可用,不必再拷 Skill,也不必改 AGENTS.md。
适合:目标要跨多个会话、要并行、要按标准验收,或会明显烧 Token。单轮对话就能做完的事,不必建项目。
它不做什么
- 不在面板里新建项目或手写 WBS,那些只在经理会话里做
- 不提供甘特、关键路径、挣值、跨项目组合
- 不把 Job 当成 Agent 执行身份(DSH 的执行单位是 Session)
- 不强制 Git worktree,也不做多人实时协同
- 不把组织知识注册成运行时 Skill;知识只作为后续上下文包的参考
安装
需要已经能跑起来的 DSH Web,例如:
npx @deepseek-ai/dsh web
本仓库是 monorepo,可安装的插件在 packages/dsh-project-manager。
从 GitHub 安装(推荐)
dsh plugin --profile web add "github:RexCoding-Yu/dsh-project-manager#path:packages/dsh-project-manager"
钉到某次提交(把 COMMIT 换成 sha):
dsh plugin --profile web add "github:RexCoding-Yu/dsh-project-manager#COMMIT&path:packages/dsh-project-manager"
从本仓库打好的包安装
先克隆并构建,再指向本地 tarball:
git clone https://github.com/RexCoding-Yu/dsh-project-manager.git
cd dsh-project-manager
pnpm install
pnpm --dir packages/dsh-project-manager build
dsh plugin --profile web add "file:./packages/dsh-project-manager"
也可以 pnpm --dir packages/dsh-project-manager pack 后安装生成的 .tgz。
装完之后
- 重启
dsh web - 浏览器打开面板后按 Ctrl+F5(插件脚本会被缓存)
- 侧栏底部会出现「项目」,输入框也可以执行
/pm
官方发现通道认 GitHub Topic dsh-plugin。本仓库按该 Topic 发布。
五分钟上手
- 打开一个会话,把它当成经理席。对 Agent 说清楚:做成什么样算成功、明确不做的事、一次几个执行会话。
- 经理 Agent 会建项目,再一条条加工作项。每项都要有目标、范围、非范围、可判定的验收标准。
- 你确认「按这个拆可以开始」之后,它才会
approve_project。未批准前不会自动开执行会话。 - 就绪项按调度策略派到新会话。每个执行会话第一轮拿到的是完整上下文包,不是标题。
- 执行会话提交产物后进入待审核。非高风险项可自动开审查会话;高风险仍要你在面板里二次确认。
- 打开侧栏「项目」:只处理待审核、已阻塞、失联和收尾。
角色怎么分工
| 谁 | 待在哪 | 做什么 | 不做什么 |
|---|---|---|---|
| 你(负责人) | 经理会话 + 项目面板 | 说目标、确认启动、审高风险、解阻塞、给执行中会话补话、关项目 | 填章程表、拖卡片改计划 |
| 经理 Agent | 经理会话 | 建项目、拆工作项、按策略派发 | 写业务代码、改执行项范围内的文件 |
| 执行会话 | 一项一个,做完就关 | 按上下文包交付并提交证据 | 建项目、改别人的项、把自己标成已完成 |
| 审查者 | 人或另一个会话 | 按验收标准和产物给结论 | 审自己刚执行完的那一次 |
执行会话无权改计划。审查会话同样不能改计划。
面板功能
侧栏「项目」打开的是监视和介入面。页签本身就能切换视图,没有额外的导航按钮。右上角刷新是图标,不单独占一行。
项目
列出本工作区的项目卡片。点卡片进入该项目。标题旁的铅笔可以改名称(已关闭的项目也能改)。同一工作区的项目共用组织知识台账。
待处理
默认要看的页:
| 分组 | 含义 | 你可以做什么 |
|---|---|---|
| 失联 | 会话已经不在,看板却还显示执行中 | 终止,或重新派发到新会话 |
| 待审核 | 执行会话交了产物 | 打开详情看自检点和文件,通过或退回修改 |
| 已阻塞 | 缺输入或权限 | 「继续」把话打回还活着的会话,或「收回待派发」 |
| 进行中 | 执行会话报上来的最后进度 | 打开详情;必要时到会话里补话 |
| 待派发 | 已就绪、可以开执行会话 | 派到新会话 |
| 无法派发 | 缺范围、验收,或依赖还没完成 | 回到经理会话补全,不要硬派 |
高风险项派发前会再确认一次。
看板
按状态看全部工作项:待办、待派发、已认领、进行中、已阻塞、待审核、返工、已完成、已取消。用来扫全貌,不是日常首页。
运行
尝试次数、Token、时长、工具次数、异常与最近审计。Token 能从会话日志读到才记账;读不到显示「不可用」,不编金额。
知识
执行或经理提出的可复用条目。点卡片看全文。待审核可「通过 / 驳回」;通过后还要再「发布到组织」才进台账。已发布条目会作为参考写入后续上下文包,不是验收标准。
收尾
关闭项目。未完成项必须选择延期、移交、接受未完成风险或取消。关闭后不再派发。
左侧当前状态和右侧收尾处置不是同一件事:关闭不会把待审核改成通过。
调度条
进入项目后可见:
- 调度策略:手动 / 串行 / 限制并行 / 最大并行
- 限制并行时的并行上限
- 「按策略派发」或「派发待办」
- 「暂停派发 / 恢复派发」:暂停后不再开新会话,已经在跑的不杀
工作项怎么走
待办 → 待派发 → 已认领 → 进行中 → 待审核 → 已完成
↘ 已阻塞 ↘ 返工
任何时候都可以取消。进行中不能直接标成已完成。
进入「待派发」必须同时满足:目标、范围、非范围都写了;至少一条可判定的验收标准;依赖已完成或产物可引用;项目已批准启动。
完成必须同时满足:有可访问的产物(或明确声明无文件并写原因);每条验收有结果和证据;审查结论允许关闭。Agent 不能把自己的项标成已完成。
点开工作项可以看到:子工作项、自检点、通过情况、产物路径。内部 UUID 和英文状态不会作为主文案。
项目本身:草稿 → 进行中 → 已暂停 / 收尾中 → 已关闭。未批准启动的项目保持草稿。
会话里怎么用
插件会注册三条运行时 Skill(dsh-pm-manager / dsh-pm-executor / dsh-pm-reviewer),以及一段系统提示里的操作规则。模型不必先调用 skill 才知道该用项目工具。
输入框命令:
| 命令 | 作用 |
|---|---|
/pm | 打开项目面板 |
/pm-status snapshot <项目 id> | 打印项目快照(排障用) |
/pm-status ready <项目 id> | 打印就绪队列 |
经理会话常用工具
| 工具 | 作用 |
|---|---|
project_manager_list_projects | 先看已有项目 |
project_manager_create_project | 对话式建项目(名称、目标、非目标、成功标准、并行策略) |
project_manager_add_work_item | 一次加一项,必须有目标、范围、验收 |
project_manager_approve_project | 你确认拆分后再启动 |
project_manager_update_project | 改名称、调度策略,或暂停 / 恢复派发 |
project_manager_update_work_item | 改范围或验收,必须写原因 |
project_manager_cancel_work_item | 取消一项,必须写原因 |
project_manager_dispatch | 派一项到新会话 |
project_manager_schedule | 按策略把就绪项补满 |
project_manager_resolve_blocker | 解除阻塞:继续当前会话,或收回待派发 |
project_manager_steer_execution | 给还活着的执行会话补一句,不改已发出的上下文包 |
project_manager_propose_knowledge | 提出一条知识候选,默认不自动发布 |
正在执行的工作项要改计划,须先终止,或在工具里声明 releaseFirst。
执行会话
只认领当前项。project_manager_get_context 读上下文包,用 progress / blocker 汇报,完成后 submit_deliverables(逐条验收 + 产物路径)。不能把工作项标成已完成。
审查会话
非高风险项提交后,系统可以另开一个审查会话。审查者按验收标准和产物给结论,不能改计划,也不能审自己刚执行完的那一次。
上下文包
派发时生成,版本写入这次尝试。里面有:
- 项目目标与非目标
- 本项范围与验收
- 依赖产物路径
- 相关组织知识(仅参考)
- 回报协议(进度、阻塞、提交)
执行开始后,再改项目文档不会悄悄换掉这份包。要改范围,用 update_work_item 并写原因;已经发出的包不会被静默替换。
派发新会话时,会尽量继承经理会话的模型、预设和工作区目录,避免执行会话落到错误目录。
调度策略
| 策略 | 行为 |
|---|---|
| 限制并行(默认) | 同时运行的执行会话不超过 N,未指定时 N = 2 |
| 串行 | 全项目最多一个执行会话 |
| 最大并行 | 依赖和预算允许就开 |
| 手动 | 系统不开新会话,等人或经理点派发 |
同一工作项同一时刻只有一个有效执行租约。一个会话同时只持有一个执行租约。会话没了或租约过期,标失联,不对账不得自动重派。
项目状态为「已暂停」时,不再开新的执行会话。
知识台账
- 经理或执行会话用
propose_knowledge提出候选 - 你在「知识」页通过或驳回
- 通过后还要再点「发布到组织」
- 已发布条目会作为参考写进后续上下文包
候选默认不自动发布。知识不是验收标准,也不会变成运行时 Skill。
Token 与运行记录
用量从执行会话的 assistant/chunk / assistant/message.usage 汇总(cache + input + output),记在这次尝试上。面板「运行」页按项目展示。
读不到会话用量时显示「不可用」,不会用 0 冒充「没花钱」。
数据存在哪
默认写在当前工作区的 .dsh-pm/project-manager.json。这是项目账本,不是聊天记录。Harness 的 Session / Agent 只通过引用关联。
把 .dsh-pm/ 加进 .gitignore,除非你有意共享账本。
常见问题
装完侧栏没有「项目」。
重启 dsh web,浏览器对面板做一次 Ctrl+F5。确认安装命令带了 #path:packages/dsh-project-manager。本仓库根目录的 package.json 是 private workspace,直接 github:RexCoding-Yu/dsh-project-manager 装不到插件包。
GitHub 安装失败,提示找不到入口。
发布分支必须包含已构建的 packages/dsh-project-manager/lib/。从源码安装请先 pnpm --dir packages/dsh-project-manager build。
Token 一直是 0 或「不可用」。
只有会话日志里带 usage 才会记账。旧会话或读不到日志时会显示「不可用」。
派发后会话工作区不对。
新会话会尽量继承经理会话所在项目工作区。确认经理会话本身就在目标仓库里打开。
项目关掉了,界面还像进行中。
关闭后卡片和详情应显示「已关闭」,且不能再点一次关闭。若没有,先刷新面板;仍不对再查工作区 .dsh-pm/project-manager.json 里该项目的 status。
归档后工作项还显示进行中。
归档不会自动改工作项状态。会话若已不在,到「失联」里终止或重新派发。
从源码开发
需要 Node.js 22+ 和 pnpm。
pnpm install
pnpm test
pnpm --dir packages/dsh-project-manager build
规格与验收:docs/product-spec.md、docs/requirements.md、TESTING.md。
仓库结构:
packages/dsh-project-manager/ 可安装的 Cordis 双端插件
src/ 领域 / 应用 / 持久化(同步进插件 host)
docs/ 产品规格与需求
从 GitHub 安装依赖已构建的 packages/dsh-project-manager/lib/。发版前请先在本机执行上面的 build。不要把 @deepseek-ai/* 放进插件的 production dependencies。
问题与建议请开 Issue。
许可证
本项目使用 MIT License。Copyright (c) 2026 RexCoding-Yu。
你可以自由使用、复制、修改、合并、发布和再分发,只需保留版权声明和许可文本。