dsh-daily-read:把「读最新刷 B 站日报」收成一条 `/daily`

前言

在 DSH 里跑工作流时,常见情况是:上游插件已经按天往固定目录里写 Markdown 日报,但对话里很少有人真的去打开那篇文件。手动找路径、复制进会话,模型还容易把报告原文复述一遍,而不是谈自己的理解。DeepSeek Harness 的生态是「一切皆插件」——能力通过插件挂进 profile,社区目录在 skillhub.cn 独立维护,与 DeepSeek / 幻方无官方从属关系。下面介绍维护者 hzh5021 的工作流类插件 dsh-daily-read:它只负责「去读最新那一篇」,并把读法写进一条命令和一个侧栏按钮。

这是什么

dsh-daily-read(GitHub:hzh5021/dsh-daily-read,目录页:skillhub.cn/plugins/hzh5021/dsh-daily-read)注册 slash 命令 /daily,在固定日报目录里按文件名挑出最新一篇 YYYY-MM-DD.md,向当前会话注入一条 user 消息——内容是「去读 <路径>」,并明确要求读原文、说自己的理解、不要复述报告结论。侧边栏另有「读日报」入口,主区一页按钮通过 RPC 执行同一条命令。它不生成日报,日报来自第三方插件 dsh-bili-scroll 写入的 ~/.dsh/bili-duty/out。

核心功能

命令 /daily

宿主侧(lib/index.js)向命令注册表注入 daily,描述为「读最新那篇刷 B 站日报(读完说自己的理解,不复述)」。

  1. newestReport() 对日报目录做 readdir,只认文件名形如 YYYY-MM-DD.md 的文件,按字典序取最后一个作为「最新」。
  2. 找到文件后,通过 agent.steer() 注入上述 user 消息;只给路径、不把正文塞进消息,是为了让模型去翻原文,而不是念报告。
  3. 目录不存在、或目录里没有匹配文件时,返回 { kind: "error", text: "还没找到日报:<目录> 里没有 YYYY-MM-DD.md" },错误里带目录路径,便于判断上游是否未跑。
  4. 宿主未暴露 agent.steer 时返回错误,不静默失败。

侧栏「读日报」面板

客户端(lib/client.js)注册 sidebar.panellist(id daily-read,标签「读日报」)和对应 main 页面:一个按钮加说明。点击后调用 ctx.remote.commands.execute(sessionId, "/daily", []),与命令面板里执行 /daily 同一路径;完成后 ctx.layout.selectPanel(null) 回到对话界面,回执与模型回复都在对话里。

面板打开时主区已切换,无法直接读「当前输入框里的会话」,因此客户端订阅 ctx.sessions.list,把最近一次被主区保留(retainedBy.mainView > 0)的会话记为 lastSessionId,按钮发往该会话。若认不出会话,面板会提示先点开一个会话再回来按。失败原因会显示在面板上,而不是无反馈。

安装与启用

官方安装命令如下(来自仓库 README):

dsh plugin add hzh5021/dsh-daily-read

装好后需重启 DSH。包声明 dsh.client,设置页/侧栏随 profile 加载;插件行由本包 cordis.patch.yml 插入,profile 的 cordis.yml 为生成物,不要手改。

若手工接入,README 给出四步:将包放入 ~/.dsh/plugins/dsh-daily-read/;在 profile 的 package.json 的 dependencies 增加 "dsh-daily-read": "file:../../plugins/dsh-daily-read" 并在 profile 的 node_modules/ 下保留同名联接;在同一份 package.json 的 dsh.profile.bundles 中加入 "dsh-daily-read";重启 DSH。

运行环境:package.json 要求 Node >=18,许可证 MIT,当前资料中版本为 0.2.1。插件以当前 DSH 进程权限运行,安装前宜自行查看源码与许可证。

配置

无配置项。 日报目录、命令名、注入文案均写在代码里:

  • 日报目录固定为 ~/.dsh/bili-duty/out(用户 home 下的 .dsh 路径)。
  • 要换目录需改源码,不能通过配置文件改。

典型用法

  1. 确保 dsh-bili-scroll(或等价流程)已在 ~/.dsh/bili-duty/out 产出 YYYY-MM-DD.md。
  2. 在 DSH 中安装并重启本插件。
  3. 打开任意会话,输入 /daily 并执行;或点侧栏「读日报」再按按钮。
  4. 在对话中查看模型是否按路径读取文件并给出理解,而非复述报告。

README 建议的冒烟方式:装好重启后,在会话里敲 /daily,观察模型是否去读对应文件。包内无自带 test/ 目录。

适用场景与注意

适合谁: 已用 dsh-bili-scroll 类插件每日落盘刷 B 站日报、希望在 DSH 里用一条命令或按钮触发「读最新 + 说理解」的开发者。

依赖与边界:

  • 强依赖 ~/.dsh/bili-duty/out 与 YYYY-MM-DD.md 命名;上游未写文件时 /daily 仅返回错误。
  • 宿主需暴露 commands;侧栏按钮还需 remote.commands。客户端 inject 使用服务短名(如 remote、remote.commands 等),与 package.json 里 dsh.client.inject 的全名写法不是同一套,改错会导致 web boot 激活失败。
  • 「点按钮」路径 README 注明无自动化测试;命令路径由宿主注册表承担。

结尾

dsh-daily-read 把「找最新日报、注入读文件指令、要求说理解而非复述」收成 /daily 与侧栏同效按钮,补的是「有人写、没人读」这一段工作流。进一步了解可访问 目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye