用最省时的检查确认改动,并实测每步耗时
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Ushio155/dsh-verify-cheap该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 30 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 包内无可扫 JS
- · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/10/31(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-skill-filesystem给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 低成本检查验证
- 轮询条件代替等待
- 报告实测耗时
为 DeepSeek Harness 发布 verify-cheap 技能:挑最省成本的检查拿到确定答案,轮询条件而不是干等,并报告实测耗时。附带两个零依赖 Node 工具。
README
由 DeepSeek 最新模型翻译生成dsh-verify-cheap
一个 DSH 插件,内容只有一份技能:用最低成本验证改动。安装时把包内的 skills/ 注册为一个技能根,于是这份技能随插件进入 agent 的技能目录。
dsh plugin --profile web add github:Ushio155/dsh-verify-cheap
技能正文是中文;SKILL.md 的 description 也是中文(它决定触发)。脚本本身与语言无关,可脱离 DSH 单独使用。
技能覆盖什么
- 成本阶梯 L0–L3:静态检查 / 探针 / 单个测试套件 / 全量,各自典型耗时与适用场景,以及怎么按「改的是行为还是表现」选档
- 不要用固定延时等后台作业:条件轮询 + 超时;确实需要固定延时的三个并列条件(否则就是猜)
- 断言必须能失败:举不出失败场景的断言等价于没有验证;优先断言具体取值,而不是「存在 / 不为空 / 小于 N」
- 耗时必须实测:脚本要打印分段耗时表,并同时给出外部总时长与脚本内计时 —— 两者差距明显,说明有句柄 / 连接 / 定时器挂在事件循环上
- 把坑沉淀给下一个会话:读代码读不出来的事实要落进该仓库的长期索引,而不是 README 或阶段笔记
展开完整文档(README 剩余 1 节)
dsh-verify-cheap
一个 DSH 插件,内容只有一份技能:用最低成本验证改动。安装时把包内的 skills/ 注册为一个技能根,于是这份技能随插件进入 agent 的技能目录。
dsh plugin --profile web add github:Ushio155/dsh-verify-cheap
技能正文是中文;SKILL.md 的 description 也是中文(它决定触发)。脚本本身与语言无关,可脱离 DSH 单独使用。
技能覆盖什么
- 成本阶梯 L0–L3:静态检查 / 探针 / 单个测试套件 / 全量,各自典型耗时与适用场景,以及怎么按「改的是行为还是表现」选档
- 不要用固定延时等后台作业:条件轮询 + 超时;确实需要固定延时的三个并列条件(否则就是猜)
- 断言必须能失败:举不出失败场景的断言等价于没有验证;优先断言具体取值,而不是「存在 / 不为空 / 小于 N」
- 耗时必须实测:脚本要打印分段耗时表,并同时给出外部总时长与脚本内计时 —— 两者差距明显,说明有句柄 / 连接 / 定时器挂在事件循环上
- 把坑沉淀给下一个会话:读代码读不出来的事实要落进该仓库的长期索引,而不是 README 或阶段笔记
- 何时不该用 / 直接跳档:改动触及公共代码或构建配置 → 直接 L3,不必先走 L0 试探;探索性调试先弄清问题再选档;安全、并发、时序类改动静态检查置信度极低,直接从 L2 起步
- 成本表落位:每次验证记三项(档位 / 实测耗时 / 能否再降一档),表落在仓库根 .verify-cost.md;仓库已有 SUMMARY.md 这类索引时,并进其中「成本表」小节
布局
package.json # dsh.bundle.patch → cordis.patch.yml
cordis.patch.yml # 插入一行 @deepseek-ai/dsh-skill-filesystem,customSkillDirs 指向 skills/ skills/ verify-cheap/ SKILL.md references/ anti-patterns.md # 恒真断言、等价反模式、手写轮询的两个坑 cost-measurement.md # 计时实现、内外差异判定、成本表模板 probe-cookbook.md # 探针外壳规范与各技术栈写法 scripts/ wait-until.mjs measure-runtime.mjs
cordis.patch.yml 用 createRequire(baseUrl).resolve('<包名>/package.json') 定位本包目录,再把 skills/ 拼上去 —— 这与 DSH 自带 agent preset 装载自己技能用的是同一套写法。providerName 必须每包唯一 —— 技能注册表拒绝同名 provider,所以默认值 filesystem 会和 harness 自带 provider 以及任何用同一机制的插件撞名;includeDefaultRoots: false 让这个 provider 只管自己的目录(project / user 根由 harness 自带 provider 负责,不用重复声明)。
⚠️ 不要用 new URL('skills/', baseUrl) 那种写法。 baseUrl 锚在 profile 目录,不是包目录;那种写法会静默指向 <profile>/skills,目录不存在,于是一个技能都加载不出来,而且不报错。
这条是实测出来的,不是推断:在同一个已安装的 profile 里, ① 按 new URL 写,放一个只存在于包内的探针技能 → 技能目录里看不到; ② 只改这一行成 createRequire 写法 → 探针立刻出现; ③ 删掉探针 → 又消失。
同 profile、同安装、同提问,唯一变量是那一行。若你的技能装上了却「没生效」,先查这里。
peerDependencies 用的是 "",理由如下
官方 @deepseek-ai/ 包按 awesome-dsh-plugin 贡献指南的建议声明为 peerDependencies 而非 dependencies,范围写 ""。
但 "" 在裸 semver 下并不匹配预发布版本。实测(npm 自带的 semver 库):
semver.satisfies('0.1.7-rc.2', '') → false
semver.satisfies('0.1.7-rc.2', '', { includePrerelease: true }) → true
semver.satisfies('0.1.7-rc.2', '>=0.1.0-rc.1 <0.2.0-0') → false ← 指南推荐的写法也失效
semver.satisfies('0.1.7-rc.2', '>=0.1.7-rc.1 <0.2.0-0') → true
而本机装的 harness 正是预发布版本:@deepseek-ai/dsh-skill-filesystem@0.1.7-rc.2(cordis 是稳定的 4.0.4)。
- 贡献指南给的 || 分支写法(>=0.0.1-rc.1 <0.1.0 || >=0.1.0-rc.1 <0.2.0-0)确实修好了它举的那个例子,但只覆盖被写明元组的那一个版本:0.1.7-rc.2 依然不满足,因为该范围里没有任何 0.1.7 元组上的预发布比较符。照抄它,就会在 harness 下一次 rc 跳元组时把一个真实环境静默排除掉。
- 所以这里保留 "",并把这条当作已记录的已知事实,而不是加一个会随时间腐坏的范围。实测 dsh plugin add github:Ushio155/dsh-verify-cheap 安装成功、技能正常加载 —— 即该 peer 范围未被判定为不满足(pnpm 是不满足时只告警、还是按 includePrerelease 判定,没有进一步区分)。
结论:在 DSH 插件里写死 @deepseek-ai/ 的预发布范围,比写 "" 更危险。
两个脚本(零依赖,Node >= 18)
两个脚本都不依赖任何第三方包(只用 node: 内建模块),可以脱离 DSH 直接跑。它们自身只做等待与计时;被执行的是你传给它们的命令。
wait-until.mjs —— 条件轮询 + 超时
替代脚本内的固定延时:每次尝试都重新判断条件,条件满足即刻返回,超时则失败退出,因此不会出现"条件早满足要重试、晚满足就白等"。
node skills/verify-cheap/scripts/wait-until.mjs --timeout 120 -- npm run build
node skills/verify-cheap/scripts/wait-until.mjs --timeout 90 --file out/index.js
node skills/verify-cheap/scripts/wait-until.mjs --timeout 30 --port 3080
node skills/verify-cheap/scripts/wait-until.mjs --timeout 120 --match "listening on" -- npm run dev
也可以当库用:
import { waitUntil } from '<plugin-dir>/skills/verify-cheap/scripts/wait-until.mjs';
await waitUntil(() => isReady(), { timeoutMs: 60_000, intervalMs: 500, label: '被测对象就绪' });
退出码:0 条件已满足 / 1 超时 / 2 参数错误。--match 需要捕获子进程 stdout,在禁止管道 stdio 的受限沙箱中不可用(脚本会用 --help 说明这一点)。
measure-runtime.mjs —— 实测耗时
两种用法:
CLI 模式测任意命令的外部总时长(从子进程启动到退出),退出码透传子进程退出码,无法启动时为 127:
node skills/verify-cheap/scripts/measure-runtime.mjs --label "L2 集成测试" -- npm test
node skills/verify-cheap/scripts/measure-runtime.mjs --json -- pwsh -File build.ps1
库模式才提供分段耗时与内外对比 —— 按 [小节] 边界打印分段表,并同时给出外部总时长与脚本内计时,把两者差值标出来。汇报耗时可以直接引用它,而不是凭印象:
import { createTimer } from '<plugin-dir>/skills/verify-cheap/scripts/measure-runtime.mjs';
const timer = createTimer('L2 注入回归');
timer.start('prepare');
// ... 被测工作 ...
timer.end('prepare');
await timer.section('run', async () => { / ... */ });
timer.report({ exit: 0 }); // 省略 exit 则不退出进程
报告之后进程若仍存活,退出钩子会补测那段耗时并告警 —— 这正是"有句柄 / 连接 / 定时器挂在事件循环上"的常见表现。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Ushio155/dsh-verify-cheap
用最省时的检查确认改动,并实测每步耗时
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9