关于 harness-similarity
harness-similarity 是可调用的技能,使用数值、分类和 Agent 拓扑数据比较 harness。它适用于模板排序、判断应复用分支还是新建,以及发现重复工作,并可提供按维度拆分的结果。
主要功能
- 01结合余弦、分类和 Jaccard 相似度
- 02比较文件或持久化的记忆记录
- 03提供逐维度细分结果
- 04遇到格式错误输入时不抛出异常
- 05提供 CLI 命令和 MCP 工具
适用场景
- 01决定复用现有 harness 还是新建
- 02根据仓库 genome 为模板排序
- 03查找不同团队 harness 的重复工作
- 04为推荐器生成相似度置信值
MCP 相关
该技能注册了 MCP 工具 `mcp__plugin_ruflo-core_ruflo__metaharness_similarity`,用于调用 harness 相似度函数。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill harness-similarity安装后在 Claude Code 中输入/harness-similarity确认已加载。
详细介绍
将 scripts/_similarity.mjs 中的生产级相似度函数作为可调用技能提供。适用于 Agent 需要:
- 判断是基于现有 harness 分叉,还是搭建新的 harness
- 根据目标仓库的基因组对候选模板进行排序
- 对比由不同团队生成的两个 harness,以找出重复工作
- 生成 ADR-151 §3.2 的推荐器所封装的置信度数值
算法(来自 ADR-152 §Decision)
overall = 0.60·cosine + 0.25·categorical + 0.15·jaccard
- cosine — 对 9 维数值向量计算,该向量由归一化评分卡维度和基因组维度组成
- categorical — 匹配的 4 个枚举字段(
repo_type、archetype、template、recommendedMode)所占的比例 - jaccard — 对
agent_topology[]数组计算|A ∩ B| / |A ∪ B|
这套 3 组件设计至关重要:单独使用数值余弦相似度过于粗略(iter-35 峰值显示,尽管 LEGAL 和 DEVOPS 属于不相关的垂直领域,余弦相似度仍达到 0.97)。类别匹配度和 Jaccard 相似度会将综合排序拉回到正确顺序。
参考输出(iter-35 峰值测试样例)
| 配对 | overall | cosine | categorical | jaccard |
|---|---|---|---|---|
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)
- 可移除 — 纯 TypeScript 函数,不含静态
@metaharness/*导入。 - 可选 — 不在
package.json中新增依赖。 - 优雅降级 — 输入格式错误时返回
{ degraded: true, reason },退出代码为 2;绝不抛出异常。 - 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(回归测试套件——不变量在此锁定)
评论
支持 Markdown