← 返回列表
未验证
用百分比看板追踪任务进度并抓取 Git 检查点
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/10 · 已提供中文文档
DeepSeek Harness 的百分比进度记分板——证据绑定行、git 捕获检查点、pursue/align/dismiss 操作者鞭策
综合分
29.3
GitHub 分
29.3
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add svgop/dsh-rich-tracking该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-rich-tracking
DeepSeek Harness 的百分比进度记分板 —— 一块停靠在 todo 胶囊下方的看板,显示各行及其来自工件事实的实时百分比、由宿主抓取 git 状态的检查点,以及操作员的鞭策动作——这些动作会作为带归属的指令落入 agent 的下一步。
进度记分板:停在 todo 胶囊下方的百分比看板——每行百分比来自工件事实,检查点由宿主抓取 git 真实状态,pursue/align/dismiss 直接鞭策到 agent 的下一步。
flowchart LR
A[tracking_writewhole-board replace] --> B{Board projection}
B --> C[Dock pill below todopercent disc + rows]
C -->|pursue / align| D[Instruction lands inagent's next step]
C -->|checkpoint| E[Host captures git+ frozen rows]
E --> C2[Before/after strip+2 commits · 48%→62%]
F[8 steps or 6k tokens stale] -->|pre-step reminder| A
安装
dsh plugin --profile web add dsh-rich-tracking
重启 dsh web 进程——tracking_write 和 tracking_checkpoint 将对每个 agent 预设可用,看板会渲染在对话停靠区中(顺序 5:在 todo 胶囊下方、目标栏上方)。
当前版本要求 DeepSeek Harness >=0.1.2-alpha.1。宿主在持久化读取器解释历史之前,通过核心 ctx.sessionEventTypes 能力注册 tracking/write、tracking/checkpoint 和 tracking/decision。这使跟踪记录持久且可重放,同时为没有活跃所有者的事件类型保留 harness 的 fail-closed 行为。该注册由插件 fiber 持有,因此卸载或 HMR 会随跟踪解释器一并移除该准入能力。
语法
todos 是微观计划(本轮);tracking 是任务记分板(跨轮次)。 看板刻意不在 turn/start 时重置——波次、里程碑和多会话目标会一直保留,直到每一行都达到 100 或你将其关闭。
行与百分比的诚实性
每一行为 {id, label, percent, status?, note?, evidence?, items?, detail?, sources?}:
- percent = 该行所属工件中(当前成立的验收项)/(总数)——计划复选框、已落地回执、已验证回读。绝不是印象。
- 每一行只要 percent >= 1,就必须带有 evidence 指明该依据(路径 + 已检查/总数)。校验会拒绝没有证据的百分比——schema 强制了操作员所说的“不是凭感觉”。
- percent: 100 要求每一项都已勾选,且所属回执存在。100% 的行会变暗,但在整个看板完成之前仍保持可见。
- items(可选,1-20):该行的验收清单 [{ label, done }]——在看板上点击该行即可就地展开。已完成项以删除线变灰;未完成项保持以主色可读。当存在 items 时,percent 必须等于 round(done/total × 100);校验会拒绝不匹配,因此可见的清单始终与显示的百分比相符。
- 总体完成度按条目加权:每个条目为一个单位;没有条目的行按 percent/100 贡献一个单位。如果任何地方都没有条目,则这恰好等于各行百分比的四舍五入平均值——旧版看板保持其原有算法。
- 行:1-12(目标 3-7),使用稳定的 ascii id(w2-fleet),以便检查点和操作可以引用它们。
行记录——“?”对话框
看板备注只有一行;详情才是该行完整故事的所在。每一行可以携带:
- detail(可选,≤ 4000 字符,纯文本/markdown):该行的完整记录——已完成内容的摘要、仍待办事项的细节、关键决策、未决问题、侦察到的竞争情报。每当该行的故事发生变化时,都要保持其最新。
- sources(可选,最多 12 个参考链接/路径):竞品文档、研究摘要、凭证。HTTP(S) 链接会渲染为可点击。
按下某一行上的 ? 按钮(悬停操作,最左侧)以打开该行的记录对话框:状态行、最新备注、证据依据、以 markdown 渲染的详情、带完成/未完成符号的验收清单,以及可点击的来源列表。它是该行的完整索引——200 字符的备注无法容纳的内容。
Scout——竞争研究扇出
Scout 按钮(胶囊标题栏,当所有行都完成时隐藏)会指示智能体运行一次研究扇出:为每个未完成行启动一个后台子智能体,每个子智能体都针对该行的问题研究 3-6 个竞品或同类实现——每个做法有何不同、其方法、关键权衡、它做对了而我们尚未做到的地方——并返回浓缩后的发现。交付的指令要求持久化摘要(.docs/digest/、.docs/research/——没有写下来的研究不算发生过),然后执行一次 tracking_write,用研究结果充实每个被研究行的 detail + sources。Scout 是 rich-questions 的 Push 在看板层面的对应物:先研究,再把知识折回,百分比不被抬高——研究是上下文,不是进展。
检查点——凭证,而非叙述
tracking_checkpoint 让宿主捕获 git 分支/HEAD/脏状态以及冻结的看板。模型从不输入 git 事实。看板显示前后对比条:+2 commits · overall 48% → 62% · W2 fleet 30% → 55%。
操作员操作(鞭策)
按行以及全看板范围:?(该行的完整记录对话框)、Pursue(将此行设为下一个焦点)、Delegate(将此行交给后台子智能体)、Scout(竞争研究扇出)、Align(从产物重新推导每个百分比——测谎检查)、Checkpoint、Dismiss。Pursue/delegate/scout/align 会作为带归属的指令进入智能体的下一步(运行时为 steer,空闲时为 followup);dismissal 是一条静默备注——而之后任何带有真实状态的 tracking_write 都会让已 dismiss 的看板复活,因为真相胜过终局。
Delegate 会向 agent 发送一份自包含的委派简报:该行的标签、百分比、带完成标记的条目清单、证据和备注,以及各项要求——一个具有读写权限的后台子 agent,严格限定在该行的任务和子任务范围内,该子 agent 维护其自己的 tracking_write 看板(限定于该任务,每步更新百分比),并在报告送达时将可验证的凭据(提交、测试结果、文件路径)回填到父行中。
播放模式——自动投入最高价值的工作
胶囊头部中有一个 ▶/⏸ 按钮。当播放开启时(绿色、脉动),每次 turn/end 都会触发自动投入:看板按价值比率对挂起的行进行排名(活跃行优先——势头很重要——然后按百分比降序:百分比最高 = 最接近完成 = 最容易摘取的果实),宣布获胜者,并发送一条后续消息,告诉 agent 立即处理它。该循环在每一轮后重复,直到暂停、看板被关闭,或每一行都达到 100。关闭看板会自动暂停。
/track——强制账本同步
/track(可选 /track )是 /plan 系列中的宿主命令:它将完整账本加上追踪准则作为用户可见消息注入 agent 的下一步——每一行都带有百分比、状态、条目标记、证据和备注,随后是重新推导指令(读取指定的产物——文档、代码、凭据、用户上下文——将百分比重新计算为已勾选/总数,修正过时的条目/文字,写入修正后的看板)。如果还没有看板,则注入创建指令。末尾的消息作为操作者自己的话一并传递。当存在实时看板时,每次用户提交也会在该轮的第一步附带一行看板提醒(每当更丰富的追踪上下文——/track 同步、鞭策指令或过时提醒——已在组装中时,则去重)。
活账本节奏
公告传授了与步骤绑定的职责:在每一个已完成且其产物真相发生变化的任务/步骤/待办事项之后执行 tracking_write——刷新百分比和条目标记——并且每当底层细节发生变化时,更新行文字(标签、备注、证据、条目)。看板始终描述当前现实,而非里程碑快照。
刷新循环
agent 工作时看板会变得过时。在8 个助手步骤或 6k 输出 token 没有 tracking_write 之后,下一次模型请求会携带一条带标签的提醒,指明过时的行。每轮一次;当看板被关闭或完成时则没有。
如何比较
| 能力 | todo_write | goal bar | rich-questions | rich-tracking |
|---|---|---|---|---|
| 生命周期 | 每轮 | 任务(服务) | 每次工具调用 | 任务(会话事件) |
| 进度信号 | 状态计数 | 阶段标签 | 已回答/总数 | 每行 % + 总体,绑定证据 |
| 操作者操作 | 无 | 暂停/恢复/编辑 | 回答/重掷/推送 | ?/pursue/delegate/scout/align/checkpoint/play/pause + /track |
| Agent whip | 描述 | 收尾上下文 | 飞行前指令 | 步骤前刷新 + 操作指令 |
| Evidence binding | 无 | 目标文本 | 来源/洞察 | 每行证据 + git 捕获的检查点 |
| Where | dock 0 | dock 10 | composer seat | dock 5 |
面板的 UI 语法
该 pill 克隆了内置 TodoPanel 的确切语法:36px 折叠高度、原生状态字形(活动状态为渐变旋转环,完成状态为圆圈对勾,待处理状态为虚线环),并且——自 v0.1.1 起——出血行:行列表在卡片内从边到边延伸,行与行之间以 1px 细线分隔(没有浮动的圆角小片),悬停和选中色调横跨整个宽度,而标题操作簇(对齐 · 检查点 · 关闭 · 折叠箭头)在 pill 的右边缘分段,全高单元格由垂直细线分隔。行可点击展开以显示条目清单;条目清单在完成时以删除线变灰。UI 本地化为英语和简体中文。
架构
src/host.js Node 半部分 — tracking_write + tracking_checkpoint 工具,
'tracking' 会话投影(无回合重置),必需的
会话事件注册,agent/pre-step 刷新提醒
+ 每回合面板提醒,/track 命令,回环
围栏的 /api/rich-tracking/action 路由(pursue/delegate/scout/
align/dismiss/checkpoint)。仅使用 Node 内置模块。
src/tracking-engine.js 纯引擎 — 面板验证(自修复消息,条目
计算),投影折叠,wire 视图,百分比计算,账本
渲染,scout 扇出简报。仅限宿主。23 个 node:test
用例:npm test。
src/client.bundle.js 浏览器半部分 — dock 面板:百分比圆盘 pill,带悬停
显示操作和条目清单的出血行,分段
标题操作,检查点前/后条带,行“?”
记录对话框(详情 markdown + 可点击来源),
工具提示。仅使用 React + 客户端原语。
cordis.patch.yml 插入插件行的 Bundle 补丁。
状态是会话事件(tracking/write、tracking/checkpoint、tracking/decision)——持久化、重新加载和 fork 都依托现有的 JSONL 日志;客户端通过投影 wire 订阅。当此插件处于活动状态时,宿主会向核心会话服务注册那些必需的外部事件类型。Fork 会继承面板并独立演化。
更新如何流动
无需刷新,无需轮询:tracking_write 追加一个会话事件 → 投影重新计算 → dock 在 todo 面板使用的同一线路上接收新视图。代理写入的那一刻,看板就移动了——鞭子也是如此:按下 pursue/align 会追加一个决策,并将指令传递到代理的下一步(运行时 steer,空闲时 followup,驳回时静默注入),在转录中渲染为带归属的上下文节点,而绝不是伪造的用户消息。
许可证
MIT同作者(svgop)的其他插件
扫码进群