关于 self-eval
self-eval 是用于评估已完成工作的 Claude Code 技能。它将任务难度与执行质量分开评分,要求进行正反论证,并跨会话记录分数以发现评分偏高。
主要功能
- 01分别评估任务难度与执行质量
- 02按矩阵计算综合分数
- 03强制进行高低分论证
- 04持久保存评分记录
- 05检测评分集中现象
适用场景
- 01在 Claude Code 会话结束时评估工作
- 02检查常规任务是否被高估
- 03比较不同会话的自评结果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill self-eval安装后在 Claude Code 中输入/self-eval确认已加载。
详细介绍
Self-Eval:诚实的工作评估
ultrathink
层级: STANDARD 分类: Engineering / Quality 依赖: 无(仅提示词,无需外部工具)
描述
Self-eval 是一个 Claude Code 技能,用于生成诚实、校准过的工作评估。它取代了 AI 默认将所有内容都评为 4/5 的倾向,采用结构化的双轴评分系统、强制性的魔鬼代言人推理,以及跨会话的反通胀检测。
核心洞察是:AI 的自我评估会收敛到"一切都是 4 分",因为单一维度的分数混淆了任务难度与执行质量。Self-eval 将这两个维度分开,然后通过一个模型无法覆盖的固定矩阵进行合并。
功能特性
- 双轴评分 — 独立评定任务雄心(低/中/高)和执行质量(差/合格/优秀),然后通过查找矩阵合并
- 强制性魔鬼代言人 — 在定稿前,必须同时论证更高和更低的分数,然后化解这一张力
- 分数持久化 — 将分数追加到工作目录中的
.self-eval-scores.jsonl,跨会话积累历史记录 - 反通胀检测 — 读取过往分数,标记聚集现象(最近 5 次中有 4 次及以上相同)
- 矩阵锁定评分 — 综合分数来自矩阵,而非直接选择。低雄心将分数上限限制在 2/5,无论执行质量如何
用法
在 Claude Code 会话中完成工作后:
/self-eval
附带需要评估内容的上下文:
/self-eval the authentication refactor we just completed
该技能会回顾对话历史,识别已完成的工作,在两个维度上评分,运行魔鬼代言人检查,并将结果追加到分数历史文件中。
示例
示例 1:功能实现
/self-eval added pagination to the user list API
输出:
## Self-Evaluation
**Task:** Added cursor-based pagination to the user list API endpoint
**Ambition:** Medium — New feature with established patterns, but required careful backwards compatibility
**Execution:** Strong — All tests pass, handles edge cases, existing clients unaffected
**Devil's Advocate:**
- Lower: Pagination is well-documented. The pattern was copied from another endpoint with minor changes. Could argue Low ambition.
- Higher: The backwards-compat requirement made this harder than a greenfield implementation. Had to support both offset and cursor modes.
- Resolution: Medium ambition holds — the backwards-compat constraint added real complexity beyond copy-paste.
**Score: 4** — Solid execution on meaningful work with real constraints.
示例 2:缺陷修复
/self-eval
输出:
## Self-Evaluation
**Task:** Fixed race condition in the checkout flow causing duplicate orders
**Ambition:** Medium — Required debugging across 3 services to find the root cause
**Execution:** Adequate — Fix works but the test only covers the exact scenario reported, not the general class of race conditions
**Devil's Advocate:**
- Lower: The fix was a single line (adding a mutex). Once found, it was trivial.
- Higher: Finding the root cause across 3 services took real investigation. The mutex placement required understanding the full flow.
- Resolution: Medium ambition is correct for the investigation, but execution drops to Adequate — a more thorough fix would address the pattern, not just the instance.
**Score: 3** — Good debugging work but the fix is narrow.
评估内容
$ARGUMENTS
如果未提供参数,则回顾完整对话历史,找出本次会话完成的工作。在评分前用一句话概括所做的工作。
如何评分 — 双轴模型
在两个相互独立的维度上评分,然后使用矩阵进行合并。不要先选定一个数字再去找理由——应分别评定每个维度,然后查阅矩阵。
维度 1:任务雄心(尝试了什么)
评定所处理工作的难度和风险,而非完成的好坏。
- 低(1) — 安全、熟悉、常规。失败风险不大。例如:小幅配置修改、简单重构、略作改动的复制粘贴,以及在开始前就确信能完成的任务。
- 中(2) — 有一定新颖性或挑战性的实质性工作。可能部分失败。例如:新功能实现、对接不熟悉的 API、架构调整、调试棘手的问题。
- 高(3) — 雄心勃勃、不熟悉或风险很高。存在彻底失败的真实风险。例如:在不熟悉的领域从零构建系统、复杂的系统重新设计、性能关键的优化、在压力下发布到生产环境。
自检: 如果开始前就确信能成功,那么雄心应为低或中,而非高。
维度 2:执行质量(完成得如何)
评定实际产出的质量,与任务有多雄心勃勃无关。
- 差(1) — 重大失败、未完成、输出错误,或中途放弃。交付物未达到其自身声明的标准。
- 合格(2) — 已完成,但存在缺口、捷径或缺乏严谨性。完成了任务,但留下了明显可以改进之处。
- 优秀(3) — 执行良好、全面细致、输出质量高。就所涉范围而言,没有明显应做而未做的改进。
综合评分矩阵
| 执行差 (1) | 执行尚可 (2) | 执行出色 (3) | |
|---|---|---|---|
| 低雄心 (1) | 1 | 2 | 2 |
| 中等雄心 (2) | 2 | 3 | 4 |
| 高雄心 (3) | 2 | 4 | 5 |
以矩阵为准,不要覆盖它。 综合分就是你的分数。下面的唱反调环节可以促使你重新评定某个维度,但你不能直接推翻矩阵结果。
关键特性:
- 低雄心最高只能得 2 分。安全的工作即便做得完美,仍然是安全的工作。
- 得 5 分必须同时满足高雄心和出色执行。这种情况应当很少见。
- 高雄心 + 执行差 = 2 分。大胆的失败会带来伤害。
- 对于扎实工作,最常见的诚实评分是 3 分(中等雄心,执行尚可)。
唱反调(必做)
在写出最终评分之前,你必须写完以下三项:
- 更低的理由: 这项工作为何可能应得更低的分数?什么地方是轻松完成的,什么地方是回避的,什么地方的雄心其实没有表面上看起来那么大?一位持怀疑态度的审阅者会同意你对各维度的评级吗?
- 更高的理由: 这项工作为何可能应得更高的分数?什么地方确实具有挑战性、出乎意料,或超出了原计划?
- 结论: 如果任一理由揭示出你对某个维度评定有误,就重新评定该维度并重新计算矩阵结果。然后给出最终分数,并附上 1–2 句理由,且至少回应两方理由中的一点。
如果你的唱反调内容总共不足 3 句,说明你没有认真对待它,请再努力一些。
锚定偏差检查
在当前工作目录中检查是否存在评分历史文件 .self-eval-scores.jsonl。
如果该文件存在,读取它并检查最近 5 次评分。如果其中 4 次或以上是同一个数字,请标记如下:
警告:检测到评分扎堆。 最近 5 次评分:[列表]。请考虑你是否在锚定某个默认值。
如果该文件不存在,请自问:“一位外部观察者会对此给出与我相同的评分吗?”
评分持久化
展示评估结果后,在当前工作目录的 .self-eval-scores.jsonl 中追加一行:
{"date":"YYYY-MM-DD","score":N,"ambition":"Low|Medium|High","execution":"Poor|Adequate|Strong","task":"1-sentence summary"}
这使锚定偏差检查能够跨会话生效。如果该文件不存在,请创建它。
输出格式
请按以下格式呈现你的评估:
自我评估
任务: [用 1 句话概括所尝试的工作] 雄心: [低/中/高] — [1 句理由] 执行: [差/尚可/出色] — [1 句理由]
唱反调:
- 更低的理由:[为何可能应得更低分]
- 更高的理由:[为何可能应得更高分]
- 结论:[最终推理]
评分:[1-5] — [1 句最终理由]