
ruflo harness-genome构建七段式仓库就绪报告与风险告警 CI 门禁【免费下载链接】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/rufloruflo 的harness-genome技能将上游metaharnessCLI 的genome子命令封装为一个纯只读的仓库体检工具一次调用即可输出覆盖仓库类型、Agent 拓扑建议、风险分、MCP 攻击面、测试置信度与发布就绪度的七段式报告。读完本文你将掌握该技能完整的参数用法与退出码语义、Phase-0 基线数据的解读方法、三类典型落地场景预铸造评审、漂移检测、CI 门禁以及其底层子进程桥的版本固定、硬超时与优雅降级实现原理。技能定位scorecard 与 genome 的分工harness-genome与 harness-score 技能 是姊妹技能二者回答同一问题——“这个仓库是否准备好被 harness 化”——但输出形态不同harness-score输出5 维数值记分卡harnessFit / compileConfidence / taskCoverage / toolSafety / memoryUsefulness外加 estCostPerRunUsd 与 scaffoldReadyharness-genome输出7 段分类/数值混合报告覆盖 repo_type、agent_topology 建议、risk_score0–1、mcp_surface 攻击面、test_confidence0–1、publish_readiness0–1。用原文档的一句话概括“Where score is a 5-dimension numeric scorecard, genome is a 7-section categorical/numeric report.”两者配对使用才能得到完整的就绪度视图数值视角 分类视角。技能定义见 harness-genome SKILL.md整个插件的架构与技能清单见 ruflo-metaharness README。输出契约七段字段与判定通道genome 的核心价值在于输出是机器可校验的固定形状。从源码看genome.mjs 中的isGenomePayload()函数就是这份契约的运行时守卫它逐字段断言类型字段类型含义repo_typestring仓库类型分类如node_mcp_ciagent_topologystring[]推荐的 Agent 拓扑角色列表risk_scorenumber风险分0–1越低越好mcp_surfacestringMCP 攻击面分类如remotetest_confidencenumber测试置信度0–1publish_readinessnumber发布就绪度0–1在此基础上上游 CLI 还会用一个判定通道verdict channel编码整体结论退出码 0 表示ready1 表示needs-work2 表示blocked。genome.mjs 的main()做了一个关键语义转换——needs-work和blocked仍然是合法的报告因此只要退出码属于 {0, 1, 2} 且载荷形状完整wrapper 就将其归一化为自己的退出码 0同时把上游结论显式保留在载荷的verdict与verdictExitCode字段中映射逻辑见 verdictFromExitCode。只有“既非三个合法退出码、或 JSON 形状不合法”的报告才被视为失败以退出码 2 终止。这样 CLI 调用方和 MCP 调用方都可以安全地消费完整报告而不必把“仓库需要整改”误读为“脚本执行失败”。使用方法与参数技能参数提示argument-hint为[--path .] [--alert-on-risk-above 0.5] [--format table|json]。参数解析实现见 genome.mjs 的 ARGS 构造参数默认值说明--path dir.被评估的仓库路径--alert-on-risk-above N无当risk_score N时以退出码 1 告警N 必须是有限数字否则退出码 2--format table\|jsonjson输出形态结构化 JSON默认或 Markdown 表格直接在脚本层面调用不经过 Agent 技能的方式# 默认评估当前目录输出 JSON node plugins/ruflo-metaharness/scripts/genome.mjs # CI 门禁用法风险分超过 0.5 即失败 node plugins/ruflo-metaharness/scripts/genome.mjs --path dir --alert-on-risk-above 0.5 --format jsonwrapper 的最终退出码语义见 genome.mjs 头部注释退出码含义0有效报告包含needs-work / blocked 结论1--alert-on-risk-above阈值被击穿告警真正触发时2配置错误或 genome 调用失败无有效报告启用告警时载荷中会额外附带一个alert对象含threshold、triggered与人类可读的reason如risk_score 0.27 ≤ 0.5 — OK便于日志审计。--format非 json 时输出渲染 会生成一张七段 Markdown 表格附 verdict、耗时durationMs与告警结论。算法流程五步流水线原文档描述的算法为子进程调用metaharness genome path --json60 秒硬超时解析{ repo_type, agent_topology[], risk_score, mcp_surface, test_confidence, publish_readiness }形状保留上游的 verdict 为verdict与verdictExitCode上游 1 needs-work2 blocked均为合法报告若提供--alert-on-risk-above N当risk_score N时退出 1输出 JSON默认或 Markdown。从源码实现看第 1 步的“子进程调用”有一个值得注意的演进早期文档形态是npx metaharness genome path --json而当前实现已经不再走 npx。_harness.mjs 的注释明确说明这是取代了“iter-27 的 npx-with-latest-dist-tag 路径”解决两个问题一是安全——latest意味着上游一次被投毒的发布会在下次技能调用时直接在用户机器上执行任意代码二是性能——latest每次都强制一次 npm registry 元数据检查。当前解析策略resolveMetaharnessBins为两级本地已装副本从插件目录和$CWD向上遍历node_modules只要满足固定版本范围~0.3.0的 tilde 区间patch 级更新才接受就直接使用零成本一次性版本化缓存首次缺失时执行一次npm install --prefix ~/.ruflo/metaharness-cache-0.3.0之后每次调用都是本地node 绝对路径直接 spawn零网络往返。缓存目录名带 pin 版本号升级 pin 会自动使旧缓存失效。二进制入口不硬编码而是从已解析包内的package.jsonbin map 动态读取readBinMap上游在 pin 区间内调整布局不会悄悄打断调用。60 秒硬超时常量定义在 DEFAULT_TIMEOUT_MS。Phase-0 基线ruflo 对自身的首次体检原文档记录了 2026-06-16 对 ruflo 仓库自身的实测基线这也是 ADR-150 Phase-0 测量尖峰measurement spike的产物{ repo_type: node_mcp_ci, agent_topology: [maintainer, tester, security, release], risk_score: 0.27, mcp_surface: remote, test_confidence: 0.8, publish_readiness: 0.9 }解读原文档给出的语义risk_score: 0.27属于低风险好publish_readiness: 0.9处于高位mcp_surface: remote反映了 ruflo 的 MCP 服务器是托管hosted而非随包捆绑的。repo_type: node_mcp_ci则把它归类为一个带 CI 的 Node MCP 仓库agent_topology给出维持者、测试者、安全、发布四个推荐 Agent 角色。这份基线在 ADR-150 的实现笔记 与 插件 README 的 Phase-0 小节 中均有对应记录可作为后续快照 diff 的对照锚点。三个落地场景原文档“When to use”一节给出三类用法均可直接复制执行预铸造评审Pre-mint review在“从这个仓库脚手架一个自定义 harness 之前该不该做”的问题上genome 给出分类式categorical回答而不是一个需要人为解读阈值的裸分数。漂移检测Drift detection随时间累积 genome 快照用 cost-diff 风格的工具做 diff观察agent_topology推荐何时偏离了有意为之的架构选择。CI 门禁--alert-on-risk-above 0.5让仓库风险画像越过阈值时构建直接失败。由于告警语义已被封装为退出码 1接入 CI 无需额外解析 JSON。优雅降级ADR-150 约束的体现ruflo-metaharness 插件 整体遵循 ADR-150 的承重架构约束——“移除所有 MetaHarness 包后 ruflo 依然可用”。其中规则 #3优雅降级在 genome 上的体现是当metaharness包无法解析或安装离线、registry 不可达等时runMetaharness()返回degraded: true, reason: metaharness-not-available的降级结果genome.mjs 检测到后调用emitDegradedJsonAndExit()——它由 _invoke.mjs 的 makeDegradedEmitter 工厂构建——输出如下结构化载荷后以退出码 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. }注意降级载荷中的hint给出了正确的固定版本安装指引~0.3.0tilde 区间这与 _harness.mjs 中 METAHARNESS_PIN_VERSION 同源。降级原因的区分也有讲究_invoke.mjs 的 classifyDegraded 把“被超时杀死exitCode 为 null”归为*-timeout把“包不可用”stderr 命中MODULE_NOT_FOUND/ENOTFOUND/getaddrinfo/npm ERR等特征正则归为*-not-available两种运维信号互不混淆。这条契约不是口头承诺而是有测试锁定的test-graceful-degradation.mjs 把 npm registry 指向一个不可解析的域名再逐个调用 score /genome/ mcp-scan / threat-model / oia-audit 等技能断言每个都必须退出 0 且输出中出现degraded: true。该脚本同时暴露了两个测试接缝环境变量——RUFLO_METAHARNESS_CACHE_BASE把缓存根目录指向空临时目录与RUFLO_METAHARNESS_SKIP_LOCAL1禁用本地 node_modules 解析——确保在已有缓存的开发机上演练依然有效不会变成空转测试。与相邻技能的配合原文档“Pairs with”一节列出的三个相邻技能与 genome 构成互补的就绪度工具链harness-score—— 数值型就绪度记分卡genome 的分类视角之补harness-mcp-scan—— 静态 MCP 安全发现纯只读、不做 dispatch关注.mcp/servers.json等配置面的具体风险点harness-threat-model—— 企业评审级威胁模型clean/low/medium/high findings。三者命令形态与 genome 一致--path/--format table|json 各自的告警标志完整命令参考见 ruflo-metaharness 命令文档。小结harness-genome的设计可以归纳为四条工程决策固定形状的七段输出契约isGenomePayload类型守卫、把上游非零退出码当作数据而非错误verdict 通道归一化、把风险告警下沉为退出码CI 即插即用、以及版本固定 版本化缓存 优雅降级共同构成的可选依赖边界ADR-150。它既是 ruflo 对自身仓库做持续体检的基线工具0.27 风险分 / 0.9 发布就绪度的 Phase-0 快照也是评估任意候选仓库“是否值得 harness 化”的第一道闸门。【免费下载链接】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),仅供参考