mcpField
E
evals-implement

evals-implement

github.com/tikalkテスト・品質143180 回インストール今日更新
リポジトリ

evals-implement について

evals-implementは公開済みgoldsetから、実行可能な評価器、単体テスト、設定を生成します。PromptFooまたはDeepEvalの評価スイートを構築・更新するチーム向けです。

主な機能

  1. 01PromptFooとDeepEvalの評価器生成
  2. 02合否の二値評価
  3. 03評価器の単体テスト生成
  4. 04訓練例による自動調整
  5. 05段階別評価設定の生成

活用シーン

  1. 01受理済みgoldset基準を評価器に変換
  2. 02基準追加後の評価スイート再構築
  3. 03合否例を使った評価器の検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tikalk/adlc-team-skills --skill evals-implement

インストール後、Claude Code で/evals-implementを入力して読み込まれたか確認します。

同梱ファイルscripts/bash/setup-evals-implement.shscripts/powershell/setup-evals-implement.ps1

詳細

evals-implement

このスキルでできること

公開済みのゴールドセットを基に、EDD 原則 VIII(本番環境のループを閉じる)に従った実行可能な評価実装一式を生成します。また、自動ユニットテストにより評価器の正確性を検証します。

出力:

  1. 採点器/メトリクスの実装 - ゴールドセットの各基準について、合格/不合格を判定する Python 評価器
    • PromptFoo:evals/{system}/graders/ に JSON 出力を返す Python 採点関数
    • DeepEval:BaseMetric を継承するカスタムメトリクスクラス
  2. 評価器のユニットテスト - 生成した採点器に対してゴールドセットの合格/不合格の例を実行し、評価器自体の正確性を確かめる自動テスト(evals/{system}/tests/test_check_*.py)
  3. 評価設定 - Tier 1 と Tier 2 の評価構造を含む設定ファイル一式(config.js または config.py)
  4. 自動引き継ぎ - /evals-validate に引き継いで検証を実行します

適用される主な EDD 原則:

  • 原則 VIII:本番環境のループを閉じる - 失敗タイプのゲートによって、適切なアクションに振り分けます
  • 原則 II:合格/不合格の二値判定 - 採点器が厳密に 1.0(合格)または 0.0(不合格)を返すようにします
  • 原則 IX:コードとしてのテストデータ - 生成したコードをデータセットの例でユニットテストします

使用するタイミング

  • /evals-clarify の後:承認済みのゴールドセット基準を実行可能なコードに変換します
  • 設定を再生成するとき:新しいゴールドセット基準を追加した後、評価器一式を再構築します
  • ユニットテストを追加するとき:回帰やバグに備えて、評価器自体を強化します

使用しないタイミング

  • ゴールドセットが公開されていない場合:まず /evals-clarify を実行して goldset.json を生成します
  • 評価を実行するとき:/evals-validate を使って、アプリケーションの出力に対して評価スイートを実行します

プロセス

ユーザー入力
$ARGUMENTS
  • --system SYSTEM — アクティブな評価フレームワーク(promptfoo または deepeval)を上書きします
  • --no-tests — 採点器の自動ユニットテスト生成をスキップします(推奨しません)
実行手順
フェーズ 1:トレースから採点器への合成(自動評価エンジニアリング)
  • evals/{system}/goldset.json を読み込みます。
  • ゴールドセットの基準にある詳細なエビデンスフィールドを採点器のロジックに対応付けます(トレースから採点器への合成)。
    • pass_condition と fail_condition を採点器の中核となる評価基準として使用します。
    • 合格/不合格の例を抽出し、採点器ロジック内で生データの基準点および少数例学習の分類基準点として使用します。
    • Root Cause Analysis と axial_coding のメモを、コンテキストを示すプロンプトの指針または正規表現パターンとして挿入し、具体的な失敗の兆候を検出します。
  • PromptFoo の場合:ゴールドセットの入力からコンパイルした、用途に特化した動的な LLM 判定テンプレートまたは正規表現チェックを含む Python 採点関数(evals/{system}/graders/check_*.py)を生成します。
  • DeepEval の場合:ゴールドセットの入力からコンパイルした、BaseMetric を継承するカスタムメトリクスクラスを生成します。
  • すべての採点器は合格/不合格の二値判定基準に厳密に準拠し、1.0 または 0.0 のみを返します(リッカート尺度が混入することはありません)。
フェーズ 2:ユニットテストの生成
  • 各採点器に対応するユニットテスト(evals/{system}/tests/test_check_*.py)を生成します。
  • ユニットテストでは、採点器がゴールドセットの学習用の合格例と不合格例を正しく識別することを検証します。
フェーズ 2b:クローズドループによる評価器の自己調整
  • 生成されたユニットテスト(pytest evals/{system}/tests/)を実行し、評価器の精度を検証します。
  • 評価器のキャリブレーションループ:
    1. テスト結果を調べ、トレーニングケースで誤分類(偽陽性/偽陰性)がないか検出します。
    2. テストが失敗した場合、失敗理由を解析し、評価器の内部プロンプトの評価基準、正規表現のスタブ、またはスコアしきい値を自動調整するフィードバック編集ステップを実行します。
    3. 精度を確認するため、pytest を再実行します。
    4. 最大 3 回の反復(ハードサーキットブレーカーの上限)まで繰り返します。
  • ホールドアウトのロック:ホールドアウト検証セット(holdout.json)を完全に分離した状態に保ち、過学習を防ぐため、自己調整ループで読み込んだり公開したりしないようにします。
  • 失敗のエスカレーション:3 回の反復以内に評価器のトレーニング精度が 100% に収束しない場合、ループを停止して失敗したテストケースの詳細を示し、エラーを発生させます。黙って成功扱いにはしません。
フェーズ 3:設定の生成
  • 統合フレームワーク設定ファイル(config.js または config.py)を生成します。
  • Tier 1(高速チェック、30 秒未満、決定論的)と Tier 2(意味チェック、5 分未満、LLM による判定)のパイプラインを個別に設定します。
フェーズ 4:自動引き継ぎ

/evals-validate をトリガーして検証を実行します。

検証

  • evals/{system}/graders/ に、ゴールドセットの合格/不合格例と根本原因分析から動的にコンパイルされた、各基準の Python 評価器スクリプトが含まれている
  • evals/{system}/tests/ に、対応するユニットテストファイルが含まれている
  • フレームワーク設定(config.js または config.py)が正常に生成されている
  • 評価器のキャリブレーション自己調整ループが実行され、3 回の反復上限以内にトレーニング精度 100% に収束している(または収束しなかったことを明示するエラーが発生している)
  • ホールドアウトデータセットの保護が確認されている(検証用の holdout.json は調整中、完全に分離され、変更されていない)
  • すべての評価器ユニットテストがローカルで成功する(pytest evals/{system}/tests/)
  • 引き継ぎサマリーに、生成された評価器、自己調整の反復回数、テスト結果が記載されている

コメント