dsh-verify-judge

DSH PLUGIN开发与运行时

仓库 zriyox/dsh-verify-judge

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH plugin 让 Agent 在声明任务完成前强制运行测试验证,未通过则拒绝并反馈修复,确保目标真实达成。

一句话选型结论

按资料字段整理

dsh-verify-judge 是开发与运行时类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 4 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类开发与运行时 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-08-15 创建于 2026-08-15
README 7.3 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:zriyox/dsh-verify-judge
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.0-rc.2 等 12 个;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.0-rc.2 等 12 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-verify-judge:让 DeepSeek Harness 代理用测试证据证明工作完成

  • 目标盖章前强制跑测试
  • 回合结束二次验证
  • 失败反馈自动修复
  • 无测试时默认放行

适用场景

终端命令代码评审

上游标签

agentdeepseek-harnessdsh-pluginverification

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询
— · 其它检查项
  • L4_0_SANDBOX 沙盒安装判定 方式:沙盒安装执行

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.0-rc.2 等 12 个),按版本装不容易报错。
  • 列出了 4 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在开发与运行时场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-verify-judge当前 L5 · 运行验证通过 低风险 0 0.2.0-rc.2 等 12 个 有
deepseek-harness L3 · 安装规范通过 低风险 24.6 万 未标注 无
rea L4 · 沙盒安装通过 低风险 2.6 万 0.1.1-rc.2 有
dsh-TUI L4 · 沙盒安装通过 中风险 4,292 0.1.7-rc.2 等 5 个 有
mirage L3 · 安装规范通过 低风险 3,681 未标注 无
dashi-taskboard L4 · 沙盒安装通过 低风险 3,311 0.1.1-rc.2 有

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方zriyox仓库 dsh-verify-judge · 默认分支 main
分类开发与运行时dev
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-15 · 2026-08-15最后推送 2026-08-15
本站收录2026-08-27首次进入本站目录的时间

README 全文

7.3 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-verify-judge

English | 中文

What it does, in one sentence: when your AI agent says "I'm done", this plugin makes it prove it.

You're running a long task with a goal in DeepSeek Harness. The agent works a few rounds, then announces "done". But done according to whom? By default, according to itself — and models are known to rationalize half-finished work.

With this plugin installed, "done" has a price:

  • The agent calls update_goal(complete) to close its goal → the plugin actually runs the project's test suite first. Red tests → the completion is rejected, and the failure output goes back to the agent as "keep fixing" instructions.
  • The agent tries to skip the ceremony and just say it's done in chat, then end the turn → the plugin checks again at the turn boundary and sends it back to work.

If everything is genuinely green, the agent never notices the plugin exists. That's the whole UX: invisible when honest, immovable when not.

What it solves

Autonomous goal loops (e.g. dsh's goal mode) let an agent run many rounds by itself — but the moment of "I'm done" was pure self-declaration. With a vague or ambitious objective, the model could stamp complete while tests were still red. verify-judge turns stamping into a gated action: the goal can only close when the workspace's own verification commands exit 0.

Test evidence (real runs, 2026-08-14, headless profile, live API)

Same workspace, same failing test (add implemented as a - b); only the gate differs:

Run Gate What the model did Result
A/B control OFF (disabled: true) Created goal, immediately stamped complete with tests still failing ❌ Stamp accepted — goal "complete" with a red suite, 0 rounds spent
A1 ON Stamped without fixing 🚫 Denied: "Verification failed — the goal cannot be marked complete yet", with the failing command and output tail fed back; goal stayed active
A2 ON Fixed the bug per the denial feedback, re-stamped ✅ Accepted after npm test exit 0; goal complete, auto-disarmed
A4 ON Goal in a workspace with no detectable test command (write a text file) ✅ Stamped normally — nothing to verify, default allow
Turn-end gate (v0.2.0) ON Created a goal, then declared "done" in prose without stamping or fixing 🚫 The turn-end gate re-ran npm test, found it red, and steered the agent to keep working — twice, then stopped per maxTurnEndRetries; the model's own words: "只要验证器继续触发,我会继续如实报告"
Happy path (v0.2.0) ON Created a goal, fixed the code properly, then stamped ✅ Zero interference — both gates stayed silent, goal closed on first stamp; the model reported "没有收到任何来自验证器的提示"
onUndetected: deny (v0.2.0) ON Stamp in a marker-less workspace 🚫 Denied with configuration guidance; the model correctly explained the two remedies (set commands or add a test script)
Command timeout (v0.2.0) ON Verification command sleep 5 with timeoutMs: 2000 🚫 Denied ("timed out after 2000ms"); recognizing the failure as deterministic, the model escalated to blocked with a concrete reason — the intended pressure valve
Nonexistent command (v0.2.0) ON commands: ['definitely-not-a-real-command-xyz'] 🚫 Denied with exit code 127 / command not found; the model located the misconfiguration in the harness profile, refused to tamper with it ("修改它属于篡改验证系统,不可为"), and marked the goal blocked

Full-philosophy demo (goal + plan.md acceptance checklist + gate): the agent fixed capitalize, implemented the missing reverseWords, ticked all three checkboxes in plan.md itself, and stamped — the gate re-ran npm test (2 pass / 0 fail) and let the goal close. The receipt on disk (plan.md fully checked) matches the test reality.

Demo

A self-contained, reproducible demo lives in demo/: a workspace with an intentionally failing test, a plan.md acceptance checklist, and run-demo.sh. It walks through the deny → fix → pass loop against the live harness, plus the A/B control (disable the gate and watch the stamp sail through with red tests).

Install

dsh plugin --profile web add github:zriyox/dsh-verify-judge
# or a local checkout:
dsh plugin --profile web add /absolute/path/to/dsh-verify-judge

Restart dsh web (or let the patch watcher reload). From then on, every update_goal(complete) in every session runs the gate.

How it works

model calls update_goal(action: "complete")
→ tools/pre-execute waterfall intercepts the call
→ resolve verification commands:
config.commands (always wins)
→ else auto-detect in the session workspace:
package.json with scripts.test →  test (pm from lockfile)
go.mod → go test ./...
Cargo.toml → cargo test
→ run each through ctx.shell (inherits the deployment's sandbox)
→ all exit 0 → next() → the stamp proceeds
→ any failure → deny; the model receives the failing command,
exit code, and an output tail as its fix instruction

Nothing else is touched: non-update_goal calls and non-complete actions delegate via next() unchanged. Disable the row (disabled: true) and behavior returns to stock.

Configuration

Add config to the plugin row (profile or home cordis.patch.yml):

- id: verify-judge
config:
commands: ['pnpm test', 'pnpm run lint']  # always wins over auto-detect
onUndetected: allow                        # allow (default) | deny
timeoutMs: 300000                          # per-command cap
outputTailChars: 4000                      # failure tail fed to the model
Field Default Meaning
commands auto-detect Explicit verification commands, run in the session workspace
onUndetected allow deny refuses the stamp when no command is found
timeoutMs 300000 Per-command timeout
outputTailChars 4000 Cap on the output tail included in denial feedback
gateTurnEnd true Also re-verify at turn end while a goal is active
maxTurnEndRetries 2 Max verification-driven continuations per turn

Development

pnpm install
pnpm run build        # tsc → lib/

Debug without an API key using the harness's mock LLM (pnpm run mock:llm in the deepseek-harness repo), then drive a session that creates a goal and lets the model try to complete it against a workspace with a failing test.

Roadmap

  • v2.1: anchor the verification surface at goal-creation time (snapshot commands + hash test files); deny when the suite drifts mid-goal — closes the "edit the tests, then stamp" reward hack.
  • v2.2: parse acceptance items from plan.md; judge non-scriptable items with an isolated-context subagent (the main session only receives the verdict table).
  • v3: verification receipts — any successful mutating tool call after a pass invalidates the receipt, so the next conclude must re-verify.

Shipped in 0.2.0: the turn-end gate (agent/turn-stopping), per-workspace serialized runs, fail-closed abort handling, runner-error class (no "fix the environment by editing tests" pressure).

License

MIT

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-verify-judge 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:zriyox/dsh-verify-judge` 即可。

dsh-verify-judge 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-verify-judge 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-verify-judge 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-verify-judge 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-alpha.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2。版本较多,只列出前 8 个。

dsh-verify-judge 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-verify-judge 有哪些功能?

目标盖章前强制跑测试、回合结束二次验证、失败反馈自动修复、无测试时默认放行。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

zriyox 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。