ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ruflo harness-score:用 5 维就绪度评分卡量化仓库的 MetaHarness 采纳准备度

ruflo harness-score:用 5 维就绪度评分卡量化仓库的 MetaHarness 采纳准备度 ruflo harness-score用 5 维就绪度评分卡量化仓库的 MetaHarness 采纳准备度【免费下载链接】ruflo The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated项目地址: https://gitcode.com/GitHub_Trending/cl/ruflo本指南讲解 ruflo 插件体系中的harness-score技能——它把上游metaharness scoreCLI 封装成一个 5 维就绪度评分卡harnessFit / compileConfidence / taskCoverage / toolSafety / memoryUsefulness用于在任何仓库执行npx ruflo init或harness-mint脚手架生成之前先量化评估该仓库是否适合采纳 Agent Harness。读完本文你将掌握该技能的命令行参数、JSON/表格输出语义、CI 回归闸门接入方法以及其底层子进程调用 优雅降级 版本固定的源码级实现原理。技能定位一次纯读操作的就绪度体检harness-score是 ruflo-metaharness 插件 暴露的 11 个技能之一其完整定义位于 SKILL.md。它的 frontmatter 明确了两件事能力边界allowed-tools: Bash整个技能只通过一个子进程调用完成不引入任何库导入使用时机当 Claude Code 需要在向用户推荐npx ruflo init或harness-mint之前判断一个仓库是否已具备 Harness 采纳条件时调用。它是一次pure-read纯读取操作只对目标目录执行评分不产生任何副作用不写文件、不改配置。这一点与 ruflo-metaharness 命令文档 中对整套 MetaHarness 集成subprocess invocation子进程调用的定位完全一致。调用算法三层链路的子进程调用技能文档给出了核心算法共 4 步通过npx metaharness score path --json发起单一子进程调用60 秒硬超时解析 JSON 结构{ harnessFit, compileConfidence, taskCoverage, toolSafety, memoryUsefulness, estCostPerRunUsd, recommendedMode, archetype, template, scaffoldReady, hardConstraints }若指定--alert-on-fit-below N当harnessFit N时以退出码 1 失败默认输出 JSON也可输出 Markdown 表格。从源码看score.mjs 是这套算法的实际实现而它本身是 _harness.mjs 与 _invoke.mjs 两层共享基础设施之上的薄封装。完整调用链如下SKILL.md → scripts/score.mjs → scripts/_harness.mjs → scripts/_invoke.mjs → spawnSync(node, [解析出的 bin 路径, score, path, --json]) ↘ 解析失败 → emitDegradedJsonAndExit() → 输出 degraded JSON 并 exit 0需要特别指出的是虽然技能文档写作时描述为npx metaharness但当前仓库的实现已经演进为node 直启——_harness.mjs 中实际执行的是spawnSync(node, [resolved.bins.metaharness, ...args])即先解析出metaharness包内的 bin 绝对路径再用node 绝对路径直接启动绕开了 npx 的符号链接 shim。--json参数由injectJson()自动追加除非调用方显式传参或关闭保证解析侧拿到的永远是结构化输出。60 秒硬超时与超时语义_invoke.mjs 中的classifyDegraded()把两种失败区分成两种不同的可观测信号exitCode null子进程被超时杀死→metaharness-timeoutstderr 命中DEGRADED_RX见下→metaharness-not-available。DEGRADED_RX是一个超集正则涵盖could not determine executable、404、not installed、MODULE_NOT_FOUND、ENOTFOUND、getaddrinfo、ECONNREFUSED、ETIMEDOUT、npm ERR。其中npm ERR的纳入意味着npm 层面的安装失败一律被归类为上游不可用而不是 ruflo 自身的 bug。命令行参数与退出码语义score.mjs 的参数解析逻辑支持三个参数参数默认值说明--path dir.待评分的目标目录--alert-on-fit-below N未启用当harnessFit N时触发告警并最终以退出码 1 失败非数字值会以退出码 2 拒绝执行--format json\|tablejson输出格式三个退出码的约定被写进了脚本头注释可以直接作为集成契约退出码含义0评分成功或 MetaHarness 不可用时的优雅降级1--alert-on-fit-below阈值被击穿harnessFit N2配置错误如阈值非数字或评分失败上游异常退出其中降级也算 0是刻意为之——这正是 ADR-150 架构约束 规则 #3 的落地MetaHarness 缺席时 ruflo 必须继续正常工作。输出解析JSON 字段与 Markdown 表格JSON 输出默认实际输出会在上游字段基础上追加durationMs本次子进程耗时以及可选的alert对象{ harnessFit: 82, compileConfidence: 100, taskCoverage: 79, toolSafety: 100, memoryUsefulness: 40, estCostPerRunUsd: 0.048, recommendedMode: CLI MCP, archetype: typescript-sdk-harness, template: vertical:coding, scaffoldReady: true, durationMs: 1234, alert: { threshold: 70, triggered: false, reason: harnessFit 82 ≥ 70 — OK } }各字段语义字段含义harnessFit0-100 综合就绪度是 CI 闸门判定的主指标compileConfidence编译置信度0-100反映仓库可被 Harness 可靠编译/引导的程度taskCoverage任务覆盖率0-100衡量典型开发任务能否被 Harness 覆盖toolSafety工具安全分0-100memoryUsefulness记忆层有用性0-100在 ruflo 自评中是最弱维度estCostPerRunUsd单次运行预估美元成本recommendedMode推荐的运行模式如CLI MCParchetype仓库类型识别如typescript-sdk-harnesstemplate推荐脚手架模板如vertical:codingscaffoldReady是否可直接脚手架化布尔hardConstraints上游携带的硬约束信息Markdown 表格输出指定--format table时score.mjs 会输出与技能文档同构的表格并额外包含耗时行与告警行触发时为⚠ ALERT: ...未触发时为✓ ...。这也解释了 smoke.sh 中JSON 输出必须可被JSON.parse且不得混入 Markdown 头这一回归闸门iter-88存在的意义。Phase-0 基线ruflo 用自己当试验田技能文档与插件 README 都记录了 ruflo 仓库自身的 Phase-0 评分测量于 2026-06-16这是理解各维度量纲的最佳样本维度值harnessFit82/100compileConfidence100taskCoverage79toolSafety100memoryUsefulness40estCostPerRunUsd$0.048recommendedModeCLI MCParchetypetypescript-sdk-harnesstemplatevertical:codingscaffoldReadytrue关键解读ruflo 通过了自身的就绪度检查但memoryUsefulness: 40是全部维度中最弱的一项。技能文档明确建议把它当作 AgentDB 记忆层后续演进的前瞻指标leading indicator来追踪。配合 harness-genome 的 7 段式分类报告repo_type / agent_topology / risk_score / mcp_surface / test_confidence / publish_readiness可以得到数值 分类的完整就绪度画像——数值维度score与分类维度genome互为补充。CI 集成把评分变成回归闸门技能文档给出了最小 CI 接入命令node plugins/ruflo-metaharness/scripts/score.mjs --alert-on-fit-below 70 --format json该命令的语义链评分 → 若harnessFit 70则退出码 1 → CI 构建失败。这把仓库就绪度变成了可量化的回归防线——任何导致就绪度跌破阈值的改动都会被拦截。技能文档还提示它与harness-genome配对可获得完整的 7 段式视图smoke.sh 的 step 4 对 score.mjs 的守卫必须有--alert-on-fit-below解析、必须有harnessFit字段、必须 fail-closed 走process.exit(1)、配置错误走process.exit(2)保证了这一契约不会在重构中悄悄丢失。优雅降级ADR-150 约束规则 #3 的落地当metaharness未安装且npx无法拉取离线、无网络、registry 不可达时脚本不会报错而是输出以下 JSON 并以退出码 0 结束{ degraded: true, reason: metaharness-not-available, hint: Install with npm i -D metaharness~0.3.0 (pinned range — this plugin never fetches latest) or verify network access for the one-time cache install. }降级路径是默认行为而非特例这一设计在插件 README 中被反复强调。它的测试保障来自 test-graceful-degradation.mjs该测试把npm_config_registry指向一个不可解析的主机、把缓存根目录指向空临时目录RUFLO_METAHARNESS_CACHE_BASE并禁用本地解析RUFLO_METAHARNESS_SKIP_LOCAL1随后逐一断言 score 等 8 个技能必须exit 0 且输出中包含degraded: true。注意这两个环境变量正是 _invoke.mjs 暴露的测试缝test seam——它们保证即使开发者机器上已有热缓存演练依然能真正走到安装失败路径而不是空转。降级输出的生成逻辑集中在makeDegradedEmitter()_invoke.mjs它统一拼装{ degraded, reason, hint, generatedAt }并以process.exit(0)退出——全插件家族共用这一出口保证行为一致。版本固定与供应链安全为什么永远不用 latest_harness.mjs 顶部明确写着const METAHARNESS_PKG metaharness; const METAHARNESS_PIN_VERSION ~0.3.0;配合注释NEVER latest这是对早期npx -y metaharnesslatest路径的两个问题的修复安全高危latest意味着上游一次被攻破的发布会在下一次技能调用时于用户机器上执行任意代码现在固定为波浪号范围仅自动吸收补丁级更新并只在锁定步调内与各 package.json 的optionalDependencies同步提升性能latest迫使每次调用都做一次 npm registry 元数据检查现在解析顺序是 (a) 本地已安装且满足 pin 的副本向上遍历 node_modules零成本→ (b) 一次性版本化缓存安装npm install --prefix ~/.ruflo/metaharness-cache-0.3.0之后每次调用都是纯本地node 绝对路径spawn零网络。两个 binmetaharness与harness的入口路径从包内package.json的bin映射读取而非硬编码因此上游在 pin 范围内的布局变化不会静默破坏调用。smoke.sh 的 step 17r 专门守卫这一点全文件不得出现metaharnesslatest、必须存在METAHARNESS_PIN_VERSION ~、必须spawnSync(node, ...)直启。配套技能与更广的 MetaHarness 面harness-score是就绪度评估的第一步与之配套的评估类技能还包括harness-genome7 段式分类报告--alert-on-risk-above 0.5可在风险分突破阈值时失败构建harness-mcp-scan对.mcp/servers.json与.harness/claims.json的静态安全扫描纯读、不派发harness-threat-model企业评审级威胁建模harness-mint通过就绪度检查后的自定义 Harness 脚手架生成。从评估到生成的完整链路是harness-scoreharness-genome先量化/分类评估仓库通过后再用harness-mint生成定制 Harness。所有技能共用 _harness.mjs 这一个经审计的桥接层从而保证安全、超时与降级语义全家族一致。源码导航技能定义plugins/ruflo-metaharness/skills/harness-score/SKILL.md脚本实现plugins/ruflo-metaharness/scripts/score.mjs共享调用桥接plugins/ruflo-metaharness/scripts/_harness.mjs共享子进程/降级基础设施plugins/ruflo-metaharness/scripts/_invoke.mjs降级契约测试plugins/ruflo-metaharness/scripts/test-graceful-degradation.mjs结构性 smoke 测试plugins/ruflo-metaharness/scripts/smoke.sh插件总览架构图与 ADR-150 四条规则plugins/ruflo-metaharness/README.md架构决策记录v3/docs/adr/ADR-150-metaharness-integration-surfaces.md一句话总结harness-score把这个仓库准备好了吗从一个主观判断变成了一组可量化的 5 维分数并在 MetaHarness 缺席时优雅降级而非中断——这正是 ADR-150可移除增强、绝非必需运行时依赖架构约束在 ruflo 中的一次完整落地。【免费下载链接】ruflo The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated项目地址: https://gitcode.com/GitHub_Trending/cl/ruflo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表