资讯动态

OpenRig 贡献者指南:gate-lane 门禁、substance gate 与 PR 检查流程

发布时间:2026/10/5 9:07:03 来源:尧图企业网站定制
OpenRig 贡献者指南gate-lane 门禁、substance gate 与 PR 检查流程【免费下载链接】openrigBuild your own network of agents from Claude Code, Codex and Pi: persistent teams with roles, shared context and owned work.项目地址: https://gitcode.com/GitHub_Trending/op/openrigOpenRig 是一个让你用 Claude Code、Codex 等编码智能体搭建持久化 Agent 团队的开源项目每个 Agent 有自己的角色、共享上下文和专属座位。想向 OpenRig 提交代码先别急你的 PR 要穿过三道质量关卡gate-lane 门禁、substance gate与PR 检查流程。本文面向新手贡献者把这三道关卡逐一讲透——每一关查什么、在哪里实现、失败时输出什么让你提交前就能自查少走返工弯路。OpenRig 的质量文化非常特别它本身就是由智能体 少数维护者共同构建的见 CONTRIBUTING.md 开篇。因此仓库里的检查全部脚本化、可审计而不是口头约定。官方对贡献者的硬性要求包括一个 PR 只解决一个问题、diff 小到能一次 review 完、可测的改动必须附测试、禁止手改CHANGELOG.md、禁止自行升版本号。环境准备本地先跑通仓库检查开始贡献前的最低要求是 Node^22 || ^24和一个可用的tmux。完整贡献流程写在 CONTRIBUTING.mdgit clone https://gitcode.com/GitHub_Trending/op/openrig cd openrig npm install npm run build # 构建所有 workspace npm test # 仓库级检查 daemon/cli/tui 测试套件 npm run lint # 类型检查所有包关键细节在 package.json 的脚本定义里npm test会先跑test:repo——构建 daemon、执行scripts/下全部*.test.mjs、文档守卫check-docs-guard、skills 镜像一致性检查、context pack 生成检查——再跑 daemon/cli/tui 三个 workspace 的测试套件。换句话说本地npm test就是 CI 的最小预演本地绿了CI 大概率也绿。关卡一gate-lane 门禁如何工作gate-lane是 OpenRig 的整机级质量门禁入口是 scripts/gate-lane.mjs通过npm run gate触发见 package.json。它的设计哲学可以概括为一句话宁可直接拒绝也不带病放行。第一步机器级互斥端口即锁门禁用绑定本地端口实现跨进程互斥实现在 scripts/gate-lane-lock.mjs。锁名就是端口号默认 40404可用OPENRIG_GATE_LANE_PORT覆盖见 scripts/gate-lane-lock.mjs绑定成功 拿到车道端口已被占用EADDRINUSE立即硬拒绝非阻塞退出绝不等待进程一旦死亡内核自动释放端口**不存在僵尸锁**这类历史包袱如果端口被外人非门禁进程占用门禁同样拒绝运行并诚实地告诉你持有者未知而不是猜测或强占见 scripts/gate-lane-run.mjs 的教学文案。第二步绑定干净的候选代码拿到车道后门禁读取当前HEAD并断言工作树是干净的——唯一允许存在的未跟踪文件就是即将写出的判决文件本身scripts/gate-lane.mjs。这一刀切在仓库发生任何变更之前杜绝测的和交的不是同一份代码。第三步双腿检查全部跑完再下结论核心逻辑在 scripts/gate-lane-run.mjstypechecknpm run lint与 vitestnpm run test两条腿全部执行、不提前失败每条腿记录自己的耗时。这样判决文件能完整呈现哪条腿红、红在哪里、跑了多久而不是只给你一个总失败。第四步自描述的判决文件结果写入gate-lane-verdict.jsonscripts/gate-lane.mjs内容包括candidateSha绑定的 HEAD防止判决被挪用到别的提交负载上下文门禁运行时的机器负载和外来 node/vitest/tsc 进程数——绿色判决只和它当时承受的负载一样可信smoke 标志冒烟运行产生的判决明确标注smoke: true排除账本状态默认空账本即所有腿必须全绿状态会大声打印在输出里。判决不是一次性消费品但有严格的消费规则scripts/gate-lane-consume.mjs 消费时会逐条核验——candidateSha必须等于当前 HEAD、gate必须是pass、smoke必须严格为false——核验通过后立即删除判决文件同一份判决永远无法复用。关卡二substance gate 内容安检substance gate防的是另一类问题即将发布的内容里有没有夹带内部知识比如开发者实例的绝对路径、内部主机名、某一次实测的数字、只对单个部署成立的事实。入口是npm run gate:substance见 package.json实现在 scripts/check-substance-gate.mjs。它的工作方式像一次分层安检先验证切口干净仓库 HEAD 必须精确匹配传入的--cut-sha且工作树无脏文件scripts/check-substance-gate.mjs——扫描的对象必须和要发布的字节完全一致枚举 npm 产物用npm pack --dry-run列出将进入发布包的全部文件并区分内容文件与派生物dist/、node_modules/两类分别扫描泄漏扫描每个文件都过 scripts/internal-leak-scanner.mjs规则来自 scripts/internal-tokens.generated.json命中即失败并附上修复建议泛化内容、引用公开出处、或移入内部 pack候选项人工裁决scripts/check-substance-gate.mjs 用正则捕获疑似内部事实——绝对路径、端口、N files这类计数、日期等——每个候选都必须由人工给出处置理由且裁决文件里的 sha256 必须与当前文件一致。改了一个字节之前的裁决自动作废重新审输出收据全部通过后生成 JSON 收据记录扫描覆盖、规则命中与人工裁决供事后审计。关卡三PR 检查流程容器化三连跑最后一道关卡验证的不是代码而是真实安装包的运行行为。入口脚本是 scripts/run-pr-scenarios.sh详细说明见 packages/test-system/ci/README.md。它采用三连跑策略全部在一次性的、无网络、只读根文件系统的容器中进行资源限额、能力全部丢弃见 scripts/run-pr-scenarios.sh轮次模式期望结果第 1 轮healthy完整场景通过启动 stub 拓扑、建队列、daemon 重启、重启后同一 baton接力棒仍可见、拆解 rig第 2 轮lost-baton重启前把一条队列行从in-progress改成pending场景必须恰好失败在指定步骤且失败观察必须是真实的baton-1 → dev-workerscn-baton状态第 3 轮healthy全新容器、关闭故障注入场景再次通过第 2 轮是精髓所在它不是验证程序会不会挂而是验证故障注入机制本身可信——如果连已知故障都测不出来其他绿色结果就毫无意义。准入判断由纯逻辑测试 scripts/pr-scenarios.test.mjs 承担它明确声明自己只是准入控制不是端到端证据不能替代三个真实容器运行。所有日志、镜像身份、注入收据都会作为证据保留含失败时。上图是 OpenRig 的 TUI 拓扑视图正是维护者核对 baton 在座位间流转状态时使用的界面——也是 lost-baton 场景中真实观察的来源。提交 PR 前的自查清单把三道关卡串起来就是一份可执行的提交前检查单✅npm test与npm run lint本地全绿本地预演 CI✅ 改动可测补了聚焦的确定性测试涉及终端/Provider 行为的说明哪些是真实运行、哪些是模拟✅ 没有把内部路径、主机名、实例级数字写进将发布的文件substance gate 会拦✅ 一个 PR 一个关注点diff 可一次性 review✅ PR 描述写清三件事用户得到了什么、你如何验证、哪里没把握✅ 安全类发现先私下报告见 SECURITY.md不走公开 PR延伸阅读贡献总入口CONTRIBUTING.md——含响应时效目标issue 一天内确认、外部 PR 七天首轮意见与常用标签说明门禁实现全家族scripts/gate-lane.mjs、scripts/gate-lane-run.mjs、scripts/gate-lane-lock.mjs、scripts/gate-lane-consume.mjs内容安检scripts/check-substance-gate.mjs、scripts/internal-leak-scanner.mjsPR 场景与执行器scripts/run-pr-scenarios.sh、scripts/scenario-executor.mjs、packages/test-system/ci/README.md项目结构与测试分层ARCHITECTURE.md读懂这三道门禁你会发现OpenRig 的贡献流程本质上是把信任变成可验证的工件判决文件、扫描收据、容器日志每一环都留下可复查的痕迹。对任何想认真参与开源的贡献者来说这都是一份值得借鉴的作业。【免费下载链接】openrigBuild your own network of agents from Claude Code, Codex and Pi: persistent teams with roles, shared context and owned work.项目地址: https://gitcode.com/GitHub_Trending/op/openrig创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑