OmX CLI Discoverability Pilot:沙箱规则、评估合约与可发现性测试切片的完整解析

发布时间:2026/9/10 1:46:08

OmX CLI Discoverability Pilot:沙箱规则、评估合约与可发现性测试切片的完整解析 OmX CLI Discoverability Pilot沙箱规则、评估合约与可发现性测试切片的完整解析【免费下载链接】oh-my-codexOmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more.项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-codex导读本文基于 oh-my-codex 仓库中 cli-discoverability-pilot 任务包及其 sandbox 合约完整解读该项目围绕CLI 命令可发现性discoverability设计的任务边界、沙箱操作规则与自动化评估策略。文章不仅逐条继承沙箱文档中的评估字段语义还深入src/scripts/eval/eval-cli-discoverability.ts评估器与四组 CLI 测试切片源码说明顶层 help、嵌套帮助路由、sparkshell 与 session-search 四条可发现性验证线是如何被构建、打分并纳入omx autoresearch循环的。读完本文你将掌握如何读懂一个 mission 包的沙箱合约、如何定位并运行其评估器、以及 help 文本层面的可发现性改动应满足哪些回归约束。一、任务背景为什么可发现性值得一个专门的 Pilotoh-my-codexomx是一个面向 Codex CLI 的多 Agent 编排工具omx顶层命令面在 src/cli/index.ts 中承载了几十个子命令exec、mission、setup、team、ralph、ralplan、sparkshell、session、hud、sidecar、wiki等。当命令面膨胀到这种规模时从 help 文本中仅凭直觉找到正确的命令就成了一种真实的操作瓶颈。mission.md 把这一目标明确为改进整个 OMX CLI 的命令可发现性重点覆盖四条线顶层 helpomx --help主帮助文本嵌套帮助路由omx subcommand --help是否正确落到命令自身的本地帮助sparkshell 可发现性顶层 help 与子命令 help 中是否能发现omx sparkshell及其两种用法session-search 可发现性omx session搜索本地会话历史的帮助面。任务的成败判据是找到最小的改动集合让操作者仅凭 help 文本就能发现正确的 CLI 入口。mission 文档同时给出成功提示——优先做 help 文本或路由清晰度的小改动、避免把范围扩大到无关命令行为、除非可发现性改进必须对齐否则保留既有 docs/contracts。二、沙箱规则把改动关进最小可评审 diff的笼子里sandbox.md 前半部分是沙箱操作规则它界定了 Agent 在本次任务中的活动边界改动只允许聚焦 CLI 可发现性禁止顺手改动其他行为偏好最小的可评审 diffsmallest reviewable diff不得新增依赖保留命令语义——本任务是关于可发现性不是功能重设计评估器只奖励通过目标构建 CLI 可发现性测试切片的改动。这五条规则与 mission 文档的聚焦点一一对应修改面被限定在 README.md、src/cli/index.ts顶层 HELP 常量与嵌套路由表以及四份测试文件所在的目录内。其中保留命令语义是一条硬约束omx sparkshell command [args...]的调用方式、omx session search query的参数形态都不能因为 help 文案优化而被改变否则即便测试通过也违背了任务初衷。三、评估策略pass / score / keep_policy 的字段语义sandbox.md 的 frontmatter 定义了评估器入口与保留策略evaluator: command: node scripts/eval-cli-discoverability.js format: json keep_policy: score_improvement三个字段的含义分别为command评估器可执行命令。node scripts/eval-cli-discoverability.js直接运行编译产物对应的评估脚本实际源码位于 src/scripts/eval/eval-cli-discoverability.ts输出 JSON 供上层autoresearch循环解析format: json评估器必须以 JSON 输出结果keep_policy: score_improvement候选提交是否被采纳的保留策略——只有分数相对基线有提升的改动才会被保留平局或回退的候选会被丢弃。sandbox.md 的 Evaluation policy 部分进一步定义了结果语义passtrue表示目标构建build与可发现性测试全部通过score是目标检查项通过比例取值范围0.00到1.00分数越高越好且与keep_policy: score_improvement直接联动——score 是omx autoresearch迭代循环里 keep/discard 决策的量化依据。这套字段与 src/autoresearch/runtime.ts 中AutoresearchKeepPolicy、AutoresearchEvaluationRecord、candidate_file、ledger_file等运行期结构一一对应每次迭代的score会被写入候选记录监督者根据keep_policy决定保留、丢弃或停止。四、评估器实现一条命令如何量化可发现性评估器源码 src/scripts/eval/eval-cli-discoverability.ts 的实现非常紧凑核心是一个构建 四个测试切片const checks: [string, string[]][] [ [node, [--test, dist/cli/__tests__/index.test.js]], [node, [--test, dist/cli/__tests__/nested-help-routing.test.js]], [node, [--test, dist/cli/__tests__/sparkshell-cli.test.js]], [node, [--test, dist/cli/__tests__/session-search-help.test.js]], ];执行流程为先跑npm run build把 TypeScript 源码编译到dist/这是 pass 的前置条件编译失败即整体失败依次用node --test运行四个编译后的测试文件分别对应src/cli/__tests__/下的index.test.ts、nested-help-routing.test.ts、sparkshell-cli.test.ts、session-search-help.test.ts统计通过项占比得到score passed / 5构建 四个切片保留两位小数全部退出码为 0 时passtrue以 JSON 输出pass、score、summary以及每个检查项的command、ok、status、stderr明细。值得注意的是dist/cli/__tests__/前缀测试目标是编译产物因此任何改动都必须先通过构建再接受行为断言这从机制上保证了help 文本改动不能破坏编译。而spawnSync的stdio: [ignore, pipe, pipe]配置保证评估器输出是干净的、可被 JSON 解析的。五、四条可发现性测试切片逐个拆解5.1 顶层 helpindex.test.ts顶层 help 的完整文本由 src/cli/index.ts 中的HELP常量维护覆盖Usage:、子命令清单、全局 Options--yolo、--high、--xhigh、--madmax、--spark、--direct、--tmux、--worktree等以及OMX_LAUNCH_POLICY环境变量说明。src/cli/__tests__/index.test.ts是该文件对应的主测试验证resolveCliInvocation的命令路由、HELP常量渲染、启动策略解析等核心行为——任何对顶层 help 文本的改动都会经过这一切片回归。从 src/cli/index.ts 的resolveCliInvocation可以看出顶层路由逻辑--help/-h路由到help命令--version/-v路由到version无参数或以--开头的参数默认进入launch其余首个 token 作为子命令名。这意味着新增一个命令名天然不会破坏既有路由而改 help 文案则直接影响操作者能否在长列表里快速定位目标。5.2 嵌套帮助路由nested-help-routing.test.ts嵌套帮助路由是本次 pilot 的核心机制之一。src/cli/index.ts中维护了NESTED_HELP_COMMANDS集合包含adapt、ask、question、cleanup、auth、exec、hud、state、ralph、ralplan、session、sparkshell、team等并提供commandOwnsLocalHelp(command)判定某个命令是否拥有自己的本地帮助面。src/cli/tests/nested-help-routing.test.ts 用一张命令 → 期望帮助特征的表来逐条断言命令期望的本地帮助特征正则adapt --helpUsage: omx adapt target probe\|status\|init\|envelope\|doctorask --helpUsage: omx ask claude\|gemini question or taskquestion --helpomx question - OMX-owned blocking user question entrypointautoresearch --help硬弃用提示并指向$autoresearchexplore --help硬弃用提示并指向omx sparkshellhud --helpUsage:\n omx hud Show current HUD statestate --helpUsage: omx state read\|write\|clear\|list-active\|get-statusnotepad --help工具清单中含notepad_readtrace --help工具清单中含trace_timelinemcp-serve --helpUsage: omx mcp-serve targetralph --helpomx ralph - Launch Codex with ralph persistence mode active每条断言同时校验两件事状态码为 0、输出包含命令自身的 Usage 特征且不得出现顶层 help 的签名oh-my-codex (omx) - Multi-agent orchestration for Codex CLI。也就是说嵌套帮助路由的正确形态是omx sub --help必须落到子命令的本地帮助面而不是退化成顶层 help。测试还额外验证了omx state read --input {mode:ralph} --json能穿透顶层 CLI 正常执行{exists:false,mode:ralph}证明 help 路由改动不能破坏实际命令执行路径。5.3 sparkshell 可发现性sparkshell-cli.test.tssparkshell 是 omx 的原生侧车sidecar命令面其本地帮助常量SPARKSHELL_USAGE定义在 src/cli/sparkshell.tsUsage: omx sparkshell command [args...] or: omx sparkshell [--json] [--budget chars] command [args...] or: omx sparkshell --shell shell command or: omx sparkshell --tmux-pane pane-id [--tail-lines 100-1000]src/cli/tests/sparkshell-cli.test.ts 中与可发现性直接相关的断言分为两层顶层 help 可见性omx --help必须同时出现omx sparkshell command [args...]、omx sparkshell --tmux-pane pane-id [--tail-lines 100-1000]与explicit tmux-pane summarization描述并且弃用命令omx explore的文案要引导用户转向 sparkshellDEPRECATED compatibility command; use normal repo inspection or omx sparkshell子命令本地帮助完整性omx sparkshell --help必须包含Usage: omx sparkshell command [args...]、or: omx sparkshell --tmux-pane pane-id [--tail-lines 100-1000]以及两个环境变量说明OMX_SPARKSHELL_BIN overrides the native binary、OMX_SPARKSHELL_MODEL_INSTRUCTIONS_FILE overrides packaged summary instructions。同一文件的其余测试则保障可发现性改动不破坏语义通过 JS bridge 透传子进程 stdout/stderr/退出码、GLIBC 不兼容时回退到原始执行、缺失二进制时报错清晰failed to launch native binary: executable not found等。这些测试共同把 sparkshell 的入口可见与运行可靠绑在一起回归。5.4 session-search 可发现性session-search-help.test.tsomx session用于搜索并总结本地会话历史其本地帮助与锁/指针子命令位于 src/cli/session-search.ts例如Usage: omx session lock inspect|recover [--cwd path] [--json]、Usage: omx session pointer recover [--cwd path] [--json]。src/cli/tests/session-search-help.test.ts 对帮助文本的断言包括顶层 help 必须包含omx session Search and summarize local session history (--codex-home path escape hatch)、omx resume Resume Codex sessions (supports --project and --codex-home path)以及omx autoresearch [DEPRECATED] Use $autoresearch的弃用标记omx session --help必须包含omx session search query、omx session friction [options]、Options for friction:、--since spec、--codex-home pathomx session lock --help与omx session pointer --help也要逐层给出用法。测试同样验证了发现面背后的真实行为session lock inspect能输出确定性 JSONlockPath、safeToRecover遇到暂存锁场景时recover会拒绝恢复not safe to recoversession pointer recover能把已验证死亡的会话指针按取证字节原样隔离quarantine并在重复执行时输出status: absent。这些行为测试保证了帮助文本承诺的能力与实际能力一致。六、如何本地运行评估器与整个 Pilot评估器可以直接在仓库中运行编译后脚本路径对应 src/scripts/eval/eval-cli-discoverability.ts# 编译 运行全部 5 项检查构建 4 个测试切片 node scripts/eval-cli-discoverability.js输出示例结构示意{ pass: false, score: 0.80, summary: CLI discoverability pilot evaluator, details: [ { command: npm run build, ok: true, status: 0 }, { command: node --test dist/cli/__tests__/index.test.js, ok: true, status: 0 }, { command: node --test dist/cli/__tests__/nested-help-routing.test.js, ok: false, status: 1, stderr: ... } ] }若要以真实的端到端方式运行整个 mission 循环基线 → 候选迭代 → keep/discard 决策可以借助omx autoresearch相关运行机制见 missions/README.mdomx autoresearch missions/cli-discoverability-pilot运行后可在.omx/logs/autoresearch/run-id/下检查manifest.json、candidate.json与iteration-ledger.json查看监督者对每个候选的score_improvement判定结果——这正是 sandbox.md 中keep_policy字段在运行期的落地产物。七、从 Pilot 看 CLI 可发现性工程的三个要点结合 sandbox 合约、mission 目标与上述源码可以提炼出本项目 CLI 可发现性工程的三条可复用经验可发现性是可测试的顶层 help、嵌套路由、子命令帮助面的特征文本全部被写进node --test断言任何回归help 被意外删除、路由退化成顶层帮助都会让对应切片红掉改动者因此可以放心地在文案层做优化而不用担心破坏行为层。发现面与行为面必须联动回归nested-help-routing.test.ts、session-search-help.test.ts都在断言 help 文本之后继续执行真实命令state read、session lock inspect、session pointer recover确保帮助里承诺的用法与真实可用的命令不脱节。任务边界靠合约而非自觉sandbox.md 用 frontmatter 把评估器命令、JSON 输出格式与score_improvement保留策略固化下来再配合omx autoresearch的迭代循环源码佐证见 src/autoresearch/runtime.ts 的keep_policy/candidate_file/ledger_file结构让最小可评审 diff 分数提升才保留成为可自动执行的纪律而不是一句建议。相关资源任务目标与聚焦点missions/cli-discoverability-pilot/mission.md沙箱规则与评估合约missions/cli-discoverability-pilot/sandbox.md评估器实现src/scripts/eval/eval-cli-discoverability.ts顶层 HELP 常量与嵌套帮助路由表src/cli/index.tssparkshell 本地帮助src/cli/sparkshell.tssession 帮助与锁/指针子命令src/cli/session-search.ts四组测试切片src/cli/tests/index.test.ts、src/cli/tests/nested-help-routing.test.ts、src/cli/tests/sparkshell-cli.test.ts、src/cli/tests/session-search-help.test.ts【免费下载链接】oh-my-codexOmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more.项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-codex创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/10 1:41:07

Python文件与路径操作实战:从os到pathlib,构建自动化办公基石

1. 文件与路径操作:为什么它是自动化办公的基石 我做了这么多年自动化办公项目,几乎每天都要跟文件、路径打交道。如果你问我哪个技能最实用、最值得花时间打磨,我第一个推荐的就是文件与路径操作。理由特别简单:办公自动化的本质…

2026/9/10 1:41:07

电商数据分析实战:从指标体系到决策智能

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 2:41:14

SpringBoot旅游管理系统毕业设计:从技术选型到部署上线

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 2:41:14

Unigram频道运营指南:如何高效管理你的Telegram频道

Unigram频道运营指南:如何高效管理你的Telegram频道 想要在Telegram上建立成功的频道?Unigram作为Windows平台上的Telegram客户端,提供了强大的频道管理功能。本指南将带你掌握Unigram频道运营的核心技巧,让你的频道脱颖而出&…

2026/9/10 2:41:14

Unigram数据存储架构:本地数据库与云端同步的实现原理

Unigram数据存储架构:本地数据库与云端同步的实现原理 Unigram作为Windows平台上的Telegram客户端,其数据存储架构采用了本地数据库与云端同步的巧妙设计,确保用户数据既安全又实时可用。在本文中,我们将深入探讨Unigram如何通过S…

2026/9/9 13:11:35

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/8 7:15:15

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 0:00:55

目录对比去重实战:用哈希算法精准清理重复文件

我电脑里现在还有一块换了三次机的“数据墓地”硬盘,里面存着2016年以前所有旧笔记本的完整备份。平时不觉得有什么,直到前阵子想把它整理归档,发现同一个安装包、同一批照片、同一份论文草稿,在几个不同的备份目录里反复出现。更…

2026/9/10 0:00:55

Leaflet离线地图完整Demo合集:内网部署与坐标纠偏实战

简介:这是一份面向Web GIS开发者的LeafLet离线地图示例合集,帮助开发者快速掌握离线地图从搭建到交互的完整流程。压缩包共723个文件,大小14.06MB,以319个js脚本、175个html页面和29个css样式文件为主体,配合png/svg图…

2026/9/10 0:00:55

MATLAB读取Rinex 3.02观测文件:多系统GNSS数据解析实战

简介:基于MATLAB开发的Rinex3.02版观测文件(o文件)读取代码包,面向卫星定位导航方向的学习者与研究人员,用于解决新版观测文件的数据解析、历元提取与时间转换问题。压缩包共4个文件,包含两个m脚本、一个19…

2026/9/7 16:23:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/7 22:46:00

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/9 10:21:54

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码