跳转至

Eval Harness 技能

Claude Code 会话的正式评估框架,实现评估驱动开发(EDD)原则。

哲学

评估驱动开发将评估视为“AI 开发的单元测试”: - 在实现之前定义预期行为 - 在开发过程中持续运行评估 - 每次变更都跟踪回归 - 使用 pass@k 指标衡量可靠性

评估类型

能力评估

测试 Claude 是否获得了此前无法完成的能力:

[CAPABILITY EVAL: feature-name]
タスク: Claudeが達成すべきことの説明
成功基準:
  - [ ] 基準1
  - [ ] 基準2
  - [ ] 基準3
期待される出力: 期待される結果の説明

回归评估

确认变更不会破坏现有功能:

[REGRESSION EVAL: feature-name]
ベースライン: SHAまたはチェックポイント名
テスト:
  - existing-test-1: PASS/FAIL
  - existing-test-2: PASS/FAIL
  - existing-test-3: PASS/FAIL
結果: X/Y 成功(以前は Y/Y)

评估器类型

1. 基于代码的评估器

使用代码进行确定性检查:

# ファイルに期待されるパターンが含まれているかチェック
grep -q "export function handleAuth" src/auth.ts && echo "PASS" || echo "FAIL"

# テストが成功するかチェック
npm test -- --testPathPattern="auth" && echo "PASS" || echo "FAIL"

# ビルドが成功するかチェック
npm run build && echo "PASS" || echo "FAIL"

2. 基于模型的评估器

使用 Claude 评估自由格式输出:

[MODEL GRADER PROMPT]
次のコード変更を評価してください:
1. 記述された問題を解決していますか?
2. 構造化されていますか?
3. エッジケースは処理されていますか?
4. エラー処理は適切ですか?

スコア: 1-5(1=不良、5=優秀)
理由: [説明]

3. 人工评估器

为人工审查设置标记:

[HUMAN REVIEW REQUIRED]
変更内容: 何が変更されたかの説明
理由: 人間のレビューが必要な理由
リスクレベル: LOW/MEDIUM/HIGH

指标

pass@k

“k 次尝试中至少成功 1 次” - pass@1:首次尝试的成功率 - pass@3:3 次以内成功 - 常见目标:pass@3 > 90%

pass^k

“k 次尝试全部成功” - 更高的可靠性标准 - pass^3:连续 3 次成功 - 用于关键路径

评估工作流

1. 定义(编码前)

## 評価定義: feature-xyz

### 能力評価
1. 新しいユーザーアカウントを作成できる
2. メール形式を検証できる
3. パスワードを安全にハッシュ化できる

### リグレッション評価
1. 既存のログインが引き続き機能する
2. セッション管理が変更されていない
3. ログアウトフローが維持されている

### 成功メトリクス
- 能力評価で pass@3 > 90%
- リグレッション評価で pass^3 = 100%

2. 实现

编写能够通过已定义评估的代码。

3. 评估

# 能力評価を実行
[各能力評価を実行し、PASS/FAILを記録]

# リグレッション評価を実行
npm test -- --testPathPattern="existing"

# レポートを生成

4. 报告

評価レポート: feature-xyz
========================

能力評価:
  create-user:     PASS (pass@1)
  validate-email:  PASS (pass@2)
  hash-password:   PASS (pass@1)
  全体:            3/3 成功

リグレッション評価:
  login-flow:      PASS
  session-mgmt:    PASS
  logout-flow:     PASS
  全体:            3/3 成功

メトリクス:
  pass@1: 67% (2/3)
  pass@3: 100% (3/3)

ステータス: レビュー準備完了

集成模式

实现前

/eval define feature-name
在 .claude/evals/feature-name.md 中创建评估定义文件

实现中

/eval check feature-name
运行当前评估并报告状态

实现后

/eval report feature-name
生成完整的评估报告

保存评估

在项目中保存评估:

.claude/
  evals/
    feature-xyz.md      # 評価定義
    feature-xyz.log     # 評価実行履歴
    baseline.json       # リグレッションベースライン

最佳实践

  1. 在编码前定义评估 - 强制明确思考成功标准
  2. 频繁运行评估 - 尽早检测回归
  3. 随时间跟踪 pass@k - 监控可靠性趋势
  4. 尽可能使用代码评估器 - 确定性 > 概率性
  5. 安全相关使用人工审查 - 不要完全自动化安全检查
  6. 保持评估快速 - 慢评估不会被执行
  7. 将评估与代码一起进行版本管理 - 评估是一等成果物

示例:添加认证

## EVAL: add-authentication

### フェーズ 1: 定義(10分)
能力評価:
- [ ] ユーザーはメール/パスワードで登録できる
- [ ] ユーザーは有効な資格情報でログインできる
- [ ] 無効な資格情報は適切なエラーで拒否される
- [ ] セッションはページリロード後も持続する
- [ ] ログアウトはセッションをクリアする

リグレッション評価:
- [ ] 公開ルートは引き続きアクセス可能
- [ ] APIレスポンスは変更されていない
- [ ] データベーススキーマは互換性がある

### フェーズ 2: 実装(可変)
[コードを書く]

### フェーズ 3: 評価
Run: /eval check add-authentication

### フェーズ 4: レポート
評価レポート: add-authentication
==============================
能力: 5/5 成功(pass@3: 100%)
リグレッション: 3/3 成功(pass^3: 100%)
ステータス: 出荷可能

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC