用途:评估一个技能包是否真正改善产出,而不是仅凭标题、声称的流程或看似完整的报告给分。
输入要求:必须指定唯一目标(<INDEX name> 或 subject_path: <path>);phase 为 calibrate 或 verify;一个带适配器的 surface(codex、claude-code、cursor、opencode、cline)及确切模型名;evals/evals.json 以及可解析的旧技能或无技能基线。用 scripts/hash-skill-package.mjs 对完整目标包做哈希,所有终态结果只属于该哈希,包变更需重跑。
安全:目标保持只读;改文件任务只在 .skill-eval-runs/ 下的一次性副本中运行;对 push、PR/issue 创建、支付、迁移、生产服务等边界做 mock;无安全夹具时返回 INCONCLUSIVE。不得编辑目标、提交、推送、全局安装或接触真实外部系统。
运行:先读 references/run-protocol.md,校验评测定义;为每个用例分别创建基线与目标工作区,用相同提示、夹具、适配器、模型、权限和限制运行,且各自从干净会话开始。使用 scripts/run-harness-eval.mjs --adapter <id> ...,适配器只负责把通用运行翻译为 harness 命令并解析输出。机械断言用确定性检查,语义质量用两份产物的盲比;每条断言和评分都存简短证据文件。verify 阶段按 references/evidence-contract.md 构建结果,并对当前目标路径运行 scripts/compute-eval-verdict.mjs。不得跨适配器或模型比较 token 数;缺失 token 遥测记为不可用,不猜测也不自动判为 inconclusive,产物质量仍可证明提升;时长只报告,本身不证明提升。
校准:运行配对并提出断言,但不给出终态结论;拒绝在明显错误产物上也能通过的断言;断言集需人工或独立评审批准后才加入草稿。
触发检查:MVP 从包推导触发要求,仅显式技能不要求自动激活检查,隐式技能要求;原生触发追踪验证尚未实现,因此隐式技能无法从本 MVP 获得终态 PASS,应记为 NOT_RUN 并返回 INCONCLUSIVE。Cursor 也使用显式提示上下文而非原生技能加载。
结论:PASS 需所有断言通过、无产物回退、所需触发检查通过,且至少一项产物评分或观测到的 token 对比优于基线;FAIL 为断言、范围边界、触发检查或产物评分失败或回退;NO_LIFT 为两者都通过但目标无实测价值;INCONCLUSIVE 为基线、当前哈希、安全执行、所需触发、运行追踪、断言证据或评分证据缺失或不一致。FAIL、NO_LIFT、INCONCLUSIVE 都不构成接受或提交该修订的理由。
停止:返回一个校准产物或一个终态结论后停止;评测不授权代替人类修复、提交或接受结果。