这是一个用于自动化创建拉取请求(Pull Request)的技能,来源于 remotion-dev/remotion 仓库。其核心用途是:为当前正在开发的功能改动,完成从分支检查、格式化、构建校验到提交、推送与创建 PR 的整套流程。
【主要能力与流程】
- 分支处理:确保当前不处于主分支,如有必要则新建分支。
- 已有 PR 检测:使用 gh pr status 或 gh pr view 检查当前分支是否已存在 PR;若存在,则用本地改动进行更新。
- 测试代码策略:默认不将智能体新编写的测试(包括既有文件中新增的测试用例)纳入 PR,除非用户明确要求;但为本次改动所需而对既有测试、fixture 和快照的更新是允许的。同时会审查 diff,保留用户原有的改动。
- Remotion Element 指引:若改动新增了 Remotion Element,需先阅读 Element 贡献指南再继续。
- 代码格式化:对本次改动涉及的文件或包目录运行 Oxfmt,命令示例为
bunx oxfmt <changed-file-or-package-directory>... --write。技能强调传入实际路径,不假设仓库根目录存在 src 目录,需包含相关根级文件,且不格式化无关包或整个仓库。若改动文件均不被 Oxfmt 支持则跳过此步,并在提交前检查格式化器的改动。 - 构建与校验:执行
bun run build与bun run stylecheck,以确保编译通过、CI 的 lint/format 检查通过。 - 提交与推送:提交一次改动,PR 标题须遵循 pr-name 技能规范;使用
git push -u origin HEAD推送一次,除非用户要求,绝不强制推送。 - 创建 PR:使用 gh CLI 创建拉取请求,标题沿用相同格式。创建时不得通过 shell 命令内联传递正文(例如避免
--body "..."或 bash heredoc),而是先将正文写入系统临时目录下的 Markdown 文件(如 /tmp/remotion-pr-body.md 或 /tmp 下的唯一文件)。若当前工作由某个 GitHub issue 发起、修复或与之关联,则在正文中加入关闭关键字,如Closes #1234或Closes https://github.com/owner/repo/issues/1234,并保留用户原始请求中提供的 issue 编号或 URL。创建命令示例:gh pr create --title '@remotion/package: Add feature' --body-file /tmp/remotion-pr-body.md。 - 预览链接:创建 PR 后,判断其是否直接新增或修改 packages/docs 中的主页面,页面公开路径以 packages/docs/docusaurus.config.ts 作为路由来源确定;删除页面或仅涉及共享组件、样式、数据、配置的改动不推断路径。随后在最长 60 秒内轮询 PR 评论以获取 Vercel 评论,每次检查间隔 5 秒。从 remotion 项目行取 Preview 链接,附加各页面路径;忽略 bugs 项目行。若预览链接不可用且部署链接仅指向 Vercel 仪表盘,仅在已安装并认证 Vercel CLI 时使用
vercel inspect <deployment-url>;否则不修改 PR 正文并报告无法解析预览 URL。技能只等待 Vercel 评论,不等待部署完成、不创建 Vercel heartbeat、不探测预览页面。最后将深层链接追加到 PR 正文的 ## Preview 部分,通过 gh pr edit <pr> --body-file <path-to-temp-md-file> 更新,绝不内联传参。若页面路径或预览 URL 任一无法确定,则保持已创建的 PR 不变并报告未添加预览链接。
【适用场景】 适用于在 remotion-dev/remotion 这类使用 bun、Oxfmt、gh CLI 与 Vercel 预览的仓库中,开发者在完成一项功能改动后,需要规范化地提交代码并创建或更新拉取请求的场合。
【限制】 该技能的流程高度依赖特定仓库的工具链(bun、Oxfmt、gh CLI、packages/docs 结构、Vercel 预览)与 pr-name 等相关技能;对于不被 Oxfmt 支持的文件会跳过格式化;预览链接的添加依赖 Vercel 评论能否被成功获取,条件不满足时会放弃添加。除资料所述内容外,其他关于收费、平台或效果的信息暂未提供。