harness-drift-from-history について
監査履歴と新しい oia-audit の結果を比較し、類似度のしきい値に基づく通知と構造化されたドリフトレポートを返す Ruflo のスキルです。定期的な監査差分の確認に使えます。
主な機能
- 01最新の監査記録を基準に選択
- 02新しい oia-audit を実行して比較
- 03基準の期間としきい値を指定
- 04構造化されたドリフトレポート
- 05ドリフト・設定エラー・縮退状態を区別
活用シーン
- 01監査結果の定期的な変化確認
- 02類似度のしきい値による CI ゲート
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill harness-drift-from-historyインストール後、Claude Code で/harness-drift-from-historyを入力して読み込まれたか確認します。
詳細
oia-auditを毎週実行した後、運用で自然に生じる疑問は「何か変化しましたか?」です。このスキルが登場する前は、次の3ステップが必要でした。
npx ruflo metaharness audit-list --format json # → pick a key by hand
npx ruflo metaharness oia-audit --format json > /tmp/curr.json
npx ruflo metaharness audit-trend \
--baseline-key <picked-key> --current /tmp/curr.json \
--alert-on-distance-below 0.95
このスキルを使えば、1つのコマンドで実行できます。
npx ruflo metaharness drift-from-history --threshold 0.95
実行内容
- audit-list.mjs を使用して
metaharness-audit名前空間のレコードを一覧表示します startedAtを基準に最新のレコードを選びます(または--baseline-since 7dを指定すると、7日より新しいレコードを除外します)- 現在のパスに対して新しい
oia-auditを実行します - audit-trend を使用して2つを比較し、
--alert-on-distance-below ${threshold}を適用します - 構造化されたドリフトレポートを返します
アーキテクチャ上の制約の継承(ADR-150)
| 制約 | drift-from-history による対応 |
|---|---|
| 削除可能 | 既存スクリプトを純粋にサブプロセスとして組み合わせ、新たな @metaharness/* のインポートはありません |
| オプション | oia-audit が degraded:true を報告した場合、このスキルは劣化状態のペイロードを返して終了コード3で終了します |
| グレースフル | 監査履歴が空の場合は、登録を促すヒントを付けて終了コード2で終了し、クラッシュすることはありません |
| CIゲート | スモークステップ17z16で、ディスパッチャーのエントリーとサブコマンド一覧を固定します |
終了コード
- 0 — 類似度がしきい値以上(またはしきい値を超えていません)
- 1 — ドリフトを検出しました:類似度がしきい値未満です(アラートが発生しました)
- 2 — 設定エラー(履歴がない、または audit-list に失敗)
- 3 — 上流の metaharness が見つかりません(劣化状態のペイロードを返しました)
例
$ npx ruflo metaharness drift-from-history --threshold 0.95
# drift-from-history
Baseline: audit-2026-06-16T22-58-47-840Z
Current: 2026-06-16T23:05:02.231Z
Structural similarity: 1 (near-identical)
Distance: 0
✓ similarity ≥ 0.95 — OK
実装
コメント
Markdown 対応