harness-similarity について
harness-similarityは、数値、カテゴリ、エージェント構成のデータを使ってハーネスを比較する呼び出し可能なスキルです。テンプレートの順位付け、既存ハーネスのフォークか新規作成かの判断、重複作業の発見に使え、次元別の結果も確認できます。
主な機能
- 01コサイン、カテゴリ、Jaccard類似度の組み合わせ
- 02ファイルまたは永続化メモリレコードの比較
- 03次元別の内訳表示
- 04不正な入力でも例外を発生させない処理
- 05CLIコマンドとMCPツールの提供
活用シーン
- 01ハーネスのフォークか新規作成かの判断
- 02リポジトリのgenomeに基づくテンプレート順位付け
- 03チーム間のハーネスにおける重複作業の発見
- 04レコメンダー向け類似度信頼値の生成
MCP 対応
ハーネス類似度関数を呼び出すMCPツール `mcp__plugin_ruflo-core_ruflo__metaharness_similarity` を登録します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill harness-similarityインストール後、Claude Code で/harness-similarityを入力して読み込まれたか確認します。
詳細
scripts/_similarity.mjs の本番用類似度関数を、呼び出し可能なスキルとして公開します。エージェントが次のことを行う必要がある場合に使用します。
- 既存のハーネスをフォークするか、新しいハーネスをスキャフォールドするかを判断する
- 候補テンプレートを対象リポジトリのゲノムに照らして順位付けする
- 異なるチームが作成した2つのハーネスを比較し、重複作業を特定する
- ADR-151 §3.2 の Recommender がラップする信頼度の数値を生成する
アルゴリズム(ADR-152 §Decision より)
overall = 0.60·cosine + 0.25·categorical + 0.15·jaccard
- コサイン — スコアカードとゲノムの次元を正規化した9次元数値ベクトルを対象とします
- カテゴリ — 一致する4つの列挙フィールド(
repo_type、archetype、template、recommendedMode)の割合です - ジャカード —
agent_topology[]配列を対象とした|A ∩ B| / |A ∪ B|です
3コンポーネントの設計は重要です。数値のコサイン類似度だけでは粗すぎます(iter-35 のスパイクでは、互いに無関係な業種である LEGAL と DEVOPS が cosine=0.97 になりました)。カテゴリとジャカードによって、合成スコアを正しい順序に導きます。
参照出力(iter-35 のスパイク用フィクスチャ)
| ペア | 総合 | コサイン | カテゴリ | ジャカード |
|---|---|---|---|---|
LEGAL × LEGAL(自己) | 1.0000 | 1.0000 | 1.0000 | 1.0000 |
LEGAL × SUPPORT | 0.8296 | 0.9987 | 0.7500 | 0.2857 |
LEGAL × DEVOPS | 0.5840 | 0.9734 | 0.0000 | 0.0000 |
ADR-152 §「実証可能な最小のスパイク」の両方の不変条件を満たします。
similarity(X, X) === 1が正確に成り立つsimilarity(LEGAL, DEVOPS) < similarity(LEGAL, SUPPORT)(業種の親和性)
アーキテクチャ上の制約の継承(ADR-150)
- 削除可能 — 純粋なTS関数で、静的な
@metaharness/*インポートはゼロです。 - オプション —
package.jsonに新たな依存関係は追加しません。 - グレースフル — 不正な形式の入力には終了コード2で
{ degraded: true, reason }を出力し、例外はスローしません。 - CIゲート — スモークステップ17yで契約を固定します。モジュールのエクスポート、スパイク用フィクスチャの再現、CLIディスパッチャーエントリーの登録、MCPツールの登録を確認します。
使用方法
# File inputs
npx ruflo metaharness similarity --a a.json --b b.json
# Memory inputs (records persisted by oia-audit.mjs)
npx ruflo metaharness similarity --a-key harness-X --b-key harness-Y
# Per-dimension breakdown (used by ADR-151 §3.2 Recommender)
npx ruflo metaharness similarity --a a.json --b b.json --per-dimension
# Alert when too-dissimilar (used by ADR-151 §3.3 Drift Detection)
npx ruflo metaharness similarity --a a.json --b b.json --alert-below 0.5
実装
本番モジュール:scripts/_similarity.mjs
CLIスキル:scripts/similarity.mjs
MCPツール:mcp__plugin_ruflo-core_ruflo__metaharness_similarity(v3/@claude-flow/cli/src/mcp-tools/metaharness-tools.ts に登録)
スパイクの基準:scripts/_spike-similarity.mjs(回帰テストスイート — 不変条件をここで固定)