verify について
verify は、固定した基準で複数の独立した試行を比較するエージェントスキルです。生成、実証的な確認、ペア比較による順位付け、選択、必要に応じた修正を行い、単一の判定スコアではなく観測結果を重視します。
主な機能
- 01独立した候補試行の生成
- 02タスク基準と根拠の設定
- 03実証結果の確認
- 04ペア比較による順位付け
- 05候補の選択または修正
活用シーン
- 01タスクの複数解法の比較
- 02ツールの観測結果に基づく試行評価
- 03完了に向けた進捗の追跡
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ prathamdby/ skills --skill verifyインストール後、Claude Code で/verifyを入力して読み込まれたか確認します。
同梱ファイルREFERENCE.md
詳細
Verify
N 個の独立した軌跡をサンプリングし、順位付けします(Kwok et al., arXiv:2607.05391)。 1 つのスコアトークンを LM ジャッジとして使う方法は、本手法ではありません。
フラグ
| フラグ | デフォルト | 効果 |
|---|---|---|
--candidates <n> | 3 | プールサイズ N。タスクから推定しません |
--evals <k> | 2 | 繰り返し回数 K。奇数回ごとに A/B を入れ替えます |
--pivots <k> | 2 | N>3 の場合の PPT ピボット。[1, N] に制限します |
--max-rounds <n> | 0 | 選択後に追加する生成または修正サイクル数 |
--criteria <path> | auto | 評価基準ファイル。指定がなければ 2〜4 個をインラインで記述します |
--track | off | 進捗確認のみ。生成と選択をスキップします |
リストが指定された場合は、--candidates より優先されます。N は予算であり、計算された件数ではありません。
1. タスクと評価基準を固定する
タスクを必須とします。独立した評価基準を 2〜4 個と、説明ではなく観測されたツール出力を信頼する正解情報のメモを記述します。REFERENCE.md のレイアウトに従ってファイルを作成します。
記録項目:task | criteria | generate | path | n/k/pivots/rounds | current | terminal。
タスクと評価基準が固定されたとき、または BLOCKED になったときに完了です。
2. 生成する
--track の場合はスキップします。ユーザーが試行を提示した場合は、変更せずに使用します。
それ以外の場合は、--candidates 件のワーカーに 1 回の並列ウェーブで割り当てます。各ブリーフには、固定したタスクと評価基準に加えて、「完全な試行を 1 件。兄弟候補なし。順位付けなし。」を含めます。
書き込み範囲は、REFERENCE.md の Isolation に従ったワークツリーまたはコピーとし、このツリー上のブランチは使用しません。同一ツリーへの並列書き込みは BLOCKED です。親は何も実装しません。起動できない場合は、N 件の試行を順番に行います(generate=serial)。
N 個のトレースが固定されたとき、または BLOCKED になったときに完了です。
3. 検証する
評価基準が実証的な場合は、候補を実行します。全件合格/全件不合格/結果が分かれる、のいずれかに分類します。スキップ分類ではスコアリングをスキップします。全件不合格の場合、この段階では勝者を決められません。--max-rounds が残っていれば 1 回分を消費してステップ 2 に戻り、それ以外は ALL_FAIL です。
結果が分かれた場合は、比較ごとに評価基準を 1 つ適用します。N≤3 の場合は、すべての有向ペアを比較します。N>3 の場合は、--pivots を [1, N] に制限してから、REFERENCE.md の PPT 手順を実行します。
C と K にわたって平均を取ります。ソフト勝率は p = 1/(1+exp(-(R_a-R_b))) です。w_i と c_i を累積します。
スコアリング方法(最初に該当したものを使用)。REFERENCE.md を参照して選択します。
<score_A>/<score_B>の logprobs:A–T 上のR = E[φ(v)](論文)。- logprobs がなく、ユーザーが logprob ベリファイアを指定した場合:2 段階方式(論文 B.6)。
- このハーネスのみ:A–T を出力し、マッピングして、K と C にわたって平均します。Eq. 3.1 ではありません。 それでもペアワイズで分解され、入れ替えを行います。決して 1〜10 のスコアにはしません。
--track の場合は、接尾辞を「すでに完了しているか?」に照らして採点します。兄弟候補はありません。
採点対象となる各候補に w_i/c_i があるとき、またはスキップ分類が適用されたときに完了です。
4. 選択する
--track または全件不合格の場合、勝者はいません。全件合格の場合は、合格者のうちインデックスが最小のものを選びます。結果が分かれた場合は、argmax w_i/c_i(同点ならインデックス順)で選びます。
その選択が記録されたときに完了です。
5. 修正するか、停止する
以下の場合は停止します:全件合格、観測されたチェックで --track のスコアが 0.8 以上、--max-rounds を使い切った(デフォルトでは修正なし)、スコアが改善しない。それ以外の場合は、結果が分かれた勝者のみを最も弱い評価基準に沿って修正し、ステップ 3 に戻ります。
停止ルールが適用されたときに完了です。
6. 報告する
criteria | generate | path | classify | ranking w_i/c_i | winner | rounds | stop | terminal。SUCCESS、ALL_PASS、ALL_FAIL、NO_IMPROVEMENT、BLOCKED。
正当化
| 言い訳 | 実態 |
|---|---|
| 「自分でやればいい」 | 親は候補を 1 件も実装しません。N 件に振り分けます。 |
| 「N は難易度に合わせるべき」 | N は --candidates です。勝手に設定してはいけません。 |
| 「1〜10 で採点する」 | 離散ジャッジです。観測された実行結果を信頼します。 |
危険信号
親が候補を作成した、同一ツリーまたはブランチを使った並列ワーカー、N を推定した、1〜10 のスコアを付けた、結果が分かれた場合の w_i/c_i がない、A/B の入れ替えがない。