关于 skill-eval-builder
Skill Eval Builder 为 Skill 搭建小型评测,用真实案例衡量触发情况、输出有效性和运行时间。它面向希望生成可运行评测目录与评分表,而非大型框架的 Skill 作者。
主要功能
- 01在 Skill 旁创建评测文件
- 02测试应触发与不应触发的案例
- 03验证输出并检查时间预算
- 04评估分类门控
适用场景
- 01检查 Skill 是否按预期触发
- 02用命令验证 Skill 输出
- 03对照基准测量 Skill 运行时间
- 04评估 Skill 的分类门控
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ devclarityai/ devclarity-marketplace --skill skill-eval-builder安装后在 Claude Code 中输入/skill-eval-builder确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/eval-anatomy.mdeval-dimensions.mdscripts/classify-evals.pyrun-evals.pyscaffold-evals.py详细介绍
技能评估构建器
概述
为一项技能设置一个小型、真实的评估:在技能旁边创建一个 evals/ 文件夹,其中包含几个真实案例、一个可运行的脚本和一张评分卡。它衡量脚本无法确定的内容——该技能是否会在该触发时触发(并在不该触发时保持安静)、其输出是否有效,以及是否符合时间预算。
**核心原则:**评估是一个文件夹,而不是一个框架。保持小巧即可。
输入
- 目标技能——路径或名称(包含其
SKILL.md的目录)。 - 几个真实案例——应该触发和不应该触发的提示词及真实输入;如有需要,帮助用户找到这些案例。
- 需要关注的维度——默认使用触发和验证;如果合适,也可以加入耗时等维度。
步骤
- 阅读目标技能——查看其
SKILL.md、参考资料和脚本,以了解它的作用及产出。 - 从
references/eval-dimensions.md中选择适用的维度。工作流技能 → 触发 + 耗时;能力型技能 → 以验证为主。 - 收集 3–5 个真实案例——应该触发和不应该触发的提示词,以及真实输入。务必至少包含一个保持安静的案例。
- 为每个案例定义“良好”标准——一个
fired_when副作用检查、一条validate命令,以及基于真实基线的budget_s(见references/eval-anatomy.md)。 - 在技能旁边搭建评估文件:
然后用步骤 3–4 中的案例填充python3 "${CLAUDE_SKILL_DIR}/scripts/scaffold-evals.py" <target-skill-dir>evals/cases.md。 - 检查,然后运行基线:
python3 <target-skill-dir>/evals/run.py --dry-run # cases parse? python3 <target-skill-dir>/evals/run.py # real run (calls claude -p) - 报告评分卡及其保存位置。
测试分类门控
如果技能以分类器开头(例如,将功能请求分流到功能或缺陷,或决定是否继续),请测试该门控:
python3 "${CLAUDE_SKILL_DIR}/scripts/scaffold-evals.py" <target> --classify- 在
evals/classify-cases.md中填写标签、门控自身的指令,以及真实的已标注示例(例如,最近 10 个跟踪器工单及其现有标签,作为真实基准)。参见references/eval-anatomy.md。 python3 <target>/evals/classify.py→ 输出准确率 + 混淆情况评分卡。
输出格式
评分卡(维度 × 案例)以及保存的文件路径:
┌───────────────────────────────┬──────────┬────────┬────────────────────┐
│ Case │ Fires? │ Valid? │ Duration vs budget │
├───────────────────────────────┼──────────┼────────┼────────────────────┤
│ "add tests for X" │ ✅ │ ✅ │ 40s / 60s ✅ │
│ "refactor Y" (shouldn't fire) │ ✅ quiet │ – │ – │
└───────────────────────────────┴──────────┴────────┴────────────────────┘
保存到 <target-skill>/evals/(cases.md、run.py、results.md)。
指南
- 优先使用可观察的副作用来判断是否触发(例如技能生成的文件),而不是搜索文本内容。
- 多次运行的结果不会逐字节完全相同——技能评估会运行模型,这种差异正是你要衡量的内容。不要伪造确定性,也不要评估确定性脚本已经保证的内容(应改为对脚本进行单元检查)。
- 保持在 3–5 个真实案例,并至少包含一个保持安静的案例。参见
references/eval-anatomy.md。
文件
scripts/scaffold-evals.py— 创建evals/{cases.md, run.py, results.md},或使用--classify创建classify-*文件集。scripts/run-evals.py— 通过claude -p运行案例,为每个案例计时,检查触发和验证情况,并打印/保存评分卡。--dry-run会解析内容而不消耗令牌。scripts/classify-evals.py— 通过claude -p对已标注示例进行分类,并报告准确率 + 混淆情况。--dry-run会解析内容而不消耗令牌。references/eval-dimensions.md— 维度选项及各维度的适用场景。references/eval-anatomy.md— 案例格式、副作用模式和反模式。
如果脚本无法在此运行(需要 python3 和 claude CLI,或需要其他操作系统):不要放弃任务——评估只不过是一个 cases.md 加上一个小型运行器,因此可以使用任何可用工具运行案例并汇总评分卡。
评论
支持 Markdown