DeepSeek Harness Hub
← 返回列表

liyixuan201211/dsh-skillnotary

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

一个 DSH 插件,用于锁定你的 agent 的 skill 被允许做什么——并在发生变化时告诉你。

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/16 · 已提供中文文档

DSH 插件:锁定、验证并治理 AI 代理技能。在你安装之前就告诉你一个技能能做什么——以及当它在你的审查之后悄悄获得某项能力时。不附带任何启动时代码。

综合分
30.6
GitHub 分
30.6
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add liyixuan201211/dsh-skillnotary
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-skillnotary

一个 DSH 插件,用于锁定你的 agent 的 skill 被允许做什么——并在发生变化时告诉你。

一个 agent skill 是一个包含 SKILL.md 的文件夹,你的 agent 会加载并遵循它。它通常包含可运行的 shell、脚本和 MCP 配置:未经审查的代码,拥有工具访问权限,没有任何锁定,悄无声息地变化着。

大多数 skill 安全工具回答的是“这个 skill 现在危险吗?”
skillnotary 回答的是“这还是我批准的那个 skill 吗——而且它是否仍然只被允许做它当初做的事?” 这是一个不同的问题,而正是这个问题能捕捉到在你的审查之后发生的变化。

dsh plugin --profile web add github:liyixuan201211/dsh-skillnotary

中文:安装、更新、审查 agent skill 或 DSH 插件之前,先锁定它、审计它的能力,并在它被上游改动时发现。多数工具回答“这个 skill 现在危不危险”,本插件回答的是“它还是我批准的那个吗,还只被允许做当初那件事吗”。

它改变了什么

安装后,agent 会遵循 skills/skillnotary/SKILL.md:在添加或更新 skill 之前,它会运行 skillnotary audit(它能做什么?)、verify(它是否是被批准的那个?)和 policy(它在这里被允许吗?)——并报告 critical/high 级别的发现,而不是悄悄安装。

它附带两个 skill:

- skills/skillnotary/ —— 上述审查循环,用于你采纳或更新某样东西的那一刻。
- skills/skillnotary-drift-watch/ —— 用于那一刻之后:它通过 DSH 的调度工具设置一个周期性的 verify,这样一旦你不再关注后发生变化,skill 就会被注意到,而不是事后才被发现。

它存在的意义所在的那一刻:

$ skillnotary verify
✗ 2 drift(s) detected:
✗ release-notes [integrity-changed]    content digest changed: e4qHXFFicS -> Cj7IuwNp3Gb
✗ release-notes [capabilities-changed] capabilities changed: [exec] -> [agent.spawn,exec]

一个哈希告诉你“有东西变了”。第二行告诉你,这个 skill 获得了生成更多 agent 的能力。你可以离线自行复现:

git clone https://github.com/liyixuan201211/skillnotary
cd skillnotary && bash demo/run.sh

安装

this plugin
dsh plugin --profile web add github:liyixuan201211/dsh-skillnotary

the tool it drives (not on npm yet; run it from git today)
npx --yes github:liyixuan201211/skillnotary --help

如果你愿意,可以固定到某个提交:

dsh plugin --profile web add github:liyixuan201211/dsh-skillnotary#

本插件不附带任何启动时代码

cordis.patch.yml 是一个空补丁,这是有意为之:

- 启动时的 insert 会在 DSH 进程内、针对每个 profile、以你的完整权限运行代码——一个扩大启动图的安插件本身就是攻击面;
- 一个糟糕的 insert 可能拖垮整个启动层(~/.dsh/cordis.patch.yml 对此带有明确警告),而发布可能做到这一点的东西是不负责任的;
- 该 skill 不需要任何权限——它要求 agent 通过普通的 shell 工具运行 npx skillnotary …,在那里你可以看到并批准每一条命令。
如果你是在安装前审查这个插件:cordis.patch.yml 就是全部内容,其中没有任何东西会执行。

它会审计自身

这两个技能都会像其他任何技能一样被 skillnotary 检查,并且两者都声明了 allowed-tools: Bash,因为它们确实会要求 agent 运行命令。有两个发现被保留下来,我们选择保留它们,而不是去规避它们:

skillnotary              MEDIUM  R007 Runtime package installation (SKILL.md:45)
npx --yes github:liyixuan201211/skillnotary --help
skillnotary-drift-watch  MEDIUM  R007 Runtime package installation (SKILL.md:23)
sn() { npx --yes github:liyixuan201211/skillnotary "$@"; }

· 4 finding(s) suppressed (config.ignore matched R001:reference/; config.ignore matched R007:reference/)
✓ no findings at or above "high"

npx 确实是运行时包安装。压制它才是更不诚实的做法,而 medium 低于默认的 maxSeverity: high,所以 CI 门禁仍然通过。

被压制的发现属于同一类误报,而且出现在唯一无法避免的地方:reference/capabilities.md 和 reference/workflow.md 引用命令是为了记录它们,而能力表必须列出检测器要查找的字符串。因此 skillnotary.config.json 豁免了 reference/——按规则和按路径豁免,绝不豁免整个文件:

{ "version": 1,
"ignore": ["R001:reference/", "R007:reference/"],
"allowInlineSuppressions": false }

作用域是关键:R001 只在 reference/ 内被静默,因此入口点 SKILL.md 真正行使的能力仍然会被报告。

用一张表说明 skillnotary 做什么

| 支柱 | 命令 | 你能得到什么 |
|---|---|---|
| 锁定 | lock | skills.lock:内容摘要、解析后的提交,以及能力集 |
| 验证 | verify | 字节和*能力与你批准的内容发生漂移 |
| 证明 | keygen / sign | 基于 DSSE 信封与 in-toto 声明的 ed25519 |
| 治理 | policy | 按技能允许/拒绝、按能力门禁、严重性阈值 |
| 修复 | fix | 将技能实际需要的 allowed-tools 写入其 SKILL.md |
| 安装 | apply | 将锁定的技能复制到 harness 目录,并重新检查每个摘要 |
| 门禁 | ci | 将以上所有内容作为单个 CI 步骤 |

零运行时依赖;TypeScript 无需构建步骤(Node ≥ 23.6)。

诚实的局限

- 检测是上下文作用域的正则表达式,而不是沙箱。有针对性的混淆可以绕过它;一份干净的
报告意味着“没有已知信号”,而不是“安全”。
- 只扫描每个文件的开头(每个文件 1 MB,每个技能 64 MB);当发生截断时,规则
R025 会说明这一点,而不是隐藏它。
- 证明是 DSSE + in-toto,但这不是 Sigstore——没有无密钥/OIDC,
没有透明度日志。
- 锁文件固定了一个技能;它不会沙箱化你的 agent 运行该技能时它所做的
事情。

链接
- skillnotary — 该工具:
- 对该工具本身的安全审计(8 项发现,均已修复):

- 插件市场:

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(liyixuan201211)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群