SuperAPI AI 工具集

pr-name

编程与开发

查看项目

更新于 10-15 13:02

技能介绍

用途

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
  • 如果多个包受影响,使用拥有主要面向用户变更的那个包,而不一定是变更文件最多的包。

描述变更

按顺序遵循以下指南:

  1. 从 diff 中识别主要的开发者可见变更。
  2. 如果公共 API 是变更的核心,用反引号准确命名主 API 并简要说明其用途,不要列举辅助 API。
  3. 否则,描述变更了什么,而不是用于实现它的文件或实现步骤。仅当技术细节有助于开发者理解结果时才包含它们。
  4. 优先使用具体动词,如 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: Add addElementLibraryToStudio() for adding Element Libraries to the config
  • @remotion/web-renderer: Add a metadata option to renderMediaOnWeb() using Mediabunny's MetadataTags
  • @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-upgrade skill
  • 如果变更与 packages/brand 相关,前缀使用 remotion.dev/brand:
    • remotion.dev/brand: Add animated logo
  • 如果变更与 packages/it-tests 相关,前缀使用 Internal tests::
    • Internal tests: Add video integration test