harness-bench について
harness-benchは、ハーネスの進化を評価する開発者向けに、固定タスクスイートを作成・検証するスキルです。コミットやフォーク間の比較を可能にし、依存ツールがない場合も縮退動作します。
主な機能
- 01既存テストからスイートを作成
- 02タスク形式の検証
- 03CIでスイートを確認
- 04依存ツール不在時の縮退動作
活用シーン
- 01不安定なテスト向けの固定評価セット作成
- 02関連する各PRでスイートを検証
- 03分野別フォーク向けに評価を調整
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill harness-benchインストール後、Claude Code で/harness-benchを入力して読み込まれたか確認します。
詳細
metaharness-darwin bench <create|verify> を提供します。これは harness-evolve --bench を支える動詞です。固定コーパス(npm test とは独立)に基づいて進化をスコアリングし、コミット間や同じハーネスをフォークしたもの同士でチャンピオンの適合度を比較したい場合に使用します。
使用する場面
npm testが不安定、遅い、または規模が小さいリポジトリで、新しい進化パイプラインを設定する場合。決定論的なベンチスイートを一度作成し、その後繰り返し進化に使用します。- CI:スイートに変更があったすべての PR で、チェックイン済みのスイートに対して
bench verifyを実行します(低コスト:約5秒)。 - ハーネスを新しいドメインにフォークする場合:スイートをコピーして編集し、親ハーネスとの比較可能性を維持したまま評価対象を変更します。
アルゴリズム
--op create
--repoのパスを解決します。存在しない場合は拒否します。metaharness-darwin bench create <repo> [--out <suite.json>]をシェルで実行します。- デフォルトの出力パス:
<repo>/.metaharness/bench/suite.json(上流で選択されます)。 - スイートの形式(上流仕様):既存のテストケースから導出された
{ input, expectedOutput, weight }タスクの配列です。
--op verify
--suiteのパスを解決します。存在しない場合は拒否します。metaharness-darwin bench verify <suite.json>をシェルで実行します。- いずれかのタスクの形式が不正な場合、終了コード 1 を返します(上流のシグナル)。
出力形式
{
"success": true,
"data": {
"op": "verify",
"taskCount": 42,
"wellFormed": true,
"durationMs": 870
}
}
終了コード
| コード | 意味 |
|---|---|
| 0 | OK(または劣化状態 — Darwin が存在しない場合) |
| 1 | --op verify でスイートの形式が不正 |
| 2 | 設定エラーまたは上流の呼び出し失敗 |
グレースフルデグラデーション
@metaharness/darwin が存在しない場合、標準の {degraded: true, reason: 'metaharness-darwin-not-available'} ペイロードを出力し、終了コード 0 を返します。
コメント
Markdown 対応