> ## Documentation Index
> Fetch the complete documentation index at: https://niceeval.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 评估你的 Skill 在 Claude Code / Codex 上的表现

Skill 的难点不只是“最后答案对不对”，还包括 agent 是否在正确场景加载 Skill、是否遵循 Skill 里的流程、是否调用了该调用的工具。niceeval 适合把这些都变成可重复运行的 eval。

这类 eval 通常也采用 **Sandbox 模式**。你给 agent 一个真实任务，让它在带 Skill 的环境中执行；验证阶段检查产物、测试结果和行为痕迹。

## 评什么

* Skill 是否会被正确触发。
* Skill 指令是否让 agent 走预期流程。
* Skill 是否改善 pass rate、成本或耗时。
* Skill 是否避免了错误工具、错误文件或错误命令。

## 定义实验与安装 Skill

```
export default defineExperiment({
  description: "claude-code",
  agent: claudeCodeAgent(
    {
      skill: ["username/repo"]
    }
  ),
  model: "claude-sonnet-4-6",
  sandbox: "docker",
  runs: 3,
  earlyExit: false,
  budget: 10,
})
```

username/repo 是你在 GitHub 上的 Skill 仓库。 对应的agent adapter 将使用`npx skill add`为你添加与配置对应的skill.

## 写 Eval

```ts EVAL.ts theme={null}
import { test, expect } from "vitest";
import { readFileSync } from "node:fs";

test("adds schema validation", () => {
  const src = readFileSync("src/input.ts", "utf-8");
  expect(src).toContain("email");
  expect(src).toContain("age");
  expect(src).toMatch(/schema|Schema|zod|validator/);
});

test("project tests pass", async () => {
  // 如果 package.json 里已有 test 脚本，niceeval 会在验证阶段跑它。
  expect(true).toBe(true);
});
```

如果 agent 的 transcript 会暴露 Skill 加载事件，可以用 o11y 或 event stream 检查；如果不同 agent 的事件名不稳定，优先验证最终产物和真实测试。

## 运行

```bash theme={null}
pnpm exec niceeval exp 实验名
```

## 下一步

* [Fixtures](/zh/guides/fixtures) — 组织任务和验证脚本。
* [Experiments](/zh/guides/experiments) — 做有 Skill / 无 Skill 的对照实验。
* [评分指南](/zh/guides/scoring-guide) — 把最终结果和行为约束一起评分。
