Eval Harness スキル
Claude Codeセッション向けの正式な評価フレームワークであり、評価駆動開発(EDD)の原則を実装します。
アクティベートするタイミング
- AI支援ワークフローに評価駆動開発(EDD)を導入するとき
- Claude Codeのタスク完了に対する合格/不合格基準を定義するとき
- pass@k メトリクスでエージェントの信頼性を測定するとき
- プロンプトやエージェントの変更に対する回帰テストスイートを作成するとき
- モデルバージョン間でエージェントのパフォーマンスをベンチマークするとき
哲学
評価駆動開発(EDD)は、評価を「AI開発における単体テスト」として扱います。
- 実装前に期待される動作を定義する
- 開発中に継続的に評価を実行する
- 各変更で回帰を追跡する
- 信頼性測定に pass@k メトリクスを使用する
評価タイプ
能力評価(Capability Evals)
Claudeが以前はできなかったことを実行できるかテストします。
[CAPABILITY EVAL: 機能名]
タスク: Claudeが達成すべき内容の説明
成功基準:
- [ ] 基準1
- [ ] 基準2
- [ ] 基準3
期待される出力: 期待される結果の説明
回帰評価(Regression Evals)
変更が既存機能を壊していないことを確認します。
[REGRESSION EVAL: 機能名]
ベースライン: SHA またはチェックポイント名
テスト:
- 既存テスト1: PASS/FAIL
- 既存テスト2: PASS/FAIL
- 既存テスト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. 定義(コーディング前)
## EVAL DEFINITION: 機能-xyz
### 能力評価
1. 新しいユーザーアカウントを作成できる
2. メール形式を検証できる
3. パスワードを安全にハッシュ化できる
### 回帰評価
1. 既存のログインが引き続き動作する
2. セッション管理が変更されていない
3. ログアウトフローが正常
### 成功メトリクス
- 能力評価の pass@3 > 90%
- 回帰評価の pass^3 = 100%
2. 実装
定義された評価に合格するコードを記述します。
3. 評価
# 能力評価を実行
[各能力評価を実行し、PASS/FAILを記録]
# 回帰評価を実行
npm test -- --testPathPattern="existing"
# レポートを生成
4. 報告
EVAL REPORT: 機能-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 機能名
.claude/evals/機能名.md に評価定義ファイルを作成します。
実装中
/eval check 機能名
現在の評価を実行し、ステータスを報告します。
実装後
/eval report 機能名
完全な評価レポートを生成します。
評価の保存
プロジェクトに評価を保存します。
.claude/
evals/
機能-xyz.md # 評価定義
機能-xyz.log # 評価実行履歴
baseline.json # 回帰ベースライン
ベストプラクティス
- コーディング前に評価を定義する - 成功基準について明確な思考を強制します
- 頻繁に評価を実行する - 回帰を早期に発見します
- 経時的に pass@k を追跡する - 信頼性の傾向を監視します
- 可能な限りコードグレーダーを使用する - 確率的より決定的
- セキュリティは人間によるレビュー - セキュリティチェックを完全に自動化しないでください
- 評価を高速に保つ - 遅い評価は実行されません
- 評価をコードとバージョン管理する - 評価は第一級の成果物です
例:認証の追加
## EVAL: 認証追加
### フェーズ1: 定義(10分)
能力評価:
- [ ] ユーザーがメール/パスワードで登録できる
- [ ] ユーザーが有効な認証情報でログインできる
- [ ] 無効な認証情報は適切なエラーで拒否される
- [ ] セッションがページリロード後も持続する
- [ ] ログアウトでセッションがクリアされる
回帰評価:
- [ ] 公開ルートは引き続きアクセス可能
- [ ] APIレスポンスが変更されていない
- [ ] データベーススキーマに互換性がある
### フェーズ2: 実装(時間は変動)
[コードを記述]
### フェーズ3: 評価
実行: /eval check 認証追加
### フェーズ4: 報告
EVAL REPORT: 認証追加
==============================
能力評価: 5/5 パス(pass@3: 100%)
回帰評価: 3/3 パス(pass^3: 100%)
ステータス: 出荷可能