关于 accept-element
这是一个仅供维护者使用的 Remotion 工作流,用于接收外部提交的 Element。它检查贡献内容和预览资源,在明确批准后上传文件,并更新拉取请求以供审查。
主要功能
- 01检查贡献文件与元数据
- 02渲染并比较预览资源
- 03要求维护者明确批准
- 04上传获批的预览文件
- 05验证并更新拉取请求
适用场景
- 01审查外部提交的 Element
- 02发布获批的预览资源
- 03整理已接收的拉取请求以供审查
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ remotion-dev/ remotion --skill accept-element安装后在 Claude Code 中输入/accept-element确认已加载。
详细介绍
接收 Remotion 元素
这是仅供维护者使用的工作流,适用于使用 submit-element 技能 中外部路径提交的贡献。不要将其用于仓库编写者直接提交的内容,因为这类提交已经有公开预览 URL,且不会提交预览资源。进行更改前,请完整阅读 元素贡献指南、scaffold-element 技能和 submit-element 技能。
在外部贡献者的拉取请求分支上运行此工作流。不要强制推送。对于来自复刻仓库的拉取请求,请确认已启用“Allow edits from maintainers”。如果无法更新分支,请仅在获得批准后上传,并请贡献者按下文所述清理 URL 和资源。
1. 确认贡献内容可供审核
确定唯一提交的 <category>/<slug>,并确认:
- 实现、页面、中心定义和侧边栏注册都包含在拉取请求中。
- 页面 frontmatter 和中心定义使用
/elements/<category>-<slug>-preview.png和.mp4审核 URL。 - 对应文件已提交至
packages/docs/static/elements/<category>-<slug>-preview.png和.mp4。 - 贡献者已明确在 Studio 中审核该元素,并批准了两个已提交的预览资源。
- 拉取请求已通过依据元素贡献指南进行的代码审查。
如果元素的元数据已指向缺失的 https://remotion.media 资源,或审核资源仅在拉取请求之外提供,则不要接收该元素。
2. 根据最终代码验证已提交的资源
先运行针对性测试,然后根据拉取请求中的最终源码重新渲染该元素:
cd packages/docs
bun test src/test/elements.test.ts
bun run render-element-previews --element=<category>/<slug>
cd ../..
向维护者提供以下已提交资源的路径:
packages/docs/static/elements/<category>-<slug>-preview.pngpackages/docs/static/elements/<category>-<slug>-preview.mp4
同时提供以下新渲染资源的路径:
packages/docs/.element-previews/<category>/<slug>/preview.pngpackages/docs/.element-previews/<category>/<slug>/preview.mp4
请维护者直观比较已提交资源与新渲染资源,并确认它们呈现的是相同的海报帧和动画。在获得对最终源码和两个已提交资源的明确批准前,请停止并等待。不要根据 Agent 自行检查的结果推断已获批准。如果维护者不予批准,请将贡献退回提交工作流。
3. 上传已批准的确切文件
在 packages/docs/.env 中配置维护者 R2 凭证后,运行:
cd packages/docs
bun run upload-element-preview \
--element=<category>/<slug> \
--source=submission
cd ../..
从 packages/docs 运行命令,Bun 就会加载 packages/docs/.env。元素预览上传不会使用 packages/remotion-media/.env;不要对这些文件使用通用的 upload-r2 或 offload-r2 技能。
此命令会上传 packages/docs/static/elements 中的确切文件;它不会重新渲染或删除这些文件。显式提交源会验证资源已提交且未经修改,然后检查本地路径、文件签名、总大小、上传后的大小、公开 HTTP 响应和内容类型。除非两个文件的上传都通过验证,否则不要继续。
命令会打印公开 URL:
https://remotion.media/elements/<category>-<slug>-preview.pnghttps://remotion.media/elements/<category>-<slug>-preview.mp4
4. 将贡献转换为已发布状态
仅在上传成功后:
- 将
packages/docs/src/components/Elements/element-definitions.ts中本地的posterUrl和videoUrl替换为打印出的https://remotion.mediaURL。 - 将
packages/docs/elements/<category>/<slug>/index.mdx中本地的imageURL 替换为公开海报 URL。 - 删除
packages/docs/static/elements中的两个文件。 - 如果
packages/docs/static/elements为空,则将其删除。
从上传到清理期间,不要更改 slug 或扁平化资源名称。
5. 验证并更新拉取请求
cd packages/docs
bun test src/test/elements.test.ts
cd ../..
bun run build
bun run stylecheck
git diff --check
git status --short
当前的专项测试会验证元数据是否包含准确的公共 URL,以及是否已无匹配的本地审查资源。
检查最终差异。应包含 Element 源码、页面、定义、图库注册和公共 URL,但不应包含 PNG 或 MP4。正常提交验收清理内容到同一个拉取请求分支,并推送时不要使用强制推送。然后停止,并报告拉取请求已准备好接受审查。