Remotion 仓库中的 AI 提交工作流解析:`/commit` 扩展与 worker-prompt.md 的实现与协议

发布时间:2026/9/8 23:40:47

Remotion 仓库中的 AI 提交工作流解析:`/commit` 扩展与 worker-prompt.md 的实现与协议 Remotion 仓库中的 AI 提交工作流解析/commit扩展与 worker-prompt.md 的实现与协议【免费下载链接】remotion Make videos programmatically with React项目地址: https://gitcode.com/GitHub_Trending/re/remotion导读本文以 Remotion 仓库内的.pi/extensions/commit/worker-prompt.md为骨架剖析这套内嵌在 Pi Coding Agent 里的「提交工作进程commit worker」机制——当你对维护者会话执行/commit时扩展如何在临时会话分支上启动一个独立 worker、五步完成识别改动 → 提交 → 创建/更新 GitHub PR的全流程并最终以严格的五行结果契约回传状态。读完本文你将掌握该 worker 的任务边界、完整工作流与既有 PR 处理规则、输出协议的设计动机以及它在 扩展入口 与 行为测试 中的源码级落地方式。一、worker-prompt.md 在仓库中的定位.pi/是仓库内嵌的 Pi Coding Agent 扩展目录包含三个扩展commit、pullfrog-monitor、vercel-deployment。其中commit扩展由三个文件组成文件作用worker-prompt.mdworker 的系统提示词模板定义任务边界、工作流与结果契约index.ts扩展的 TypeScript 实现注册/commit命令并驱动整个 worker 生命周期index.test.ts基于bun:test的行为测试验证消息排队与结果回传语义从源码结构可以推断出清晰的职责分工worker-prompt.md是写给另一个 AI 进程看的规范文本而index.ts是围绕这份规范建立的运行时骨架——两者通过运行期模板渲染 严格文本解析耦合在一起构成了一套机器可验证的 Agent 间通信协议。这正是本机制最有价值的设计点worker 的输出不是自由文本而是必须能被parseWorkerResult精确解析的固定格式详见第五节。worker 运行在用户当前 Pi 会话树的**临时兄弟分支temporary sibling branch**上拥有理解工作所需的完整对话上下文但其推理过程与工具调用在任务结束后会从用户活跃会话分支中被移除它操作的是与用户会话相同的 Git checkout 与工作区。换言之这是一次可隔离、可追踪、用完即弃的委托式提交执行。二、worker 的任务边界worker 的职责被严格限定为一句话提交当前任务产生的改动并创建或更新其 GitHub Pull Request。同时用户通过/commit附带的可选上下文{{userContext}}占位符只作为背景信息辅助理解意图文档明确要求不得将其直接照抄为 commit message 或 PR 标题措辞必须从实际改动、完整分支与对话上下文中推导保证准确。一个值得注意的边界约束写在「Workflow」末尾不要为了制造一次提交而修改源文件。由仓库必需的 hooks 或prskill 产生的改动是被允许的但在提交前必须检查这些改动。这从机制层面杜绝了为提交而提交的污染行为。三、五步工作流原文档把 worker 的推进过程定义为五个步骤本文原样继承并逐一注解步骤动作说明1勘察现场检查当前分支、Git status、已暂存/未暂存改动、未跟踪文件、分支提交记录、可能的 base 分支以及当前分支是否已存在 PR2区分改动归属区分属于当前任务的改动与明显无关或模糊的改动若无法安全判定应提交什么绝不盲目暂存或提交直接返回status: failed并附简要说明3无既有 PR 时创建若尚无 PR 且有内容要发布则通过 Pi 的 skill 机制走prskill以该 skill 为准创建首个 PR4已有 PR 时更新若 PR 已存在按下一节的既有 PR 规则执行5无改动时收尾若没有任何可提交、可推送或值得更新的内容返回status: no_changes这五步呈现的是一种先勘察、后判权、再执行的安全顺序第 2 步是所有后续动作的闸门无法归因的改动不会被强行纳入提交范围。四、既有 Pull Request 的处理规则当当前分支已经存在 PR 时worker 必须先读取该 PR 的编号、URL、标题、完整 body、base 分支与 head 分支再决定要更新什么。规则的核心精神可以概括为授权明确、绝不重写历史、尊重人工内容授权语义调用/commit即视为用户授权暂存、提交并推送明确属于当前任务的改动无需再次请求授权提交信息基于当前实际改动给出简洁的 commit message评估 PR 标题与 body 时要通览整个分支推送纪律正常 push绝不 force-push、绕过 hooks、改写已发布历史或更改 PR base元数据更新仅在标题需要变更时才走pr-nameskill仅当 PR 标题/body 已过时或不完整时才更新不得为了换个说法而重写元数据人工内容保护保留有用的手工撰写内容描述、issue 链接、reviewer 备注、checklist、截图/视频、验证细节等只有分支证伪时才删除或重写更新通道更新的 PR body 必须以 Markdown 文件形式放在临时目录中不得通过 shell 参数内联传递 Markdown不使用gh pr edit而是通过gh api以安全 JSON 编码的标题/body 更新 PR 元数据并保持命令输出精简失败降级若普通 push 或 GitHub 更新被拒绝立即停止并上报失败而不是采取破坏性的恢复手段。上述约束在 扩展入口 的实现中体现为worker 会话结束后扩展会等待 agent 空闲再从源叶子节点会话树导航回去把结果以自定义消息投递给用户若过程中出现 assistant 错误、未产出结果或结果格式错误都会走formatFailure失败路径并以 error 通知提示。五、结果契约严格的五行输出协议worker 结束时必须只返回恰好五行、且值均为真实值的结果禁止代码块、标题、多余行、占位符或格式说明。字段定义如下行字段取值1status:四选一committed/updated_pr/no_changes/failed2commit:实际的短 SHA 与 commit message或none3pr:实际的 PR 编号、标题与 URL或none4verification:执行过的验证命令或Not run5notes:重要注意事项或none四个状态值的语义区分同样关键committed本次运行创建并推送了 commit即便同时创建或更新了 PR也以此为准updated_pr没有产生新 commit但推送了既有 commit 或更新了 PR 元数据no_changes无内容可提交/推送/更新failed无法安全完成提交。测试文件 index.test.ts 中给出了一个符合该契约的典型样例status: no_changes commit: none pr: none verification: Not run notes: none六、源码级实现剖析6.1 命令注册与一次调用的完整时序扩展通过pi.registerCommand(commit, {...})注册斜杠命令其描述为Commit changes and create or update a PR. Usage: /commit [optional context]。命令处理器的执行时序可概括为若已有 worker 在运行则直接警告返回防止重入等待当前 turn 空闲后记录sourceLeafId源会话叶子用buildWorkerPrompt(userContext)渲染提示词以自定义消息remotion-commit-worker-promptdisplay: false、triggerTurn: true、deliverAs: followUp触发 worker 会话等待agent_end事件收集 worker 分支产生的消息从消息中定位最后一条 prompt 消息提取其后的最后一段 assistant 文本与可能的错误对文本做严格解析再把结果投递回源叶子节点最终以remotion-commit-result类型消息展示给用户。6.2 模板渲染{{userContext}}的运行期替换提示词模板并非直接发送而是由 buildWorkerPrompt 读取与扩展同目录的worker-prompt.md并执行return template.replaceAll({{userContext}}, () userContext || (none provided));也就是说模板是数据注入后才是完整提示词——这正是文档以{{userContext}}占位符保留可替换插槽这一写法的实现基础。6.3 严格的文本解析器worker 返回的自由文本能否被接受取决于 parseWorkerResult 的三重校验按换行切分后必须恰好等于 5 行RESULT_FIELDS长度每一行必须以字段名:前缀开头且值非空第一行的 status 必须在WORKER_STATUSES [committed, updated_pr, no_changes, failed]中。解析成功后displayStatus会把failed映射为失败、其余映射为成功解析失败或内容缺失时统一通过formatFailure生成五行status: failed的标准失败结果。这套设计保证了无论 worker 行为多不可控主会话收到的永远是规范结果。6.4 worker 运行期间的用户输入保护输入事件处理 有一段重要逻辑当commitWorkerRunning为真且事件不是来自扩展本身时用户的交互消息会被排队挂起并通知用户消息将在 commit worker 退出后释放当前排队 N 条返回action: handled从而避免用户在 worker 执行中途把主会话拐走。worker 结束后若成功回到源叶子节点排队的消息会按顺序释放第一条以普通方式发送开启模板展开其余以followUp方式递送见 releaseQueuedUserMessages若无法退出 worker 分支则消息继续滞留并给出警告。6.5 上下文隔离扩展在pi.on(context)中过滤历史消息remotion-commit-result类型永远不进上下文remotion-commit-worker-prompt仅在 worker 运行时保留。这意味着提交过程的中间产物不会污染用户后续会话的上下文窗口与worker 的推理与工具调用将移出活跃分支的文档声明互为印证。6.6 行为测试佐证index.test.ts 用 mock 的ExtensionAPI与ExtensionCommandContext验证了关键语义worker 运行期间交互消息无论steer还是followUp都会被handled且暂不投递、会话停留在 worker 叶子当agent_end携带五行no_changes结果到达后会话返回源叶子并发送remotion-commit-result随后在agent_start时排队消息才被依次释放。这为「消息排队 — worker 隔离 — 结果回传 — 消息释放」的整条链路提供了可执行的行为基准。七、设计要点总结纵观整套机制可以提炼出四条贯穿始终的设计原则契约先行的 Agent 间通信worker 的行为规范写在文档中而文档的格式约定五行协议又被实现方用代码强制校验文档与代码互为规范与守护安全优先于完成度改动归属存疑即失败、禁止 force-push、禁止破坏性恢复、push 被拒即停手人工内容与历史不可侵犯保留手工 PR body、只改确实过时的元数据、用gh api而非gh pr edit主会话体验零污染消息排队 上下文过滤 临时分支保证一次 AI 提交流程对用户而言是旁路执行、结果送达。八、适用前提与如何观察它工作需要说明的是这套机制不是 Remotion 对外发布的产品功能而是维护者在仓库中内嵌的 Agent 开发基础设施它依赖 index.ts 顶部导入的earendil-works/pi-coding-agent扩展框架并由 Pi 会话的 skill 机制pr、pr-name配合完成 PR 的创建与命名。若要体验需要在安装了该扩展的 Pi Coding Agent 会话中、处于一个带有任务改动的临时分支上执行/commit [可选上下文说明]随后即可在会话中观察到worker 运行中、用户消息被暂时排队、结果以五行状态返回的完整过程对实现细节感兴趣的读者可以对照 worker-prompt.md规范、index.ts实现与 index.test.ts测试三者逐行交叉阅读这套提示词文档 严格解析实现 行为测试的组合本身就是一份很好的 Agent 工作流工程化样例。【免费下载链接】remotion Make videos programmatically with React项目地址: https://gitcode.com/GitHub_Trending/re/remotion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/9 0:45:53

基于STM32的GPS导航系统设计与NMEA解析实战

简介:基于STM32的GPS导航配套资料包,面向嵌入式开发者和电子设计爱好者,聚焦如何在STM32平台上实现带GUI界面的GPS导航系统。资源共548个文件,以h/c源码、o目标文件及d/crf等编译中间文件为主,并包含hex、axf等固件输出…

2026/9/9 0:45:53

车辆精准搜索实战:Python+ElasticSearch亿级数据检索优化

简介:面向车辆大规模精准搜索场景的Python课程设计资源,将检索任务拆分为车辆型号识别与车身颜色识别两个子任务,采用迁移学习微调VGG16、Inception_V3、ResNet50等深度卷积神经网络,训练集上型号识别准确率可达97%,并…

2026/9/9 0:45:53

FAST-LIVO2解析:直接法紧耦合多传感器融合里程计

1. 从“融合”到“直接”:FAST-LIVO2到底解决了什么问题做机器人、无人机或自动驾驶感知的朋友,这几年应该没少被“多传感器融合里程计”这个词轰炸。激光雷达、惯性测量单元、相机三者各有所长,雷达测距准但点云稀疏、纹理弱,相机纹理丰富但…

2026/9/9 0:45:53

STM32L151RCT6低功耗MCU深度解析:架构、模式与开发实践

嵌入式圈子里有个很有意思的现象:一款芯片的生命力,往往不取决于它发布时有多惊艳,而取决于后来有多少人一直在用它趟坑、补文档、写库。STM32L151RCT6就是这样一颗“老而弥坚”的芯片。作为ST意法半导体低功耗产品线L1家族的高密度成员&…

2026/9/9 0:45:53

STM32F407VET6开发板详解:引脚、资源、LwIP网络与实战

1. 一块开发板凭什么火了这么多年先说个现象:你去任何嵌入式招聘要求里翻一翻,十个里面有八个写着“熟悉STM32”,再往下细看,出现频率最高的具体型号之一就是STM32F407VET6。淘宝销量、论坛提问量、教学视频播放量,这块…

2026/9/9 0:40:52

STM32F103C8T6驱动六轴机械臂目标抓取实战解析

简介:面向嵌入式开发者与机器人爱好者,这是一份基于STM32F103C8T6的六轴机械臂工程示例,重点演示目标位置抓取功能的软件实现,适合学习STM32外设控制、机械臂运动学或正在寻找可移植参考代码的读者。压缩包共851个文件、约23.2MB&…

2026/9/8 7:15:10

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

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

2026/9/8 7:15:15

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

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

2026/9/8 7:15:10

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

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

2026/9/9 0:00:48

MHS模型硬件标准:让大模型像调用软件一样控制物理设备

让Claude真正看着显微镜说“这个细胞形态不太对”,或者让大模型自己调一版机械臂的运动轨迹,这事儿听上去已经很接近科幻片了。但你真上手试一次就会发现,模型不缺智商,缺的是一个能插进显微镜、机械臂、激光控制器里的“通用插座…

2026/9/9 0:00:48

AI五大核心方向详解:从机器学习到大模型,零基础转行选哪条?

会有人告诉我,他想转行学AI,但打开招聘网站一看直接傻眼:机器学习、深度学习、自然语言处理、计算机视觉、大模型应用……满屏都是这些词,好像每个都会一点,又好像每个都离自己很远。还有人上来就问“学Python还是学Ja…

2026/9/9 0:00:49

从50行最小循环到生产级AI引擎:工程化改造全解析

直接说干货。这一章我写的不是那种"hello world跑通某个模型"的教程,而是把AI引擎当做一个真正要上线、要被人调用、要扛流量的系统来聊。从最初只有50行的最小循环,到能够承载生产流量的AI引擎,中间差的不是代码量,而是…

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/7 22:45:59

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

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

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

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

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