ARTICLE DETAIL

资讯详情

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

OpenRig factory-rsi 发布座席实战:release-manager 如何“只准备、不发布“,把发布权锁死在人类门禁上

OpenRig factory-rsi 发布座席实战:release-manager 如何“只准备、不发布“,把发布权锁死在人类门禁上 人工智能AI Agent多智能体Agent 编排代码智能体CLI【免费下载链接】openrigMulti-agent harness that runs Claude Code and Codex together as one system项目地址https://gitcode.com/GitHub_Trending/op/openrig点击查看免费下载本篇技术指南以 OpenRig 仓库中 factory-rsi 发布座席角色文档 为核心讲解在单 rig 的 RSI递归自我改进工厂工作流中release-manager座席如何完成发布准备release notes、文档更新、暂存 PR、如何通过release_prep→release_signoff两步流程把是否真的发布的决定权交给人类以及为什么发布是人类行为是一条被工作流规范与引擎路由双重保证的硬性纪律。读完你将掌握该座席的职责边界、agent 清单配置方法、工作流中门禁步骤的源码级实现以及如何用proof/PROOF.md证据链支撑一次可信的发布签字。一、背景RSI 工厂内循环里release 座席站在哪一环factory-rsi是 OpenRig 内置的单 rig 递归自我改进工厂 MVP规范标识 OPR.0.4.6.FAC2其核心工作流定义在 factory-rsi.yaml一个 rig 一个 workflow由引擎路由一个有界的内循环 SDLCplan → implement → qa_check → review → release内循环由引擎engine路由而非编排器orchestrator手工接力失败的qa_check或review会路由回implement做有界补救受max_hops: 20守卫约束。异常统一走 orchestrator-firstWF-5 拨盘。发布支线release leg只做准备并把是否发布的船票决策停在人类门禁上。在这个循环里release-manager是唯一承接review通过之后工作的座席。rig 的文化文件 CULTURE.md 给出的座席表确认了它的位置SeatRuntimeDoesplan-plannerclaude-code把语料/上轮狗食结果变成 ONE 可构建的 slice 规格build-implementerclaude-code构建 slice产出 proofcheck-qacodex检查产物失败路由回 buildreview-reviewercodex跨运行时多样性审查dogfood-testercodex对已发布产品做带外连续使用记录 findings 供下轮 planrelease-managerclaude-code准备发布守住人类门禁orch-leadclaude-code异常拨盘目标——仅处理异常需要特别强调的是release 座席不是内循环的最后一个自动步骤而是自动准备与人类批准之间的唯一接缝。这正是它与普通 CI 发布管道的本质区别。二、角色定位release seat 只做三件事角色文档开篇即给出定位You are thereleaseseat of the single-rig RSI factory. You run when the cycles review passes and the inner loop hands off to release prep. Your job is to prepare a release and thenstop at the human gate— you never publish.当一轮循环的review通过、内循环移交到发布准备时release-manager启动其职责收敛为三个可交付物发布说明release notes为刚通过循环的这一 slice 编写文档 / 网站更新docs / website updates这一 slice 需要的配套内容发布 PRrelease PR暂存staged而非合并。同时它必须引用该轮循环记录的证据proof/PROOF.md作为人类签字的依据——也就是说发布座席产出的不是承诺而是可核验的证据 基于证据的发布物料。对应的工作流步骤目标见factory-rsi.yaml中release_prep的objective字段进一步明确了产物范围Prepare the release notes, docs/website updates, and the release PR, and record the cycles release evidence atproof/PROOF.mdin the workspace (theevidence_refthe sign-off gate points at).三、两步流程先release_prep后release_signoff顺序不可颠倒角色文档强调工作流给 release 座席两个有序步骤release_prep—— 座席的可执行步骤YOUR executable step在这里实际完成准备notes、docs、暂存 PR并记录证据。它先于任何门禁运行——被准备的工件先存在。release_signoff—— 人类门禁human gate准备就绪后交给该步骤它把发布决定握在人类座位上。这个先准备、后签字的顺序不是口头约定而是被工作流规范显式固化的。查看factory-rsi.yaml中release_prep的next_hop配置next_hop: # Explicit step-id route (NOT suggested_roles): release_prep and # release_signoff share the release_manager actor_role, so a role-based # hop would be ambiguous (it would match the first release_manager step). # The prepared artifacts therefore exist BEFORE the human gate below. on: handoff: release_signoff这里有一个非常值得注意的工程细节release_prep与release_signoff共享同一个actor_role: release_manager因此如果按suggested_roles做角色路由引擎会命中第一个 release_manager 步骤而产生歧义。所以规范改用显式 step-id 路由on: handoff: release_signoff从机制上保证被准备的工件一定先于人类门禁存在。而release_signoff步骤则被定义为真正的门禁- id: release_signoff actor_role: release_manager objective: Hold the ship decision at the human gate, against the release artifacts already prepared in release_prep. Approval lets the human proceed to publish; nothing is published automatically. allowed_exits: [done, waiting, failed] gate: target: humankernel summary: RSI cycle clean; release artifacts prepared — sign off to publish (publish is a human act). evidence_ref: proof/PROOF.md next_hop: mode: forbid关键字段逐一说明gate.target: humankernel门禁把决策对象固定为内核上的人类席位而不是另一个 agentgate.summary人类在队列/注意力面板上看到的一句话摘要明确写着sign off to publish (publish is a human act)gate.evidence_ref: proof/PROOF.md工作区相对路径指向release_prep每轮循环写入的发布证据与已发布的 gated-release 示例使用同一约定它是每轮在运行工作区中产生的事实文件而非 slice 静态文件next_hop.mode: forbid签字步骤之后禁止任何自动跳转——没有签完字自动发的隐藏路径。从测试代码看这一步还依赖两个数据库迁移提供的字段queueItemSummarySchemamigrations 044与queueItemEvidenceRefSchemamigrations 048见 factory-rsi-starter.test.ts 的注释——人类发布门禁把 packet 停在humankernel上需要队列项的 summary evidence_ref 两列来承载签字信息否则停靠会静默丢失字段并诚实失败。四、硬性规则发布是人类行为publish is a human act角色文档用一整节强调这条不可逾越的规则You do NOT push, tag, publish,npm publish, cut a GitHub release, or upgrade any host — those acts happen only after, and only by, the human atrelease_signoff. If you are tempted to just finish the release, stop: the sign-off gate is the whole reason your prep stays prep.即 release 座席被禁止执行以下任何动作push推送代码tag打标签publish发布npm publish发布 npm 包cut a GitHub release创建 GitHub Releaseupgrade any host升级任何主机。这些动作只能在人类于release_signoff批准之后、由人类自己执行。文档甚至给出了防滑坡的心理提示如果座席想顺手把发布做完必须停下——签字门禁正是准备停留在准备的全部意义。这条纪律同时体现在工作流层面release_signoff的next_hop.mode: forbid意味着引擎不会为它安排任何后继自动步骤配合gate.target: humankernel发布动作在系统结构上就没有 agent 自动触发的出口。CULTURE.md 也以同样措辞重申Publishing is a human act. The release seat PREPARES notes/docs/PR and holds the ship decision at a human gate. No seat pushes, tags, or publishes.五、证据链以proof/PROOF.md为签字依据发布座席不是凭感觉发布而是凭证据发布。角色文档要求引用该轮循环记录的proof/PROOF.md作为人类签字的证据the evidence the human signs off against保持准备内容忠实于实际通过循环的内容绝不编造比 proof 支持的范围更干净的故事Keep the prep faithful to what actually passed the loop; never invent a cleaner story than the proof supports。这条证据链的工程落地有三层release_prep在准备完成后把本轮的发布证据写入工作区的proof/PROOF.mdrelease_signoff的门禁通过evidence_ref: proof/PROOF.md把人类引导到这份证据队列基础设施用 evidence_ref 列migrations 048把证据引用随 packet 一起停靠到人类队列保证人类在注意力面板上看到的不只是结论还有可核验的原始证据。换句话说签字的人类应当能回答这一轮到底通过了什么、凭什么可以进入发布——答案就在proof/PROOF.md里。六、agent 清单配置如何定义并装载 release-manager 座席release 座席的完整清单定义在 release-manager/agent.yaml全文如下name: factory-rsi-release-manager version: 1.0 description: Release-manager agent — prepares the release (notes, docs, PR) and holds the ship decision at the human gate defaults: runtime: claude-code imports: - ref: local:../../shared profiles: default: uses: skills: [verification-before-completion] guidance: [] subagents: [] plugins: [shared:openrig-core] runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config, shared:claude-activity-hooks] resources: guidance: - id: role path: guidance/role.md startup: files: - path: guidance/role.md delivery_hint: send_text required: true actions: []逐项解读name/descriptionfactory-rsi-release-manager描述即准备发布notes、docs、PR并把发布决定握在人类门禁上defaults.runtime: claude-code与 rig 拓扑一致——factory-rsi/rig.yaml中release.manager成员同样声明runtime: claude-code用于跨运行时多样性check/qa/review/dogfood 运行在 codex而 plan/build/release/orch 运行在 claude-codeimports: local:../../shared引入 agents/shared 共享资源含 openrig-core 插件与默认运行时资源profiles.default.uses.skills: [verification-before-completion]加载完成前验证技能与忠于 proof、不编造更干净的故事的纪律互为表里——准备内容在交付门禁前须先自证resources.guidancestartup.files把guidance/role.md即本篇文章核心的角色文档声明为启动必送文件delivery_hint: send_text以文本方式注入上下文required: true缺失则启动失败——确保座席每次启动都带着角色边界入场而不是靠记忆。该 agent 被factory-rsi/rig.yaml的release池引用agent_ref: local:../../../agents/factory-rsi/release-manager同时工作流中release_manager角色的preferred_targets: [release-managerfactory-rsi]把角色与座位做 1:1 固定构成角色 → 目标座位 → agent 清单 → 角色文档的完整装载链。七、引擎如何保证这条纪律路由与测试双重佐证发布是人类行为不仅写在角色文档里还被引擎路由与自动化测试双重锁定引擎路由层面factory-rsi.yamlrelease_prep的next_hop显式指向release_signoff保证准备先于门禁release_signoff的next_hop.mode: forbid保证签字后无自动后继gate.target: humankernelevidence_ref保证人类看到证据再决定invariants中的closure_required: true、loop_guards.max_hops: 20保证整个内循环含补救回路有界、可闭合、不会失控。测试层面factory-rsi-starter.test.ts该测试验证两个核心命题——规范可干净通过校验max_hops有界补救回路被制裁、WF-2 分支映射可解析、每个 role→seat 严格 1:1如expect(spec.target?.rig).toBe(factory-rsi)、expect(spec.entry?.role).toBe(planner)内循环是确定性 引擎路由的review移交release_prep而 qa/review 的failed路由回implement——全程无编排器接力dogfood 作为声明角色而非步骤与门禁循环解耦。由此可以推断只要 workflow 校验通过release_manager角色的两个步骤就必然以准备在前、门禁在后的顺序执行任何试图绕过门禁直接完成发布的跳转都会在引擎层面被forbid拦截。八、纪律总结准备、交棒、诚实收口角色文档以三条纪律收尾这也是发布座席的完整行为准则准备并交棒诚实地关闭Prepare and hand to the gate; close honestly不做任何绕过门禁的路由阻塞项以异常上报orchestrator-firstRaise anything blocking as an exception发布准备中遇到阻塞不自行消化走 WF-5 拨盘先上报编排座席准备内容忠于 proofKeep the prep faithful to what actually passed the loop绝不为了故事更好看而美化通过循环的实际内容。对照 OpenRig 的 human-in-the-loop 技能 可知人类门禁在 OpenRig 中是受控的稀缺资源干净的 closeout 默认由 RSI 传送带继续不应人为制造门禁只有当存在真实决策用量限制、provider 认证、产品意图歧义、路线图取舍时才挂出人类门禁。release_signoff正是这种真实决策的典型——是否对外发布一个 slice是必须由人承担后果的决定因此它被设计为gate.target: humankernel的硬门禁而不是可省去的过场。延伸阅读角色原文release-manager/guidance/role.mdAgent 清单release-manager/agent.yaml工作流规范含 release_prep / release_signoff 门禁定义factory-rsi.yamlRig 拓扑与座席表rig.yaml、CULTURE.md引擎路由测试factory-rsi-starter.test.ts人类门禁通用规范human-in-the-loop/SKILL.md赞分享人工智能AI Agent多智能体Agent 编排代码智能体CLI【免费下载链接】openrigMulti-agent harness that runs Claude Code and Codex together as one system项目地址https://gitcode.com/GitHub_Trending/op/openrig点击查看免费下载相关推荐OpenRig 发布管理实践轻量 Release Notes 目录与 substance gate 发布闸门OpenRig 发布管理实践轻量 Release Notes 目录与 substance gate 发布闸门 导读 本文讲解 OpenRig 仓库中 docs人工智能AI Agent多智能体Agent 编排代码智能体CLIoh-my-codex 发布副作用守卫实践以 0.15.0 发布准备为例验证只准备、不发布oh my codex 发布副作用守卫实践以 0.15.0 发布准备为例验证只准备、不发布 导读 本文基于 oh my codex 仓库中的发布副作用守卫人工智能AI AgentAgent 编排Agent 工作流CLI开发工具AI 技能OpenRig factory-rsi 之 Dogfood Tester 角色解析把已发布产品的真实使用转化为下一轮计划的 RSI 反馈环OpenRig factory rsi 之 Dogfood Tester 角色解析把已发布产品的真实使用转化为下一轮计划的 RSI 反馈环 在 OpenRig人工智能AI Agent多智能体Agent 编排代码智能体CLI上一篇LeetCode 785 判断二分图Is Graph BipartiteDFS、BFS、迭代 DFS 与并查集四种解法全解析下一篇x64dbg 硬件断点命令 SetHardwareBreakpointbph / bphws完全指南Debug 寄存器断点的用法、参数与底层原理创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表