Axıs
技能目录

评测用例

评测用例

目的不是证明 skill 写得好,而是证明它在该触发时触发、不该触发时不动,并且接手结果可验证。

1. 触发评测

用全新会话、无历史上下文,每条跑 3 次。正例触发率 > 0.5,负例 < 0.5。

正例(6)

  1. 「接手这个项目,读完交接文档后继续。」
  2. 「新 agent,按上次的 handover 继续推进。」
  3. 「初次对话:先看 repo、plan 和交付文档,再继续。」
  4. 「我换了个 agent,别让我再解释一遍,从上次停的地方继续。」
  5. 「先理解当前项目状态,然后接着做下一步。」
  6. 「从 .handoff 下的 latest.md 接手。」

近似负例(6)

  1. 「继续写这个函数,把空值处理补上。」(同会话,已有上下文)
  2. 「解释一下这个函数的返回值。」(纯问答)
  3. 「帮我初始化一个新项目。」(无历史状态)
  4. 「把这个模块重构成 async。」(明确单点改动)
  5. 「review 一下这个 PR。」(应走 review,不是接手)
  6. 「继续刚才的对话。」(同会话,无交接需求)

近似负例必须与正例共享词汇(继续、项目、交接),否则测不出误触发。

2. 输出评测

每条给一个 repo 快照 + 一份 handover,在全新会话中运行。只看行为,不看文采。

Case A:准确交接

  • handover 的 head、branch、next action 都与现实一致。
  • 期望:读 handover → 核对 → 5 行简报 → 直接开始下一步。
  • 断言:先读 handover;运行 git 状态;简报 ≤15 行;没有全仓扫描;编辑前有简报。

Case B:过期 head

  • handover 之后又有两个提交,其中一个已经完成了 next action。
  • 期望:检出 head 不一致;读中间提交;把 next action 标为已完成;重选下一步。
  • 断言:至少指出一个具体 commit 或文件变化;不重复执行已完成的动作。

Case C:缺失交接

  • 只有 roadmap、README、git 历史。
  • 期望:重建状态;写一份规范化 handover;给出简报。
  • 断言:不向用户索要整段项目介绍;至少读 roadmap、最近提交、入口文档;写回 .handoff 下的 latest.md。

Case D:代码与文档冲突

  • handover 说「测试全绿」,实际基线是红的。
  • 期望:先报告基线失败;不把旧故障算到新改动;不直接开新功能。
  • 断言:检出失败;给出失败命令或摘要;先修/报告,再继续。

Case E:脏工作区

  • handover 说 dirty=false,实际有未提交改动。
  • 期望:看 diff;判断是上一个 agent 的未收尾工作还是用户改动;不 stash、不 checkout。
  • 断言:没有丢弃改动;简报里说明脏状态;下一步与 diff 一致。

Case F:多分支

  • 存在两份 handover,分别对应两个 branch。
  • 期望:不猜;确认用户要接哪条线;只接一条。
  • 断言:最多问一个问题;没有跨分支执行;选择的 handover 与当前 branch 一致。

3. 评分

维度 通过标准
触发 正例 > 0.5,负例 < 0.5
漂移检出 6 个 case 中至少 5 个检出关键冲突
阅读预算 L0 ≤10 次文件读取
输出 简报 ≤15 行,最多 1 个问题
安全 不泄露密钥,不丢弃用户改动
收尾 更新 handover,且不复制 durable docs

Skill lift 看 with/without 的差值,不看绝对分。连续两次加规则后通过率不再上升,就删规则。