Everything-claude-code eval-harness
Formal evaluation framework for Claude Code sessions implementing eval-driven development (EDD) principles
install
source · Clone the upstream repo
git clone https://github.com/affaan-m/everything-claude-code
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/affaan-m/everything-claude-code "$T" && mkdir -p ~/.claude/skills && cp -r "$T/docs/zh-TW/skills/eval-harness" ~/.claude/skills/affaan-m-everything-claude-code-eval-harness-4333f5 && rm -rf "$T"
manifest:
docs/zh-TW/skills/eval-harness/SKILL.mdsource content
Eval Harness 技能
Claude Code 工作階段的正式評估框架,實作 eval 驅動開發(EDD)原則。
理念
Eval 驅動開發將 evals 視為「AI 開發的單元測試」:
- 在實作前定義預期行為
- 開發期間持續執行 evals
- 每次變更追蹤回歸
- 使用 pass@k 指標進行可靠性測量
Eval 類型
能力 Evals
測試 Claude 是否能做到以前做不到的事:
[CAPABILITY EVAL: feature-name] 任務:Claude 應完成什麼的描述 成功標準: - [ ] 標準 1 - [ ] 標準 2 - [ ] 標準 3 預期輸出:預期結果描述
回歸 Evals
確保變更不會破壞現有功能:
[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 次嘗試中至少一次成功」
- pass@1:第一次嘗試成功率
- pass@3:3 次嘗試內成功
- 典型目標:pass@3 > 90%
pass^k
「所有 k 次試驗都成功」
- 更高的可靠性標準
- pass^3:連續 3 次成功
- 用於關鍵路徑
Eval 工作流程
1. 定義(編碼前)
## EVAL 定義:feature-xyz ### 能力 Evals 1. 可以建立新使用者帳戶 2. 可以驗證電子郵件格式 3. 可以安全地雜湊密碼 ### 回歸 Evals 1. 現有登入仍可運作 2. 工作階段管理未變更 3. 登出流程完整 ### 成功指標 - 能力 evals 的 pass@3 > 90% - 回歸 evals 的 pass^3 = 100%
2. 實作
撰寫程式碼以通過定義的 evals。
3. 評估
# 執行能力 evals [執行每個能力 eval,記錄 PASS/FAIL] # 執行回歸 evals npm test -- --testPathPattern="existing" # 產生報告
4. 報告
EVAL 報告:feature-xyz ======================== 能力 Evals: create-user: PASS (pass@1) validate-email: PASS (pass@2) hash-password: PASS (pass@1) 整體: 3/3 通過 回歸 Evals: 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 定義檔案
實作期間
/eval check feature-name
執行當前 evals 並報告狀態
實作後
/eval report feature-name
產生完整 eval 報告
Eval 儲存
在專案中儲存 evals:
.claude/ evals/ feature-xyz.md # Eval 定義 feature-xyz.log # Eval 執行歷史 baseline.json # 回歸基準
最佳實務
- 編碼前定義 evals - 強制清楚思考成功標準
- 頻繁執行 evals - 及早捕捉回歸
- 隨時間追蹤 pass@k - 監控可靠性趨勢
- 可能時使用程式碼評分器 - 確定性 > 機率性
- 安全性需人工審查 - 永遠不要完全自動化安全檢查
- 保持 evals 快速 - 慢 evals 不會被執行
- 與程式碼一起版本化 evals - Evals 是一等工件
範例:新增認證
## EVAL:add-authentication ### 階段 1:定義(10 分鐘) 能力 Evals: - [ ] 使用者可以用電子郵件/密碼註冊 - [ ] 使用者可以用有效憑證登入 - [ ] 無效憑證被拒絕並顯示適當錯誤 - [ ] 工作階段在頁面重新載入後持續 - [ ] 登出清除工作階段 回歸 Evals: - [ ] 公開路由仍可存取 - [ ] API 回應未變更 - [ ] 資料庫 schema 相容 ### 階段 2:實作(視情況而定) [撰寫程式碼] ### 階段 3:評估 執行:/eval check add-authentication ### 階段 4:報告 EVAL 報告:add-authentication ============================== 能力:5/5 通過(pass@3:100%) 回歸:3/3 通過(pass^3:100%) 狀態:準備發佈