关于 harness-bench
harness-bench 是用于创建和校验固定测试语料的技能,面向需要评估 harness 演进效果的开发者。它让不同提交或分支的评估保持可比,并可在缺少依赖时降级运行。
主要功能
- 01从现有测试生成基准套件
- 02校验套件任务格式
- 03支持 CI 中验证套件
- 04缺少依赖时返回降级状态
适用场景
- 01为不稳定的测试配置固定评估集
- 02在每个相关 PR 中检查基准套件
- 03为新领域分支调整评估任务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill harness-bench安装后在 Claude Code 中输入/harness-bench确认已加载。
详细介绍
提供 metaharness-darwin bench <create|verify> 命令——为 harness-evolve --bench 提供配套动词。适用于希望基于固定语料评估进化效果的场景(独立于 npm test),这样冠军方案的适应度便可在不同提交之间或同一套 harness 的不同分支之间进行比较。
适用场景
- 为
npm test不稳定、耗时较长或规模不足的代码库搭建新的进化流水线——只需搭建一次确定性的基准测试套件,即可反复据此进行进化。 - CI:每次有 PR 修改已纳入版本控制的套件时,都运行
bench verify(开销很低;约 5 秒)。 - 将 harness 分叉到新的领域:复制并编辑套件以调整评估目标,同时保留与上游的可比性。
算法
--op create
- 解析
--repo路径;如果路径不存在则拒绝执行。 - 调用
metaharness-darwin bench create <repo> [--out <suite.json>]。 - 默认输出路径:
<repo>/.metaharness/bench/suite.json(由上游决定)。 - 套件结构(遵循上游):由现有测试用例派生出的
{ input, expectedOutput, weight }任务数组。
--op verify
- 解析
--suite路径;如果路径不存在则拒绝执行。 - 调用
metaharness-darwin bench verify <suite.json>。 - 如果有任何任务格式错误,则退出码为 1(上游的信号)。
输出结构
{
"success": true,
"data": {
"op": "verify",
"taskCount": 42,
"wellFormed": true,
"durationMs": 870
}
}
退出码
| 代码 | 含义 |
|---|---|
| 0 | 正常(或已降级——Darwin 不存在) |
| 1 | --op verify 且套件格式错误 |
| 2 | 配置错误或上游调用失败 |
优雅降级
如果缺少 @metaharness/darwin,则输出标准 {degraded: true, reason: 'metaharness-darwin-not-available'} 载荷并以 0 退出。
评论
支持 Markdown