用途
pr-name 是一个用于审查或修正 Remotion 拉取请求(PR)标题的技能。当给定一个 PR 时,它要求在提出名称之前先查看当前标题和 diff,帮助开发者产出准确、面向开发者的 PR 标题。
命名原则
- 把标题视为面向开发者的变更日志条目,而不是工作的高层总结,也不是所有变更的清单。
- 不要自动复用提交信息(commit message)。
- 选择能解释面向开发者变更的最窄标题,追求恰当的抽象层级而非最大具体性:使用一个具体锚点和一个明确结果。
前缀选择
- 不要从目录名或 Conventional Commit 作用域(如
fix(core))推断前缀。 - 对于包变更,读取受影响包的 package.json,使用其确切的 name 值。
- 默认在 PR 标题中使用该包名,格式为:
[package-name]: [description]。 - 示例:
@remotion/shapes: Add heart shape - 如果多个包受影响,使用拥有主要面向用户变更的那个包,而不一定是变更文件最多的包。
描述变更
按顺序遵循以下指南:
- 从 diff 中识别主要的开发者可见变更。
- 如果公共 API 是变更的核心,用反引号准确命名主 API 并简要说明其用途,不要列举辅助 API。
- 否则,描述变更了什么,而不是用于实现它的文件或实现步骤。仅当技术细节有助于开发者理解结果时才包含它们。
- 优先使用具体动词,如 add、fix、remove、rename、change。当 diff 提供了更清晰的描述时,避免 allow、improve、update handling、support 等模糊描述。PR 标题可以使用简洁、电报式的措辞,不要仅为了让标题成为语法完整的句子而添加冠词或填充词;当它们能提高清晰度时则保留。
有用的标题形态包括:
[package]: Add[api]()for [concise purpose][package]: Add a[name]option to[api]()for [concise purpose][package]: Fix [observable problem] when [condition][package]: Change[api]()to [new observable behavior]
示例:
@remotion/studio-protocol: AddaddElementLibraryToStudio()for adding Element Libraries to the config@remotion/web-renderer: Add ametadataoption torenderMediaOnWeb()using Mediabunny'sMetadataTags@remotion/studio: Remove Asset Inspector quick action scrollbar
第一个示例优于 “Add libraries to Studio”,因为它命名了主 API 并解释其用途。Studio CSS 示例有意描述可见结果,而不是实现它的 CSS 文件或 overflow 规则。
特殊处理
对于匹配以下类别的变更,使用其特殊前缀而不是包名。按面向用户的影响对变更分类,而不仅仅按包含变更文件的包目录分类。
- 如果变更仅添加、修复或稳定内部测试、测试夹具、快照或测试基础设施,且不改变已发布行为,使用
Internal:前缀。这也适用于已发布包下的包本地测试。不要仅因为测试位于该包中就用该包名作为前缀。包名可以在有用时出现在描述中:Internal: Stabilize registration range test in@remotion/transitions``
- 如果已发布实现变更伴随测试,使用正常的受影响包前缀。
- 如果变更仅涉及文档:
Docs: Add page about heart shape
- 如果变更是没有更具体类别的内部 monorepo 工作,使用
Internal:前缀:Internal: Simplify release bookkeeping
- 如果变更与 Remotion Elements 相关,使用
Elements:前缀:Elements: Add animated title element
- 如果变更与 packages/convert 相关,使用
remotion.dev/convert前缀:remotion.dev/convert: Support trimming
- 如果变更与 packages/example 相关,用
Internal Testbed:Internal testbed: Add trimming sample composition
- 如果变更添加或修改技能(skill),前缀使用
Skills::Skills: Add/remotion-upgradeskill
- 如果变更与 packages/brand 相关,前缀使用
remotion.dev/brand:remotion.dev/brand: Add animated logo
- 如果变更与 packages/it-tests 相关,前缀使用
Internal tests::Internal tests: Add video integration test