harness-drift-from-history

v2026.09.24

One-command drift detection. Composes audit-list + oia-audit + audit-trend into a single primitive — finds the most recent audit in `metaharness-audit` namespace, runs a fresh audit against the current repo, diffs them via ADR-152 §3.1 similarity, and alerts when structural distance crosses `--threshold`. Iter 53 of ADR-150 deep integration.

GitHub
安装命令
npx skhub add ruvnet/harness-drift-from-history
Markdown
SKILL.md

The natural ops question after running oia-audit weekly is "did anything drift?" Before this skill, the answer required a three-step sequence:

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

This skill collapses it into one command:

npx ruflo metaharness drift-from-history --threshold 0.95

What it does

  1. Lists records from metaharness-audit namespace via audit-list.mjs
  2. Picks the most recent record by startedAt (or --baseline-since 7d skips anything newer than 7 days)
  3. Runs a fresh oia-audit against the current path
  4. Diffs the two via audit-trend, applying --alert-on-distance-below ${threshold}
  5. Returns the structured drift report

Architectural constraint inheritance (ADR-150)

ConstraintHow drift-from-history satisfies it
RemovablePure subprocess composition over existing scripts — no new @metaharness/* import
OptionalIf oia-audit reports degraded:true, this skill exits 3 with a degraded payload
GracefulEmpty audit history → exit 2 with hint to seed it; never crashes
CI-gateSmoke step 17z16 anchors the dispatcher entry + subcommand listing

Exit codes

  • 0 — similarity ≥ threshold (or threshold not crossed)
  • 1 — drift detected: similarity < threshold (alert fired)
  • 2 — config error (no history, audit-list failed)
  • 3 — upstream metaharness absent (degraded payload returned)

Example

$ 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

Implementation

scripts/drift-from-history.mjs

发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

2026年9月24日

分类

未分类

许可证

MIT

源路径

plugins/ruflo-metaharness/skills/harness-drift-from-history

默认分支

main

最新提交

0a96fb8

Tree SHA

f154406