前言¶
对使用 DeepSeek Harness(DSH)的开发者来说,插件可以把常见工作流接进智能体对话里。一个常见痛点是 GitHub Actions 失败后,需要打开很长的原始日志,再人工判断哪一步失败、是否之前也失败过、哪些文件可能相关。
dsh-ci-doctor 是一个 DSH 插件,用来监视 GitHub Actions 的新失败,并把原始日志诊断成结构化发现。
这是什么¶
这是一个包名为 dsh-ci-doctor 的 DeepSeek Harness 插件。
它的核心定位是:
- 监视 GitHub Actions 的新失败运行
- 将原始日志整理成结构化发现
- 通过聊天中的自然语言指令启动监视或诊断
资料中给出的仓库地址是:
https://github.com/jkrandom-sudo/dsh-ci-doctor
许可证为 MIT。
核心能力¶
dsh-ci-doctor 主要提供两类能力:监视和诊断。
- 启动
ci_watch后台任务,轮询新的失败运行。 - 运行
ci_diagnose,对最新失败运行或指定runId生成 Markdown 诊断卡。 - 生成归一化错误签名、失败类别、可疑文件和修剪后的日志摘录。
- 通过失败签名账本记录历史签名,并标记重复失败。
- 仅读取 GitHub 状态,不推送、合并、取消、重跑或写入仓库。
- 依赖已认证的 GitHub CLI 会话。
其中,ci_watch 首次轮询会设置基线,历史红色运行不会触发报警。日志摘录按预算裁剪,不发明内容。
安装与启用¶
先确认本机 GitHub CLI 已登录,插件会复用这个会话:
gh auth login
Node 引擎要求为:
^22.19.0 || >=24.0.0
安装插件:
dsh plugin --profile web add dsh-ci-doctor
由于插件会运行在 DSH 插件环境中,并依赖已认证的 gh 会话读取 GitHub 状态,安装前建议检查源码和 MIT 许可证。
典型用法¶
下面介绍三类常见指令。
启动 CI 监视¶
在聊天中说:
Watch CI on this repo and tell me when something fails
这会启动 ci_watch 后台任务。
ci_watch 参数示例:
{
"repo": "owner/name",
"branch": "main",
"intervalSeconds": 30,
"timeoutMinutes": 60
}
这个任务会轮询新的失败运行。首次轮询设置基线,因此历史红色运行不会触发报警。遇到瞬时错误时会指数退避;连续 5 次失败后放弃;认证错误会立即失败。
诊断最新失败运行¶
在聊天中说:
Why did the nightly build fail?
这会对最新失败运行运行 ci_diagnose,并返回诊断卡。
诊断指定 run¶
在聊天中说:
Diagnose run 31782742089 on cli/cli
这会对指定 run 进行定向诊断。
ci_diagnose 参数示例:
{
"repo": "owner/name",
"runId": 31782742089
}
只读边界与签名账本¶
dsh-ci-doctor 的只读契约比较明确:
- 不
push - 不
merge - 不
cancel - 不
rerun - 不写入仓库
结果会携带 repositoryWrites: false 标记。
签名账本用于记录历史签名,并标记重复失败。当 profile 提供 storage domain 时,账本持久化为 ci_doctor 存储单元;否则仅在内存中。
适用场景与注意¶
这个插件适合需要在 DSH 对话里处理 GitHub Actions 失败日志的场景。例如,你希望智能体先盯住新失败,再对某个 run 生成一份结构化诊断结果。
使用注意:
- 插件依赖已认证的 GitHub CLI 会话。
- 插件只读取 GitHub 状态,不执行写操作。
- 签名账本是否持久化取决于 profile 是否提供 storage domain。
- 安装前应检查源码和 MIT 许可证。
- DSH 插件生态是社区目录形式,不是官方应用商店。
链接¶
已核实资料未提供目录页 URL。仓库地址为:
https://github.com/jkrandom-sudo/dsh-ci-doctor