eval-harness
affaan-m
Formal evaluation framework for Claude Code sessions implementing eval-driven development (EDD) principles
bunx add-skill affaan-m/everything-claude-code -s eval-harnessLoading…
affaan-m
Formal evaluation framework for Claude Code sessions implementing eval-driven development (EDD) principles
bunx add-skill affaan-m/everything-claude-code -s eval-harnessLoading…
Claude Code 工作階段的正式評估框架,實作 eval 驅動開發(EDD)原則。
Eval 驅動開發將 evals 視為「AI 開發的單元測試」:
測試 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)
使用程式碼的確定性檢查:
# 檢查檔案是否包含預期模式
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"
使用 Claude 評估開放式輸出:
[MODEL GRADER PROMPT]
評估以下程式碼變更:
1. 它是否解決了陳述的問題?
2. 結構是否良好?
3. 邊界案例是否被處理?
4. 錯誤處理是否適當?
分數:1-5(1=差,5=優秀)
理由:[解釋]
標記為手動審查:
[HUMAN REVIEW REQUIRED]
變更:變更內容的描述
理由:為何需要人工審查
風險等級:LOW/MEDIUM/HIGH
「k 次嘗試中至少一次成功」
「所有 k 次試驗都成功」
## EVAL 定義:feature-xyz
### 能力 Evals
1. 可以建立新使用者帳戶
2. 可以驗證電子郵件格式
3. 可以安全地雜湊密碼
### 回歸 Evals
1. 現有登入仍可運作
2. 工作階段管理未變更
3. 登出流程完整
### 成功指標
- 能力 evals 的 pass@3 > 90%
- 回歸 evals 的 pass^3 = 100%
撰寫程式碼以通過定義的 evals。
# 執行能力 evals
[執行每個能力 eval,記錄 PASS/FAIL]
# 執行回歸 evals
npm test -- --testPathPattern="existing"
# 產生報告
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 報告
在專案中儲存 evals:
.claude/
evals/
feature-xyz.md # Eval 定義
feature-xyz.log # Eval 執行歷史
baseline.json # 回歸基準
## 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%)
狀態:準備發佈
Use when you need to run Flow type checking, or when seeing Flow type errors in React code.
Use when you want to validate changes before committing, or when you need to check all React contribution requirements.
Use when feature flag tests fail, flags need updating, understanding @gate pragmas, debugging channel-specific test failures, or adding new flags to React.
Use when you need to check feature flag states, compare channels, or debug why a feature behaves differently across release channels.